히스토리 볼 때 사용함.
git에 잘못 기록된 폴더 및 파일 삭제시 사용
git rm -r uploads/
//원격지까지 올라간 경우엔
git rm --cached -r uploads/
이후 push까지 해줘야지 원격지에 적용됨.
커밋이후 커밋내용 수정할 때 사용
새로운 작업시 새로 브랜치 따서 작업할 때 유용함.
두개의 스냅샷을 비교하여 서로 다른 점이 있는지 여부 확인한다.
필요없는 브랜치 삭제한다.
git push origin --delete <브랜치>
새 브런치를 따서 작업완료후 git 히스토리 정리시에 주로 사용함.
합칠커밋이 현재 HEAD 포함해서 8개라고 하면 아래사진과 같이 가장 위에 pick
을 남기고 나머지는 squash
해준다. 이후 커밋메세지를 새로 작성해주고 저장하면 커밋이 합쳐진다.
추가로 남기고 싶은 커밋이 있다면 pick
을 여러개 두어도 된다.
그냥 git merge <merge할 branch>
해도 되지만 history를 깔끔하게 한줄로 관리하고 싶다면 rebase
를 활용하는 것이 좋다.
잠깐 임시로 보관하기
git stash pop: 마지막 작업부분 복구시키고 stash list에서 삭제
git stash apply stash@{index}: 원하는 작업부분 복구시키고 list에 그대로 있음
git stash clear: stash 지우기
git stash: 임시보관
진행했던 커밋을 되돌리는 명령어
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
git rebase -i HEAD~<합칠커밋갯수>
사용하여 커밋을 합쳐준다. git checkout <기준으로 삼을 브랜치>
기준으로 삼을 브랜치로 이동한다.git merge <rebase한 브랜치>
rebase한 브랜치로 merge한다.git diff <기준으로 삼을 브랜치>..<rebase한 브랜치>
브랜치를 비교하여 다른점이 있는지 여부 확인한다.git branch -D <rebase한 브랜치>
다른점이 없다면 필요없는 브랜치는 삭제한다.