브런치 생성 / 이동 / 삭제
- 생성
- git branch 브런치이름
- 브런치 확인
- git branch
- 이동
- git switch 브런치이름
- 생성과 동시에 이동
- git switch -c 브런치이름
- 삭제
- git branch -d 브런치이름
reset
git reset --hard 돌아갈 커밋 해시
Ex) git reset --hard a2a8158
revert
git revert 돌아갈 커밋 해시
Ex) git revert 04901be
※ 만약 revert시 A라는 파일을 추가 한 커밋(커밋A)이 있다. 그런데 이후 커밋에서 A파일을 수정한 커밋(커밋B)내역이 있을 경우
커밋A로 revert시 A파일을 삭제해아하는데, 문제가 발생한다.
문제의 파일을 add 혹은 rm으로 정리후 git revert --continue하면된다.
reset과 revert의 차이점
- reset
- Commit 시점으로 되돌리지만 중간 단계의 Commit도 모두 삭제된다.
- revert
- 해당 커밋내역에 대해서만 되돌린다.
- revert한 커밋 이력이 추가된다.
- revert시 커밋이력을 남기고 싶지않다면 git revert --no-commit 돌아갈 커밋 해시
-> 정확히는 다른 작업들과 함께 커밋시 반영하기 위해 commit 전단계로 돌아간다.
pull 할것이 있을때 push
GitHub에 pull 할것 이 있는 상태에서 로컬에서 commit을 하였다.
현재 상태에서 로컬 -> 원격 으로 push 하게 되면 다음과 같은 에러가 발생한다.
pull을 받아온 이후 push가 가능하다.
git pull --no-rebase (Merge 방식)
git pull --rebase (rebase 방식)
이후 다시 push하면 된다.
파일을 staging area에서 working directory로 이동
git restore --staged 파일명
reset의 세가지 옵션
- soft: repository에서 staging area로 이동
- mixed (default): repository에서 working directory로 이동
- hard: 수정사항 완전히 삭제