-
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를 계속하겠다는 의미)
반응형'메모 및 기타' 카테고리의 다른 글
디지털 시스템: 디지털 시스템(Digital System)이란? (0) 2020.09.10 메모: 파이썬 알고리즘 1차 강의 메모 (0) 2020.08.20 Git: 깃허브(Github)로 협업하기 (0) 2020.08.08 [ROS] 토픽(Topic) 메시지를 통해 현재 시간 출력하기 (1) (0) 2020.05.30 우분투 16.04 에서 한글 입력 설정으로 바꾸기 (0) 2020.05.29