ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Git: 자주 사용하는 Git 명령어 요약정리하기
    메모 및 기타 2020. 8. 7. 01:09

    깃(Git) 명령어에 대해서 알아봅시다!

     

     

     

     

    1. git init

     

    가장 처음에 해주어야 하는 과정입니다.

     

    프로젝트 디렉토리(working directory)를 만들고 그 안에 레포지토리(repositorty)를 생성합니다.

     

    레포지토리는 .git 라는 디렉토리로 생성됩니다.(숨김으로 표시되어서 보이지 않습니다)

     

     

     

    2. git config user.name "panda"

     

    사용자의 이름을 정하는 명령어입니다. 저는 "panda"를 사용자 이름으로 설정하겠습니다. 

     

     

     

     

    3. git config user.email "abcd1234@daum.net" 

     

    사용자 이메일 주소를 설정합니다. 

     

    여기까지는 깃을 사용하기 위해 필수적으로 입력해야하는 명령어입니다. 

     

     

    4. git add [파일 이름]

       git add [디렉토리명]

     

    수정한 파일을 staging area에 올리는 작업입니다. 

     

     

     

    5. git reset [파일 이름]

     

    staging area에 올라간 파일을 내립니다. 

     

     

     

    6. git status 

     

    staging area의 상태를 출력합니다.

     

    어떤 파일이 수정되었는지 staging area에 올라가 있는지 확인할 수 있습니다. 

     

     

     

    7. git commit -m "커밋 메시지"

     

    커밋하면서 남겨두고 싶은 내용을 입력합니다. 

     

     

     

    8.

    1) git remote add origin 깃허브주소

    2)  git push -u origin master(your branch name)

     

    처음으로 로컬 레포지토리에서 리모트 레포지토리로 작업한 내용을 옮길때 사용합니다.

     

    리모트 레포지토리로 파일을 옮길 때는 tracked 상태가 되어야 하는데

     

    이를 -u(upstream)라는 옵션이 역할합니다.

     

    만약 다른 브랜치 또한 리모트 레포지토리로 옮기고 싶다면 

     

    git push -u origin [브랜치 이름] 을 입력하시면 됩니다!

     

     

     

    9. git push

     

    git push -u origin master 커맨드가 입력되어 있다면

     

    그냥 git push만 해도 리모트 레포지토리로 내용을 옮길 수 있습니다.

     

     

     

    10. git pull

     

    마찬가지로 git push -u origin master가 입력되어 있다면

     

    리모트 레포지토리의 내용을 로컬 레포지토리로 가져옵니다. 

     

     

     

    11. git clone [가져오고자하는 프로젝트의 Github의 주소]

     

    Github에 있는 프로젝트를 가져올때 사용합니다. 

     

     

     

    12. git log

     

    커밋 히스토리를 출력합니다.

     

     

     

    13. git log --pretty=oneline

     

    커밋 히스토리를 "한줄"로 "이쁘게" 출력합니다.

     

    자주 사용하는 커맨드이기 때문에 

     

    보통은 history로 에일리어싱합니다.

     

    git config alias.history 'log --pretty=oneline'

     

     

     

    14. git show [커밋 아이디]

     

    원하는 커밋의 변경사항을 확인합니다. 

     

     

     

    15. git commit --amend

     

    최신 커밋을 다시 수정해서 새로운 커밋을 만듭니다 .

     

     

     

    16. git config alias.[별명] [키워드]

     

    커맨드가 너무 길어 입력하기 불편할 때 별명을 지어서

     

    편하게 사용하기 위한 명령어입니다.

     

     

     

    17. git diff [커밋 아이디] [커밋 아이디]

     

    비교하고 싶은 커밋간의 차이를 알고 싶을 때 사용합니다. 

     

     

    18. git reset [옵션] [커밋 아이디]

     

    1) git reset --soft [커밋 아이디]

     

    원하는 커밋으로 HEAD를 이동시킵니다. 

     

     

    2) git reset --mixed [커밋아이디]

     

    원하는 커밋으로 HEAD를 이동시킵니다. 

     

    그리고 staging area도 원하는 커밋의 것으로 리셋합니다. 

     

     

    3) git reset --hard [커밋 아이디]

     

    원하는 커밋으로 HEAD를 이동시킵니다. 

     

    staging area과 working directory 또한 원하는 커밋의 것으로 리셋합니다.

     

     

     

    19. git tag [태그이름] [커밋 아이디]

     

    원하는 커밋에 태그를 달 때 사용합니다.

     

    태그를 만들고 git tag를 하면

     

    tag목록들을 확인할 수 있습니다. 

     

     

     

    20. git branch [브랜치 이름]

     

    브랜치를 만들 때 사용합니다.  

     

     

     

    21. git checkout [브랜치 이름]

     

    원하는 브랜치로 이동합니다.

     

     

     

    22. git branch -d [브랜치 이름]

     

    브랜치를 삭제합니다. 

     

     

     

    23. git merge [브랜치 이름]

     

    현재 브랜치에서 다른 브랜치를 합칠때 사용합니다. 

     

     

     

    24. git merge --abort

     

    merge하다가 conflict가 발생했을 때, merge를 취소하고 이전 작업으로 돌아갈 때 사용합니다.

     

     

     

    25. git fetch

     

    git pull과 유사하게 리모트 레포지토리의 최신 커밋을 가져옵니다. 

     

    git pull의 경우에는 리모트 레포지토리에서 작업을 가져온 후 자동으로 머지를 합니다.

     

    하지만 브랜치 검토가 필요한 경우에는 git fetch를 해준 후 검토, 그리고 머지를 해줍니다.

     

    git pull = git fetch + git merge

     

    라고 생각하시면 될것 같습니다. 

     

    검토 후, 머지하기 때문에 git diff와 git merge 포함해서 한 세트입니다. 

     

     

     

    26. git blame

     

    blame은 자책하다. 비난하다 라는 뜻입니다.

     

    누가 이 커밋을 작성했는지 알 수 있는 무서운 명령어라고 합니다.

     

     

     

    27. git revert [커밋 아이디]

     

    이미 올라간 커밋을 취소하고 싶을 때 전의 커밋과 동일한 커밋을 새로 만듭니다. 

     

    git reset과는 다르게 새로운 커밋을 만듭니다.

     

     

     

    28. git reflog

     

    HEAD가 가르켜 왔던 커밋들의 기록을 출력합니다. 

     

    git reset --hard [커밋 아이디]로 커밋 기록들이 다 날아갔을 때

     

    git reflog로 최신 커밋아이디를 확인한 후

     

    git reset --hard [최신 커밋 아이디]를 하시면 최신 커밋으로 돌아갈 수 있습니다. 

     

     

     

    29. git log --all --graph

     

    모든 브랜치의 커밋 히스토리를 그래프를 사용하여 출력합니다. 

     

    그래프를 사용하면 브랜치를 한눈에 확인하기 좋습니다.

     

     

     

    30. git stash 

     

    작업한 내용을 스택형태로 저장합니다.

     

    git stash는 어떤 브랜치에서 작업을 하던 중 아직 커밋을 끝내지 못했는데

     

    급하게 다른 브랜치로 가야하는 상황에 쓰입니다.

     

    또는 브랜치가 너무 많아 잘못된 브랜치에서 작업했을 경우에 사용합니다. 

     

    임시저장이라고 생각하시면 됩니다.

     

     

     

    31. git stash apply [커밋 아이디]

     

    스택 영역에 들어있는 작업 내용을 가져와 working directory에 적용합니다. 

     

    커밋 아이디는 git stash list 커맨드를 이용하면 알 수 있습니다. 

     

     

     

    32. git stash list 

     

    스택 영역에 기록해둔 내용을 확인할 수 있습니다. 

     

     

     

    33. git stash drop [커밋 아이디]

     

    스택 영역에 저장된 작업 내용을 삭제합니다. 

     

     

     

    34. git stash pop [커밋 아이디]

     

    스택 영역에 저장된 내용을 working directory에 저장하고 

     

    사용한 작업내용을 스택에서 지웁니다. 

     

    git stash pop = git stash apply + git stash drop

     

    라고 생각하시면 될것 같습니다. 

     

     

     

    35. git cherry-pick [커밋 아이디]

     

    cherry-picker 는 원하는 것만 골라먹는 사람을 뜻합니다. 

     

    이렇게 git cherry-pick은

     

    원하는 커밋을 현재의 커밋에 적용할 때 사용합니다. 

     

     

     

    36. git rebase [브랜치 이름] (적용하고 싶은 브랜치 안에서)

     

    rebase는 베이스를 바꾼다는 의미입니다.

     

    git merge와 유사하게 사용되는데 

     

    예를 들어 테스트하고 있는 브랜치(test)가 통과가 되면서

     

    테스트 내용을 바로 본 브랜치(master)에 적용하고 싶은 경우

     

    git rebase test (master 브랜치안에서)

    conflict가 있을 경우 수정 후

    git add .

    git rebase --continue (못 다한 rebase를 계속하겠다는 의미)

     

     

     

     

     

     

     

     

    반응형

    댓글

Designed by Tistory.