1. commit에 push까지 했는데 이전 commit 버전으로 돌리고 싶을 때
1) commit ID 알아내기
git log
돌아가고 싶은 commit 버전의 ID를 복사한다.
2) revert 하기
git revert {commit_id}
처음에 복사했던 ID로 revert 한다.
그럼 이런 내용이 뜬다. 이러한 내용으로 revert 하겠다는 뜻이다. 맨 위의 Revert 어쩌고 문장은 하고 싶은 대로 코멘트를 작성할 수 있다.
:wq
쓰고 저장한다는 뜻의 명령어를 입력한다. 이때, 콜론(:)은 반드시 먼저 써줘야 한다.
다시 git log를 해보면 내가 원했던 버전으로 revert 된 기록이 나온다.
3) revert한 내용을 remote에 반영하기
※ remote란 github 홈페이지에서 보이는 저장소다. 반대로 local은 내가 작업하고 있는 컴퓨터 파일을 말한다. local에서 revert를 했으니 이 수정된 사항을 github에 반영되도록 remote를 변경해줘야 한다.
git push origin +{commit_id}:master
변경하려고 했던 commit ID를 넣어 push 해준다.
2. 복구하고 싶은 commit으로 돌아가고, 원래 했던 업데이트 이력들은 모두 지우고 싶을 때
git reset --hard {commit_id}
revert는 내가 여기서 revert 했다는 기록이 comment로 남는다. 하지만 reset --hard는 그런 기록이 없다. 아예 예전 버전으로 돌아가고 싶을 때 사용한다.
git reset --soft {commit_id}
reset --soft는 기록을 지우지 않고 해당 commit으로 돌아간다. 따라서 복구한 지점 그 이후에 했던 내용으로 다시 commit할 수 있다.
3. remote 내용을 수정하고 local에 반영하고 싶을 때
github 홈페이지에서 멋모르고 어떤 파일을 수정했다가 local과 일치하지 않아 local 파일을 commit 하지 못하는 경우가 있다. 예전에 아무것도 모를 땐 눈물을 머금고 local 파일을 삭제한 후 다시 clone 하곤 했었다(...)
1) remote 내용 불러오기
git fetch origin/master
fetch 하면 local에 반영되지 않은 부분만 불러온다.
2) local에 적용하기
git merge origin/master
그리고 merge를 하면 불러왔던 부분이 local 파일에도 반영된다.
'개발새발 개발자 > 기타' 카테고리의 다른 글
[Docker] docker-compose로 DB 연결하기 (2) | 2019.07.02 |
---|---|
[GitHub] remote에 이미 push한 파일 지우기 (2) | 2019.05.26 |
[eclipse] workspace 환경설정 복사하기 (2) | 2019.03.15 |
[GitHub] 각 파일의 히스토리 쉽게 보기 (1) | 2019.03.10 |
[GitHub] repository를 트리 구조로 보는 방법 - Octotree (0) | 2019.03.10 |