git 명령어

broccoli·2021년 5월 12일
0

git

목록 보기
1/3
post-thumbnail

git log --branches --oneline --graph

히스토리 볼 때 사용함.

  • branches: HEAD가 위치한 그래프 뿐만 아니라 모든 브랜치 다 보여줌.
  • graph: 그래프모양으로 히스토리 확인가능
  • oneline: log line을 한개로 짧게 해줌. 보기 편함

git rm -r <폴더 및 파일명>

git에 잘못 기록된 폴더 및 파일 삭제시 사용

git rm -r uploads/
//원격지까지 올라간 경우엔 
git rm --cached -r uploads/

이후 push까지 해줘야지 원격지에 적용됨.

git commit --amend

커밋이후 커밋내용 수정할 때 사용

git checkout -b <브랜치명>

새로운 작업시 새로 브랜치 따서 작업할 때 유용함.

git diff <브랜치 or commit Id>..<브랜치 or commit Id>

두개의 스냅샷을 비교하여 서로 다른 점이 있는지 여부 확인한다.

git branch -D/-d <브랜치명>

필요없는 브랜치 삭제한다.

  • ✨ 원격브랜치 삭제하기
git push origin --delete <브랜치>

git rebase -i HEAD~<합칠커밋갯수>

새 브런치를 따서 작업완료후 git 히스토리 정리시에 주로 사용함.

합칠커밋이 현재 HEAD 포함해서 8개라고 하면 아래사진과 같이 가장 위에 pick을 남기고 나머지는 squash 해준다. 이후 커밋메세지를 새로 작성해주고 저장하면 커밋이 합쳐진다.

추가로 남기고 싶은 커밋이 있다면 pick을 여러개 두어도 된다.

git merge

그냥 git merge <merge할 branch>해도 되지만 history를 깔끔하게 한줄로 관리하고 싶다면 rebase를 활용하는 것이 좋다.

git stash

잠깐 임시로 보관하기

git stash pop: 마지막 작업부분 복구시키고 stash list에서 삭제
git stash apply stash@{index}: 원하는 작업부분 복구시키고 list에 그대로 있음
git stash clear: stash 지우기
git stash: 임시보관

git revert

진행했던 커밋을 되돌리는 명령어

git revert <commit id>

만약 -m 옵션이 없다는 메시지와 에러가 되면 커밋아이디 이외에 더 추가 정보를 명확히 줘야한다.

이 경우는 충돌이 나서 원격지에서 resolve하고 머지하는 경우에 의도치 않은 머지가 될 때 주로 확인 할 수 있다.

즉 충돌을 해결하는 과정에서 하나의 커밋에 두개의 부모 파이프로부터 머지가 이루어지고
git diff <머지이전commit id>..<머지이후commit id>를 비교시 의도치 않은 머지가 포함되었다면 git revert <commit id>만으로는 안될 수도 있다.

이때는

git revert <commit id> -m 1 or 2 로 진행한다.

각각 mainline을 의미하는데 어떤 mainline의 커밋을 롤백할지 헷갈린다면 진행후 로컬에서 diff를 통해 확인해보면 된다.

참고링크: https://dev-syhy.tistory.com/44

✅ rebase 활용한 merge

  1. git rebase -i HEAD~<합칠커밋갯수> 사용하여 커밋을 합쳐준다.
  2. git checkout <기준으로 삼을 브랜치> 기준으로 삼을 브랜치로 이동한다.
  3. git merge <rebase한 브랜치> rebase한 브랜치로 merge한다.
  4. git diff <기준으로 삼을 브랜치>..<rebase한 브랜치> 브랜치를 비교하여 다른점이 있는지 여부 확인한다.
  5. git branch -D <rebase한 브랜치> 다른점이 없다면 필요없는 브랜치는 삭제한다.
profile
🌃브로콜리한 개발자🌟

0개의 댓글