죄송합니다. 어딘가에 중복 파일이있는 경우, 해결책을 검색 할 때 커밋 메시지를 변경하기 위해 익사 한 것으로 나타났습니다.git에서 동일한 파일의 변경 사항을 다른 커밋으로 분할 할 수 있습니까?
I 한 각 커밋 의 일부가되어야 변화의 두 가지가있다. 불행히도, 나는 아침에 두 번째 체인지 셋을 시작했는데, 전에 저녁에 첫 번째 커밋을 잊어 버렸음을 알지 못했다.
대부분의 경우 다른 파일에 영향을줍니다. 그러나 두 변경 집합에 대한 변경 내용이 포함 된 파일 하나가 두 번째 변경 집합없이 푸시 될 경우 빌드를 손상시키는 파일이 하나씩 두 개 있습니다 (). 너무 나빠질 때까지 별도의 지점에서 작업하고 싶다.
슬프게도, 나는에게 (누르지 않음) 이미 이 저지른 첫 번째 변경 집합을했고 나는 모두에 대한 변경 사항이 포함 된 파일이 있다는 것을 발견 할 때 그 위에 작업 지점를 만들었습니다.
커밋을 편집하여 변경 집합 2에 영향을주는 변경 사항을 추출 할 수있는 방법이 있습니까?
의욕에서, 당신은
- 에 의해 커밋을 수습 할 수
- , 패치로 변환 텍스트 편집기에서를 열고 당신의 의욕 GUI 경우
- 은 (패치 파일 사이 DIFF의 라인을 이동 당시에는 열리지 않았다).
GUI를 다시 열면 예상 한 내용이 포함 된 패치가 완료되고 푸시 될 수있었습니다.
이것이 실제로 내가 목표로 삼는 워크 플로입니다. git과 비슷한 것이 있습니까?
도구는 내가 사용하고 있습니다 : TortoiseGit 및 GitExtensions을 Win10
에편집 : 솔루션을 변경 집합에 나에게 변경 집합을 1 old_branch
및 new_branch
을 제공 대답
git checkout new_branch
git reset -p HEAD~1
git add -p
...
git commit -m "my changeset 1"
git add
git commit -m "my changeset 2"
git checkout old_branch
git reset --hard <new_branch>~1
에서 제안 2.
다시 한번 감사드립니다!
선제 솔루션에 감사드립니다. 저것은 분명히 미래를 위해 유의할 것입니다. 이미 커밋 된 변경 집합에서 변경 사항을 제거하는 방법이 있습니까? – starturtle
@TinyT 행크에서 무단계하기위한'git reset -p'가 있습니다. (스테이징/인덱스 영역에서 삭제합니다) – jbu
고마워, 새로운 브랜치에서'git reset -p HEAD ~ 1'을 사용했습니다. 'a'를 버리고 싶지 않았기 때문에), 올바른 순서로 변경 사항을 커밋 (GUI 커밋 도구를 사용하여 git add -p 설정을 죽였을 때 불행하게도, 나는 post-version을 복사해야했다. 내 혼합 파일, changeset 2 실행 취소, changeset 1 커밋, 파일 덮어 쓰기 및 changeset 커밋 2)를 수행 한 다음 이전 분기를 변경 세트 1으로 하드 리셋하여 다른 분기 커밋을 삭제합니다. – starturtle