[Git] git 파일옮기기나 되돌리기 연습(restore, revert, reset, --amend)

koseony·2022년 5월 1일
0

git

목록 보기
4/5
post-thumbnail

Rename

❗git에서 파일을 이동하고 싶을때는 mv를 이용하면 되는데 여기서 주의해야한다!


위에 이미지들 처럼 git을 붙이지 않고 mv로 파일을 이동하면 파일이 삭제 됐다가 다시 생성되는걸로 나온다.
그러니 git을 붙여주자!

Undoing

1. Restore

다음은 로컬에서 변화된 부분을 최소하는 방법이다.

git restore 변화된 파일

을 입력하면 된다.
예시)

기존에 helloworld.py파일 마지막에 #add를 추가해줬다.
이게 restore 해보자

추가해줬던 #add 가 사라졌다.

2. Unstaging

다음은 add한걸 내리고 싶을 때 쓰는 방법이다.

1. reset(비추)

❗리셋은 다른 repo에 그 파일이 남아있어서 pull을 받으면 다시 살아서 돌아온다.
그리고 중간에 history가 없어져서 tracking이 힘들어짐
즉 reset은 하지 않는다.
ex) 직전 3개의 commit을 삭제한 후, remote에 강제 push

$ git reset --hard HEAD~3
$ git push -f origin <branch>
  • 협업 시 다른 cloned repo에 존재하던 commit log로 인해 파일이 살아나거나, 과거 이력이 깜끔히 사라져 commit log tracking이 힘들어짐.
  • solution: 잘못된 이력도 commit으로 박제하고 수정한 이력을 남기자!

2. revert(추천)

ex) 현재 HEAD에서 직저의 3개의 commit을 순서대로 거슬러 오라가 해당 내역에 대해 commit, push 수행

$ git revert --no-commit HEAD~3..
$ git commit
$ git push origin <branch>
  • 잘못하기 전 과거로 돌아가 최신을 유지하면서 되돌렸다는 이력을 commit으로 남겨 모든 팀원이 이 사항을 고유하ㅗ 주지시킬 수 있음.
  • commit을 따로 안할 땐 --no-edit
  • merge commit을 되돌릴 땐 -m($git revert -m {1 or 2} {merge commit id}

예시)

3개의 파일을 각각 만들고 add하고 push까지 해줬다.
마지막 3개로부터 순차적으로 revert진행 (--no-commit은 커밋은 한번에 진행한다는 의미이다.)

3. 커밋 수정하는 법(--amend)

아래와 같은 코드로 커밋을 수정한다.

git commit --amend


위와 같이 커밋 메시지를 작성했는데 수정이 하고 싶다면


git commit --amend를 입력하고 커밋 메시지를 수정해준다.

profile
프론트엔드 개발자

0개의 댓글

관련 채용 정보