Git & GitHub

[Git + SourceTree]원격 저장소에 커밋한 내용을 수정하는 방법

sungjine 2017. 10. 6. 14:45
반응형

방법은 reset을 통해 이전 커밋으로 돌아가 해당 내용을 다시 커밋하는 것이다. 이렇게 하면 이전에 했던 커밋을 없앤 후 다시 커밋하는 것이기 때문에 막 사용하면 안 될 것 같다.

 

깃 터미널에서 사용하는 방법 :

 

1. 하나의 커밋을 되돌릴 때는 git reset HEAD^ 명령어를 작성하고 여러개의 커밋을 한 번에 되돌리려면 git reset HEAD~2 명령어를 작성하면 된다.(2 라고 작성된 곳에 원하는 만큼의 수를 작성하면 된다.)

 

2. 커밋을 되돌렸으니 git commit -m '커밋 내용' 명령어를 통해서 다시 커밋하면 된다. 

 

3. 커밋을 원하는데로 다시 작성했다면 git push origin +[브랜치 명] 명령어를 통해서 강제 푸시를 해주면 된다.

 

SourceTree에서 사용하는 방법 : 

 

1. 되돌리고 싶은 커밋의 이전 커밋에서 우클릭하여 현재 브랜치를 이 커밋으로 초기화를 눌러준다.

 

 

2. 그 다음에는 Mixed - 작업 상태는 그대로 두지만 인덱스는 리셋을 선택한 후 확인을 누른다.

 

2.1 ) soft : 스테이지에 올라온 수정사항 보존, working tree에 올라온 수정사항 보존

2.2 ) mixed : 스테이지에 올라온 수정사항 취소, working tree에 올라온 수정사항 보존

2.3 ) hard : 스테이지에 올라온 수정사항 취소, working tree에 올라온 수정사항 삭제

 

3. 커밋을 되돌렸으니 다시 원하는 방향으로 커밋

 

4. 강제 푸시의 경우 SourceTree의 사용자들이 실수로 사용하는 경우가 많아 숨겨놓았다고 한다. 만약 필요하면 git push origin + [브랜치 명] 명령어로 강제 푸시하면 된다.

 

강제 푸시에 대한 조금 더 자세한 내용은 아래 글을 참고.

반응형