2012-07-17 2 views
1

Git을 사용하여 필자는 feature 브랜치에서 작업하고있었습니다. 나는 누군가가 그것을 볼 수 있도록 지부에 그 가지를 밀어 넣었다. 그런데 얼마가 지났기 때문에 나는 그것을 rebased했다. 내 리베이스 된 브랜치를 이전 브랜치에 푸시 (push)하려면 어떻게해야합니까? 어떤 함정을 피해야합니까? 나는 그것이 단지 git push --force (또는 --mirror?)이라고 생각하지만, 나는 결코 확신 할 수 없다.강제로 밀어 넣고 리베이스 한 자식 분기를 덮어 쓰게하려면 어떻게해야합니까?

일부 관련 링크 :

답변

6

당신은 git push --force를 사용하지만 공용 역사를 다시 작성하는 것을 기억하시기 바랍니다 싶습니다.

공개 서사를 다시 쓰는 것은 매우 나쁜 생각입니다. 이전 기록을 가져온 사람은 누구나 git pull --rebase이어야하며, 재 작성된 기록에서 태그를 지정했거나 분류하면 악화 될 수 있으므로 굴욕을 게시하여 무엇을해야하는지 알 수 있도록해야합니다.

서버가 허용하지 않을 수도 있지만 github에서 사용합니다. receive.denyNonFastForwards (git-config)를 참조하십시오.

+0

브랜치를 당긴 다른 devs (매우 작은 세트)가 그것을 잡아 당겨 보는 것 외에는 아무 것도하지 않는다는 것을 알고 있다고 가정하면 어떻게해야할까요? 단순히 "git pull --rebase"를 실행하면 모두 잘될 것입니까? –

+0

@Scott : 원산지/foo로 본다면 아무 것도하지 않아도됩니다. 그들이 로컬 추적 브랜치 foo를 생성했다면, 그들은'git pull --rebase'를 사용하여 지역 추적 추적 브랜치를 생성하면'git pull --rebase'를 추적합니다. 또는 분기를 삭제하고 다시 작성하십시오. –

관련 문제