Cloud/Git

Git 정리

seung_soos 2023. 10. 11. 22:21

브런치 생성 / 이동 / 삭제

  • 생성
    • 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의 차이점

  1. reset
    • Commit 시점으로 되돌리지만 중간 단계의 Commit도 모두 삭제된다.
  2. 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: 수정사항 완전히 삭제