혼자 프로젝트를 진행하고 코딩테스트를 풀 때 Git을 사용했지만, 막상 팀원들과 같이 협업하려니 branch며 merge며 conflict... 어려운 점이 많았다.
그래서 팀 프로젝트 전에 git을 정복!!!하고자 다시 공부하고 있다.
git add a.txt # a.txt 파일을 stage 한다.
git add *.txt # 모든 txt 파일을 stage 한다.
git add * # 삭제된 파일을 제외한 모든 파일을 stage 한다.
git add . # 삭제된 파일을 포함한 모든 파일을 stage 한다.
git rm a.txt # a.txt 파일을 디렉터리와 stage area에서 모두 제거한다.
git mv a.txt b.txt # 파일 이름을 변경하고 git에 반영한다.
git mv a.txt ../a.txt # 파일을 이동하고 git에 반영한다.
commit message와 별도로 tag를 작성할 수 있다.
보통 버전 (v1.0.0)을 표시한다.
git tag v1.0.0 # 최근 commit에 v1.0.0 태그를 추가한다.
git tag v1.0.0 hash # hash commit에 태그를 추가한다.
git show v1.0.0 # 태그를 표시한다.
git tag # 모든 tag를 표시한다.
git tag -d v1.0.0 # 해당 태그를 제거한다.
git branch test # test라는 이름의 branch를 생성한다.
git checkout test # test branch로 전환한다.
git switch test # test branch로 전환한다.
git checkout -b test2 # test2라는 branch를 생성하고 전환한다.
git switch -C test2 # test2라는 branch를 생성하고 전환한다.
git branch # 모든 branch를 표시한다.
git branch -v # 각 branch의 최근 commit을 함께 표시한다.
git branch --merged # merge된 branch를 표시한다.
git branch --no-merged # merge되지 않은 branch를 표시한다.
git branch -d test # test branch를 삭제한다.
git branch --move a b # branch 이름을 a에서 b로 변경한다.
git merge test # test branch를 현재 branch에 merge한다.
git merge --no-ff test # fast-forward merge가 가능해도, commit message를 남긴다.
git merge --abort # merge를 취소한다.
git mergetool # 설정한 merge tool로 직접 비교한다.
git rebase mster # 현재 branch가 master branch를 참조하게 한다.
git stash # 새로운 stash를 생성한다.
git stash push -m 'message'
git stash --keep-index # 현재 상태를 stash하고, stage area에 유지한다.
git stash -u # untracked 상태인 파일들을 함께 stash한다.
git stash apply # 가장 최근 stash를 적용한다.
git stash apply hash # 특정 stash르 적용한다.
git stash pop # 가장 최근 stash를 적용하고 리스트에서 삭제한다.
git stash branch new-branch # 최근 stash를 가져와서 new-branch를 생성한다.
git stash drop hash # 특정 stash를 삭제한다.
git stash clear # 모든 stash를 삭제한다.