본문 바로가기
SWE/LetGit

자주 사용하는 유용한 git 명령어 정리 | git 명령어 데일리 루틴

by S나라라2 2021. 1. 25.
반응형

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

반응형