2012-05-26 5 views
1

git repo에서 몇 가지 코드를 두 번 변경했지만 각 변경 사항마다 별도의 커밋을하고 싶습니다. 변경 내용은 이 아니며 충돌이 있지만 중복됩니다. 즉, 이들은 종종 같은 줄에있을 수있는 독립적 인 변경 작업을 수행합니다. 이는 git add --patch이 작동하지 않음을 의미합니다. 입니까?

변화의이 유형의 예를

모든 쉼표 후에 공간 코딩 표준을 준수하기 위해 추가하고, 문자열을 앞에 붙여 기능의 네임 수 있습니다.

은 충돌 이런 종류의 처리의 스마트 자식 관련 방법이 있나요, 또는 처음부터 다시 시작하며 변경 사항 중 하나를 취소 할 수있는 유일한 옵션은 무엇입니까?

답변

2

이에 대한 git add --patch을 사용할 수 있지만 일부 수동 편집을 수행해야합니다. 겹쳐진 변경 내용이 포함 된 큰 덩어리가 나타나면 e (수동으로 현재 큰 덩어리를 편집)을 선택하면 커밋 된 내용을 정확하게 변경할 수 있습니다.

는이 일을 몇 가지 위험이있다, 당신은 Editing Patches section of the git-add(1) man page에 방지해야하는지에 대한 자세한 정보가있다.

+0

그래서 편집중인 패치가 작업 복사본을 수정하지 않고 추가 되었습니까? – naught101

+0

예, 원하는 경우 원하는대로합니다. 변경 사항 중 하나만 적용하도록 패치를 편집 할 수 있지만 작업 복사본에는 두 번째 커밋에 대한 변경 사항의 누적 효과가 포함됩니다. – georgebrock

+0

나는 단지 감사하다고 말하고 싶었다. 장기적으로, 나는 이것이 지금까지 SE에서 물어 본 질문에 대한 가장 유용한 해답이라고 생각한다. 나는 지금 그것을 항상 사용하고있다! – naught101