본문 바로가기

git 공부

Git 정리 - 핵심 기본 명령어(add, status, log, reset, commit, remote, pull, clone, branch, merge)

728x90
반응형

프로젝트 작업에서 깃 협업을 진행한다.
학생때나 조금 사용해봤어서 많이 잊었다.
잘 안써봐서 무엇이 중요하고 정확히 어떤상황에서 사용하는지에 대해 알지 못하지만 내가 참고해서 사용하기 위해 정리한다. 그리고 더 자세한 부분은 참고했던 블로그 링크를 둔다. 정리가 잘 돼있어서 여기서 다 퍼왔다.

https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-%ED%95%B5%EC%8B%AC-%EB%AA%85%EB%A0%B9%EC%96%B4-%EC%9A%94%EC%95%BD-%F0%9F%9A%A9-%EC%B4%9D%EC%A0%95%EB%A6%AC

초기 설정

현재위치에서 지역 저장소 생성

git init

 

사용자 이름지정

 

$ git config --global user.name "[사용자명]"

 

사용자 메일 지정

 

$ git config --global user.email "[사용자이메일명]"

git 스테이징

스테이지에 올림

 

$ git add [파일명.확장자명]

 

상태 확인

 

$ git status

git 커밋

커밋 메시지 메시지명을 붙여 커밋

$ git commit -m "[메시지명]"
$ git commit -am "[메시지명]" # 스테이징과 커밋을 동시에 진행

 

커밋 롤백

$ git reset [커밋 해시]

 

커밋을 삭제하지않고 이전 커밋을 새로 복사 추가하는 식으로 롤백
a 작업 후 b 작업인데 a로 되돌리고 싶다 . b다음에 a-1 이 생김

$ git revert [커밋 해시] # 해당 커밋 이전상태로 되돌린다라는 명령

git 이력 확인

커밋 내역 확인

$ git log           # 전체 이력을 보여준다.
$ git shortlog     
$ git log --oneline # 커밋과 커밋 메시지를 조회

$ git log -p        # 이력을 보여줄 때, 변경된 데이터도 보여준다.
$ git log [filename] # 특정 파일에 대한 이력을 보여준다.
$ git log -p [filename] # 특정 파일의 이력과 변경된 데이터를 보여준다.

$ git log --stat    # 커밋마다 파일의 추가/삭제된 통계데이터를 보여줌
$ git log --graph   # 브랜치 분기 및 병합내용을 아스키 그래프로 보여줌

 

특정 커밋 내역 확인

$ git show [커밋 id]

 

최근 버전과 작업 폴더의 수정 파일 사이의 차이를 출력

$ git diff               # modified 상태의 file과 마지막 commit 비교
$ git diff --staged      # staged 상태의 file과 마지막 commit 비교
$ git diff --color-words # 변경사항을 color 풀하게 비교
$ git diff [브랜치이름]    # 현재브랜치와 선택된 브랜치와 차이점 비교
$ git diff [이전커밋 id] [이후커밋 id] # 커밋 비교

원격 저장소

원격 저장소에 연결

$ git remote add origin [github 레포지 주소]

 

추가한 원격저장소의 목록 확인

$ git remote
$ git remote -v # 상세히

 

원격저장소 이름 변경

$ git remote rename 기존이름 변경할이름

 

원격저장소에 올리기

$ git push
$ git push origin master

 

원격저장소 커밋 가져오기

$ git pull origin master

 

원격 저장소 복제하기

$ git clone [원격 저장소 주소]

 

커밋을 가져오기만 하고 merge하지 않는다.

$ git fetch
# 이후엔 diff 로 비교
$ git diff test origin/test # 브랜치 이름이 test일 경우 예시

git branch

브랜치 확인

$ git branch               

 

브랜치 추가 / 삭제

$ git branch [branch name]  
$ git branch -d [branch name] # -delete

 

브랜치로 이동

$ git switch [branch name]
$ git checkout [branch name]

 

브랜치 추가하고 바로 이동

$ git switch -c [branch name]
$ git checkout -b [branch name]

 

현재 브랜치에서 다른 브랜치를 merge

$ git merge [branch name]

git stash

아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어
파일의 변경내용을 일시적으로 기록해두는 영역
현재 내가 하고 있는 업무보다 우선순위가 높은 새 업무를 받거나 버그를 당장 고쳐야 할때 git stash를 이용해 모든 내용 일시적으로 저장

staged, modified 상태 파일 저장

$ git stash     

 

stash로 저장한 리스트를 출력

$ git stash list         

 

가장 최근에 저장한 stash를 반영

$ git stash apply      
$ git stash apply stash@{1}  # 지정한 stash를 반영
반응형