최근에 다시 브랜딩되었습니다. 즉, master
에서 새 분기를 만들고 기능 분기에 병합했습니다. TASK-123
, 새 분기 TASK-123-b
으로 병합 된 지형지 물 분기를 대체합니다. 기능 브랜치가 master
과 충돌 할 때마다 git 워크 플로의 정규 작업입니다.자식을 사용하여 커밋에 부모를 어떻게 추가합니까?
TASK-123
을 TASK-123-b
에 병합 할 때 병합 충돌이 발생했으며,이를 해결하고 커밋했습니다. 새로운 지점, TASK-123-b
, 유일한이, TASK-123
에 병합 커밋 한 부모 : master
가 어떻게이 수정할 수는 모두 master
및 TASK-123
는 부모가 그래서 커밋? 나는 git rebase
이 관여 될 것이라고 가정하지만, 부모 분기를 추가하는 방법/커밋을 커밋하는 방법을 모르겠습니다.
커밋 나의 역사는 현재 다음과 같습니다
master -*---*-----* ...
\ \
TASK-123 *---*-* \
\ \
TASK-123-b \---* ...
참고 :
master -*---*-----* ...
\ \
TASK-123 *---*-* \
\
TASK-123-b * ...
내가 같이 내에게 역사를 저지하려는 I 원격 아직까지 TASK-123-b
을 밀어하지 않은, 그래서 리베이스 커밋을하면 동료들에게 문제가 발생하지 않습니다.
첫 번째를 대답의 일부가 나를 위해 일했습니다. 내가 어떻게 든 내가 갈등을 해결하는 동안 병합을 시도하고 있지 않다는 것을 밝혀 냈다. 내가 그것을 다시 할 때, 나는 그것을 올바르게 얻었다. 호기심에서 임의의 부모가 커밋/분기를 저지르는 방법이 있습니까? –
@MartinCarney : 낮은 수준의'git commit-tree' 명령을 사용하면 부모님이 좋아하는 것을 커밋 할 수 있습니다 (부모는'-p' 인수에서옵니다). 그런 다음 새 커밋을 수동으로 참조해야합니다. 정지 된 (예를 들어, 충돌 한) 병합은 합병 될 커밋의 ID를 포함하는 파일'MERGE_HEAD'를 남기고'git commit'은 첫 번째 부모로'HEAD'로 다음 커밋을하고' 두 번째 부모로 'MERGE_HEAD'를 (를) 사용합니다. 어떻게 든 MERGE_HEAD 파일을 잃어버린 것처럼 들립니다. – torek
커밋 개체를 수동으로 작성할 수 있습니다. http://git-scm.com/book/en/v2/Git-Internals-Git-Objects#Commit-Objects 또는 첫 번째 부모가 될 작업을 체크 아웃 할 수 있습니다. , 다음과 같이 merge를 실행한다 :'git merge parent-2 parent-3 ...parent-n'을 실행 한 다음 모든 병합 충돌을'checkout --ours'로 수정합니다. 나는 그것이 효과가있을 것이라고 생각한다. –