준비물 : Git, 실행 프로그램, 소스트리
// 명령어
git init : 빈 git 저장소가 만들어진다는 것.
-> 해당 폴더가 git 관리 하에 들어가게 되는 것
.git 폴더
-> 여기에 해당 폴더의 시공간이 저장되는 것
// 소스트리
1. 해당 폴더를 open
-> .git 폴더가 만들어진 것을 확인 가능
ㅡㅡㅡㅡ 이제 해야할 일 : 미래에서 언제든 이 시절로 돌아올 수 있도록 타임캡슐 만들기
- 타임 캡슐에 묻으려면 일단 타임캡슐에 담아야!함.
// 명령어
git status : 아직 담기지 않은 파일들 확인 가능
git add -A : 이 모든걸 타임캡슐에 담겠다는 의미
다시 git status -> changes to be commit (묻을 것들)
git commit -m : 묻자!
- 근데 묻을 때는 설명을 써놔야 나중에 돌아오기 편하니까 설명을 같이 적어둔다.
엔터 치면 첫번째 타임 캡슐이 묻히는 것
// 소스트리
소스트리는 바로 묻을 파일이 있다고 보여줌
캡슐 안으로 add하는걸 git 용어로 'stage한다'고 함
ㅡㅡㅡㅡㅡ 파일들을 수정하거나 삭제해보기
// git log : 캡슐의 정보들과 메시지들이 뜸
// 소스트리에서는 history를 눌러서 각각 클릭해보면 뭐가 어떻게 바뀌었는지 나옴
- 이후의 행적을 완전히 깨끗하게 지우는 것
// 명령어
// 소스트리
'이 커밋까지 초기화'한다는 버튼 클릭
옵션에서 hard 선택
-> history 가보면 선택한 커밋 이후의 항목들이 삭제된 것을 확인 가능
// 명령어
똑같이 git log에서 일련번호를 찾되 (완전히) 돌아갈 시점이 아니라, 취소할 시점을 찾음
-> git revert xxxxxx
-> 새 커밋 메시지를 작성하는 화면이 뜸
그대로 저장하겠다는 vi 명령어 :wq를 입력
// 소스트리
- 우클릭 > 커밋 되돌리기
cf) 더 자세한 설명
// 명령어
상황 설명 (회사에서 하는 버전 말고 내가 따로 뭔가 더 만들어보고 싶을 때)
git branch my-idea라는 나의 평행우주 브랜치를 만듦
-> 다시 git branch를 입력해보면 기존 브랜치는 master, 내가 새로 만든 my-idea
우주 이동하려면 git checkout my-idea
그리고 나만의 작업을 하다가, 원래 일했던 공간으로 되돌아갈 때는 git checkout master
// 소스트리
브랜치가 만들어진게 눈으로 바로 확인 가능. 더블 클릭으로 왔다 갔다 가능
my-idea에서 또 다른 브랜치 가능 (my-another-idea)
- 이건 my-idea에서 파생된거라 my-idea를 맨 처음에 그대로 담고 있을 것
만약 내 아이디어가 기존 마스터에 추가가 된다면?
두 평행우주에서 일어난 변화를 master 에서 불러와야 함.
- 근데 my-another-idea는 my-idea를 포함하니까 my-another-idea만 불러와주면 됨
git master로 돌아오기
git merge my-another-idea (git merge 다음에 변화를 가져올 브랜치 이름을 적어주기)
엔터
git log --graph --all -- decorate 누르면 두 분기에서의 작업 확인 가능
// 소스트리
merge할 브랜치 우클릭 > merge 클릭
주의) 만약 같은 부분에서 수정 사항이 일어났는데 merge하면 conflict가 일어남
-> 협업할 때는 되도록 다른 브랜치들이 같은 파일을 수정하는 일은 x
많은 사람들이 협업하면 여러 브랜치들에서 덕지덕지 붙는 상태로 보여지게 되는데, 이걸 한 줄로 보이게 하고 싶을 때는 merge대신에 rebase를 사용함
// 브랜치를 삭제할 때는 git branch -D 쓰고 브랜치명 적어주면 된다.
// 소스트리에서는 그냥 브랜치 > 우클릭해서 삭제
한 번에 여러 브랜치들을 작업할 때 (0) | 2022.04.13 |
---|---|
develop에 대해 잘못 생각했던거 (0) | 2022.03.17 |
git flow) 로컬, 원격 저장소 (feat. git branch BRANCH_NAME vs git checkout -b ) (0) | 2022.01.23 |
Git 개념 (github과 이클립스 연결) (1) | 2021.04.04 |