git을 처음 사용할 때는 이것저것 공부하면서 새로운 명령어 써보고 그랬는데
이제는 원래 쓰던 명령어들만을 기계적으로 타이핑하고 있는 것 같다 ㅋㅋㅋ
뭐,,, 브랜치 따고 add하고 commit 하고 rebase하며 특별한게 없을만 하지!
평소 개발할 때 쓰는 git 명령어 루틴들을 한 데 모아봐야겠다.
은근 유용한 팁들 많음! git add 할 때 -p 옵션을 준다던가, git reflog로 이력을 한눈에 본다던가!
git 명령어 데일리 루틴
1. remote repository에서 내려 받기
리모트 저장소에서 코드 내려 받기
$ git clone <repository url>
처음에만 해주면 된다.
2. 브랜치 확인하기
$ git branch -avv
-a 옵션 : remote, local 모든 브랜치를 보여준다.
-vv 옵션: 트래킹하고 있는 remote 브랜치, commit의 sha1, commit 메시지도 함께 출력해준다.
2-a. 로컬 브랜치 만들기
$ git checkout -b <local_branch>
2-b. 브랜치 삭제하기
$ git branch -D <branch>
2-c. remote branch tracking하는 브랜치 만들기
$ git branch -t <remote>/<branch>
리모트 브랜치의 이름을 따서 로컬 브랜치 이름을 자동으로 지정해준다.
2-d. 이미 존재하는 <local branch>가 <remote branch>를 tracking하도록 설정하기
$ git branch --set-upstream-to=origin/<remote branch> <local branch>
3-a. 수정 파일들 확인하기
git status
Changes to be committed : add한 파일들의 리스트. commit을 하면 다음의 파일들이 포함된다.
Changes not staged for commit : add를 기다리고 있는 파일들의 리스트. commit을 하면 다음의 파일들은 제외된다.
3-b. 수정 사항 확인하기
$ git diff
아직 add하지 않은 변경사항들을 보여준다.
코드 앞에 -가 붙고 빨간색은 삭제한 것
코드 앞에 +가 붙고 초록색은 내가 새로 추가한 것이다.
4-a. 수정 사항을 staged로 옮기기 (add)
$ git add -p
-p 옵션 : 수정 사항을 부분적으로 확인하며 add가능함
4-b. add 취소하기
$ git checkout HEAD <file name>
이 명령어는 사실 add하지 않은 파일도 변경 사항 원복할 때 사용할 수 있다.
해당 파일을 HEAD의 상태로 되돌린다는 의미이다.
5-a. commit하기
$ git commit -v
-v 옵션 : 수정 사항을 다시 확인 가능하다.
5-b. commit 후에 다시 수정하기
$ git commit --amend
6-a. 로컬에서 코드 변경 사항 임시 저장하기
$ git stash push -m "<message>"
6-b. 임시 저장 항목들 리스트
$ git stash list
6-c. 임시 저장 파일의 변경 사항 확인하기
$ git stash show <stash@{n}>
6-d. 임시 저장 파일 다시 불러오기
$ git stash apply <stash@{n}>
7-a. 로그 확인하기
$ git log
7-b. 각 로그마다 변경 사항 확인하기
$ git log -p
7-c. 로그 그래프로 보기
$ git log --all --graph --decorate --oneline
8-a. rebase
rebase : 부모를 변경해주는 것!
$ git rebase <master>
여기서 <master>은 부모이다. 즉, 참조하고 싶은 브랜치를 의미한다.
remote branch에 push하려고 하는데 충돌이 나면, remote branch로 rebase하면 된다. (부모를 remote branch로 변경해주면 되는 것이다)
git 해결 방법은 따로 글을 작성할거다!
8-b. commit 순서 바꾸기 / 과거에 한 commit 다시 수정하기
$ git rebase -i <HEAD~n>
3개 전에 한 commit을 다시 수정하고 싶다면 HEAD~3을 하면 된다.
그러면 편집창에 'pick d78fdc1d.. commit message' 이 뜨는데, 내가 수정하고 싶은 커밋을 pick -> edit 으로 수정하고 편집창을 닫으면 된다.
파일을 수정하면 add를 하고 git rebase --continue를 하면된다.
이건 모든 rebase에서 동일하게 하는 패턴이다.
9. git 명령 히스토리
이거 짱짱 중요한 명령어! 알고 있으면 정말 유용하다
$ git reflog
git reflog를 치면 'sha1 branch HEAD@{n} git명령어 변경사항' 이 차례로 보여진다.
git 명령어를 잘못 입력하였을 때, reflog를 보고 원복이 가능하다.
git reset --hard <돌아가고 싶은 sha1 num> 로 하면 된다.
쓰다 보니 너무 양이 많은 것 같다.
옵션들이 다양해서 그렇지, 주로 사용하는 명령어는 몇 개 안된다.
그리고 git 개념 이해하면 너무 똑똑하고 재밌어서 사용하기 쉽다!
git 개념을 하나하나 블로그에 적어놔야겠다!!
ㅋㅋㅋㅋㅋㅋㅋㅋㅋ귀여움ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
출처 : stackoverflow