커밋하기 전에 git diff
을 사용하여 변경하지 않았 음을 알았습니다. 이 단일 변경 사항을 되돌릴 방법이 있습니까?diff에서 하나의 변경 되돌리기
git add -p
을 사용하여 변경하려는 내용을 커밋 한 다음 마스터를 체크 아웃 할 수 있다고 가정합니다. 더 좋은 방법이 있습니까? 가급적이면 저를 커밋 할 필요가없는 방법일까요?
이것은 Kubuntu Linux 12.10의 Git 1.7.10.4와 함께 사용됩니다. 감사!
커밋하기 전에 git diff
을 사용하여 변경하지 않았 음을 알았습니다. 이 단일 변경 사항을 되돌릴 방법이 있습니까?diff에서 하나의 변경 되돌리기
git add -p
을 사용하여 변경하려는 내용을 커밋 한 다음 마스터를 체크 아웃 할 수 있다고 가정합니다. 더 좋은 방법이 있습니까? 가급적이면 저를 커밋 할 필요가없는 방법일까요?
이것은 Kubuntu Linux 12.10의 Git 1.7.10.4와 함께 사용됩니다. 감사!
git reset --patch
(또는 git reset -p
) 원하는대로합니다.
documentation 관련 비트 :
자식 리셋 (--patch | -p)은 [] [-]의 인덱스 사이의 차이 [...]
대화식 선택 심술쟁이을 (기본값은 HEAD). 선택한 헌크는 색인의 역순으로 적용됩니다.
이것은 git reset -p가 git add -p와 반대되는 것을 의미합니다. 즉, hunks를 선택적으로 재설정하는 데 사용할 수 있습니다. --patch 모드를 사용하는 방법은 git-add (1)의 "Interactive Mode"섹션을 참조하십시오.
전 unstages 그들, 그리고 그렇게 git reset
가 git add
가하는 것처럼 같은 --patch
옵션을 지원하면서 (경로에 적용) git reset
가 git add
— 후반부 파일이나 덩어리 일치 않습니다 것을.
git checkout --patch
(또는 git checkout -p
)에 대해 자세히 알아볼 수도 있습니다.
제출할 은색 글 머리 기호가 없지만, 이러한 사용 사례가있는 경우 git gui
으로갑니다. 나는 필요한 모든 변경 사항에 대한 색인을 작성한 다음 원하지 않는 변경 사항을 되돌립니다.
git add -p
과 동일하지만, git gui
은 작업을 정말 깔끔하게 만듭니다.
git checkout
도 기본적으로 -p
의 git add
과 동일하지만 그 반대입니다.
그냥 수행
git checkout -p <path>
(당신이 원하는 경우 또는없이 path
)
git add -p
당신이 여기에 당신이 되돌릴 변경하는 선택 단계로 변경을 선택할처럼.
그렇지 않습니다.'git checkout -p'는 인덱스를 건드리지 않고 작업 트리의 파일을 업데이트합니다. – kostix
@kostix 예, OP가 요구했던 바로 그 것입니다. – kirelagin
고맙습니다.이 점도 알아두면 좋습니다. – dotancohen