Git

[Git] Rename과 Revert

인생은단짠단짠 2022. 9. 16. 21:20

 

rename 하는 방법 부터 간단히 알아보겠습니다.

(rename과 revert는 관련이 없습니다. )

 

Rename 하기

 

revert.md를 reverted.md로 바꾸고 싶을때 어떻게 해야 할까요?

 

$mv revert.md reverted.md

-> 화면상으로는 rename이 잘 일어났다고 생각할 수 있지만 git에서는 이러면 안됩니다.

 

git staus를 통해 상태를 확인해봅시다.. 

이름이 바뀐 것이 아니라 원래 파일이 삭제되고, 새로운 파일이 추가된 걸로 인식하기 때문입니다.

 

그래서!! git에게 알려주면서 이름을 바꿔야 합니다.

$ git mv 원래파일이름 바꾸고싶은이름

 

git mv를 사용하면 아래와 같이 뜹니다.

 

정의 했던 어떤 것이 바뀐 것 뿐, 실제 물리량이 변한 게 아니기 때문에 stage에 올릴 게 없어서 바로 commit해주면 된다.

 

git commit ( fix: Rename revert.md to reverted.md )

 


여기서 부터 되돌리기에 관한 것들입니다.

 

Undo 

파일의 변경사항을 되돌리고 싶을 때 사용합니다. 

git restore '되돌리고 싶은 파일 이름'
git restore .      //여러개를 동시에 되돌리고 싶을 때( 현재 디렉토리 아래에 존재하는 모든 변화량 취소)

 

어떤 파일을 변경하고 저장(:wq)합니다.

그 다음 git status를 해보면 add해야할 파일이라고 뜹니다.

이것을 되돌리고 싶을 때, 아예 git status에 아무것도 뜨지 않게 되돌리고 싶을 때 restore를 사용합니다.

 

-> working directory 상에서 되돌리고 싶을 때 restore 사용합니다.

 

Unstaging 

stage에 올렸던 것을 내리는 행위입니다.

git reset HEAD '파일이름'

 

이미 add 해버린 파일을 수정하고 싶거나, 올라가면 안되는 파일이 올라갔을 때 reset을 사용합니다.

 

만약 습관적으로 git add .를 해버렸다면? 

stage에 올라가선 안되는 파일이 올라갈 수 있을 것입니다.

그래서 그 파일을 내려주고 싶을 때 밑의 명령어를 실행 하면 그 파일은 stage를 내려갑니다.

$ git reset HEAD '올라가면안되는파일'

 

-> stage에 올라간 파일을 working directory로 내리고 싶을 때 reset 사용합니다.

 

 

Commit message 되돌리기

git commit --amend

 

commit message를 잘못작성했다면? 

직전에 한 commit 수정해 봅시다.

 

git log를 하면 commit아이디를 알 수 있다. 앞의 7자리가 commiti id입니다.

 

commit message가 잘못됨을 인지하는 방법

1. 쓰자마자 나오는 메시지 확인

2. git log로 확인

 

$ git commit --amend

위의 명령어를 실행 하면, 직전에 입력했던 commit message가 vim으로 뜬다. 이것을 수정하고 저장한다.

그리고 git log 해보면 수정된 commit message를 확인 할 수 있다.

 

 

이러한 되돌리기들은 push하기 전에만 유효하다.

push를 자주 하지 않는 것이 좋다.

 

revert

 

revert와 reset의 차이

revert - 했던 잘못을 되돌리는 행위
reset - 세상에 없던 일로 만드는 행위 

 

reset은 굉장히 위험합니다. 그리고 다른 repo에 있던 커밋으로 인해 다시 돌아올 수 있습니다.

따라서 reset은 위험성은 큰데 의미가 없을 수 있기 때문에 권장하지 않습니다.

 

revert는 특정한 커밋을 실수 했을 때 실수에 대해 인정하고 그 시점으로 돌아가는 것입니다.

 

 

revert 실험

 

상황

잘못한 최근 commit 3개를 만듬.

우리는 이 잘못된 commit 3개 전으로 되돌아 가고 싶다.

 

해결

git lg로 커밋을 확인합니다. 잘못된 commit 3개를 확인 할 수 있습니다.

 

commit을 되돌립니다. 

git revert --no-commit HEAD~3..

여기서 HEAD~3.. 은 최신으로 부터 3개를 순차적으로 를 의미합니다.

commit하나 되돌릴때마다 창이 뜨는데 --no-commit을 하면 한번만 뜹니다.

 

 

git status로 확인합니다.

이 상태에서 commit을 해주면 됩니다.

commit message 내용에 "왜 revert를 하게 되었는지" 이유를 써주면 좋습니다. 

 

그 다음 giti log를 통해 확인하면 wrong commit은 여전히 남아있고, 되돌렸다는 커밋 하나가 추가되었습니다. 

 

잘못한 행동을 취소할 때 그 일을 없던 것으로 하는 것은 좋지 않습니다. 

빠르게 인정하고 상태를 되돌려 놓읍시다. 

 

 

 

 

'Git' 카테고리의 다른 글

[Git] Vim꾸미기  (0) 2022.09.17
[Git] 협업 연습  (0) 2022.09.17
[Git] Hexo를 통해 나만의 블로그 만들기  (0) 2022.09.16
[Git] Git flow 전략  (0) 2022.09.16
[Git] Git의 기초 배우기  (0) 2022.09.15