2017-02-27 4 views
0

git을 사용할 때, 당기기를 사용하기 위해서 당기기 대신에 fetchmerge (이 blog으로 지적한 바)에 좋은 생각 인 것 같습니다. 병합하기 전에 변경 사항을 확인하십시오. 이것은 일을하는 합리적이고 안전한 방법으로 보이며 지금까지 따라 할 수 있습니다.Git으로 조심스럽게 당기기 : 원산지/마스터에서 마스터로 선택 (수동) 병합

그러나 마스터와 원점/마스터간에 git diff을 수행하고 대부분의 업데이트가 양호하다고 결정하지만 몇 가지 사항을 수정해야하는 경우 어떻게해야합니까? 수동으로 병합하는 방법이 있습니까? 병합 충돌 후 편집과 비슷한 것을 찾고 있는데, 이는 각각의 단일 변경을 결정할 수 있습니다. git add --patch과 조금 비슷합니다.

내가 원했던 것은 원점/마스터를 내 마스터로 통합하기 전에 편집 작업의 힘을 얻는 것입니다. 가장 좋아하는 것은 difftool입니다. 변경 사항을 master에 적용한 다음 git push -f을 사용하여 강제로 푸시 할 수 있음을 이해했습니다. 그러나 이는 다소 잔인하고 불필요한 것으로 보입니다.

반면에 cherrypick은 매우 유망한 이름처럼 들리지만 파일의 실제 변경 사항이 아닌 커밋 만 선택할 수 있습니다.

고도로 선택적이고 수동으로 병합 할 수있는 방법은 무엇입니까? docs의 병합 전략 중 어느 것도이를 위해 충분한 수동 제어를 허용하지 않는 것으로 보입니다.

답변

2

병합을 수행하는 순간 --no-commit 매개 변수를 사용하십시오.

git merge --no-commit <branch> 

는 충돌이 발생했을 때와 완전히 동일 대기중인 병합으로 상태를 떠나 커밋 생성시에 병합을 중지합니다.

이 상태에서 필요한 변경을 수행하고 필요한 변경을 수행 할 수 있습니다.

+0

감사합니다. 충분히 쉬웠습니다. – untergam

+0

허용 된 답변의 일부로 덩어리 기반 재설정을 추가했습니다. –