git revert (협업의 필수요소)

조 은길·2021년 2월 22일
1
post-thumbnail
  • git revert
    => revert는 되돌아간다는 의미이다.

즉, git revert도 git reset처럼 과거의 잘못된 commit을 바로잡는 역할을 한다.
그러나, reset은 잘못된 commit을 했던 기록 자체를 없애버리는 반면에, git revert는 잘못된 commit을 원래대로 되돌리는 것 그 자체가 또하나의 새로운 commit으로써 추가된다.

다시 말해서, revert는 자기가 실수한 내용조차 기록으로 남길 수가 있다.
그럼 구지 이런 기능을 뭐하러 사용할까?? 아이러니하게도, 협업할 때는 reset보다 revert가 압도적으로 많이 쓰인다.

ex)
person A 가 실수로 commit한 파일이 push가 되서 github에 업로드가 됐다고 가정해보자!!
( 나는 이것을 실수 commit 이라고 부르겠다 )
person B는 이러한 상황을 모르고, 오늘도 git pull로 github에서 자료를 다운 받아서 작업을 시작한다.

=> 이때 person A가 자신의 실수를 은폐하기 위해 git reset을 해서 자신의 실수 commit을 commit 기록과 함께 지워버린 채로 push를 한다면, A의 commit 기록과 github의 commit 갯수가 꼬이기 시작한다.
동시에 B는 A의 실수 commit까지 갖고 작업을 하는데, B가 작업을 끝낸 뒤에 push로 github에 업로드를 하는 순간 github에서 commit 갯수도 꼬이고, 실수 commit까지 다시 존재하는 참사가 발생한다.

이러한, 참사를 방지하기 위해, 나의 실수 commit을 쿨하게~ 인정하고 그 위에 새로운 commit 즉, 이전 버전 commit을 하나 더 덮어씌워주는 것이 나의 로컬과 github의 commit 갯수도 맞출 수 있고, 실수 commit을 가지고 작업을 하던, B도 그것이 실수 commit이고, 수정되었다는 것을 알 수 있다.
=> 이 말을 명령어로 적으면, " git revert "!!

즉, revert는 내가 한 실수를 모르고, push해서 github에 올려버렸을때, 다른 사람들과 commit 숫자를 맞추기 위해 사용된다.

지금까지 git revert가 무엇인지 그리고 왜 필요한지 알아봤으니, 실제로 한 번 써보자!!
일단 실수 commit을 하나 만들어보겠다.

git revert 역시도 어디를 덮어씌워줘야 될지 위치를 지정해줘야 한다.
가장 마지막 위치 나타내는 HEAD 써주는 게 가장 일반적인데, 구지 다른 commit을 덮어씌워주고 싶다면, HEAD 대신 commit의 일련번호를 적어주면 된다.
일단은 가장 쉽고, 일반적인 HEAD를 사용해보자!!

git revert HEAD

성공적으로 revert가 된 것을 확인할 수 있다.

이제 github에서 code1.txt를 확인해보면, 다음과 같이 나온다.

빨간 줄은 예전버전 => 실수 commit
그 밑에 줄은 새버전 => 실수를 덮어쓴 새 commit 즉 이전 버전이다.

다음 시간에는, git에서 가장 강력한 능력 중에 하나인 git branch에 대해서 알아보자!! 두둥!!

  • git branch

자료 출처 및 참고 자료

이번 블로그는 코드스테이츠의 강의 내용과 ZeroCho 블로그의 일부를 바탕으로 작성했으며, 그 어떠한 상업적 용도도 없음을 밝힌다.

https://www.zerocho.com/category/JavaScript

https://www.youtube.com/watch?v=VUuGa1QFmcA

https://stackoverflow.com/questions/19032296/how-to-use-git-revert

https://www.geeksforgeeks.org/ultimate-guide-git-github/

profile
좋은 길로만 가는 "조은길"입니다😁

0개의 댓글