출처
http://stackoverflow.com/questions/1186535/how-to-modify-a-specified-commit-in-git
Git에서 특정 commit만 수정하는 방법?
저는 리뷰하면서 commit의 모든 목록을 제출합니다. 만약,
- HEAD
- Commit3
- Commit2
- Commit1
저는 git commit --amend로 HEAD commit을 수정할 수 있다는 걸 알지만, 어떻게 HEAD
commit이 아닌 Commit1
을 수정할 수 있을까요?
----
----
4 개의 답변 중 1개의 답변만 추려냄.
당신은 git rebase를 사용할 수 있습니다. 만약 commit bbc643cd으로 돌아가서 수정하고 싶으시면, 다음을 실행합니다.
$ git rebase --interactive 'bbc643cd^'
기본 편집기로, 수정하고 싶은 commit의 줄에서 'pick'을 'edit'로 변경합니다. 원하는 대로 작업 디렉터리를 변경하고 이전과 같은 메세지로 다음처럼 commit 합니다.
$ git commit --all --amend --no-edit (1)
commit을 변경하고, 다음을 입력하여
$ git rebase --continue
이전 HEAD commit으로 돌아옵니다.
경고 : 이는 모든 자식들까지 포함하여 SHA-1 commit이 바뀌게 됨을 아셔야 됩니다. 다른 말로, 이는 그 지점부터 앞으로 history (commit)을 다시 쓰게 됩니다. 만약 git push --force명령을 사용하여 push를 하면 이를 수행한 저장소는 망가질 수 있습니다.
---
역자주
https://git-scm.com/docs/git-commit
(1) git commit --all --amend --no-edit
--all : -a와 같은 의미로 수정되거나 삭제된 파일을 자동으로 stage 영역으로 올립니다.
--amend : commit을 추가하지 않고 마지막 commit을 수정합니다.
--no-edit : --amend와 결합하여 commit 메세지 변화없이 마지막 commit을 수정합니다.
'Git' 카테고리의 다른 글
Git diff를 HTML에 색칠하여 표시하기 (0) | 2018.08.29 |
---|---|
Git에서 commit의 author(작가)를 변경하기 (0) | 2016.03.17 |
git의 출력에 색을 입히는 방법? (0) | 2016.01.27 |
파일 히스토리를 없애지 않고 두 개의 Git 저장소를 합치는 방법? (0) | 2015.11.16 |
git log (0) | 2015.08.31 |