2011-07-29 9 views
3

사용 사례 : 동일한 저장소 A, B, B2 세 개의 git 복제본. Repos A와 B는 정상이며 B2는 알몸입니다 (-로 표시). 내 통제하에있는 모든 사용자, 즉 한 명의 사용자 만 있습니다.Git rebase 강제 적용

사이트 B에서 나는 몇 가지 git 커밋을 한 다음 git push B2를 수행한다.

  • 사이트에서 Git은 B2를 가져옵니다.
  • 사이트에서 일부 커밋을 정리하고 기록을 지우려면 git rebase -i xx..HEAD를 사용하십시오 (훌륭한 명령).
  • Q : 사이트 B에 결과를 전달하는 방법은 무엇입니까?

    • 자식 푸시 --force의 B2

    을하지만이 꽤 괜찮되지 않습니다 :

나는 할 수있다. git pull B2 후에 사이트 B 작업 디렉토리에 이상한 기록이 생깁니다.

--force를 사용하지 않는 방법이 필요합니다. --hard XX 를 다시 B2에

(벌거 벗은 REPO)

  • 자식 : 그럼, B2에 xx..HEAD을 던져 아마도 A.에서 일반적으로 밀어 싶습니다

    충분하지 않은지 확인하십시오. 사이트 A에서 다시 복제하면됩니다 (B2 삭제, git init --bare, A에서 푸시).하지만 잔인한 것처럼 보입니다. How to push/pull Git rebase 게시물은 관련성이있는 것 같지만 '이 작업을 수행하지 마세요'라는 답변 외에 바랄뿐입니다.

    결론 : B2에서 커밋을 완전히 버리면 A의 리베이스 된 기록이 새로운 커밋으로 받아 들여집니다.

답변

0

- 힘을 사용하지 않는 방법이 필요합니다. 그때, B2에 xx..HEAD을 던져 A.에서 일반적으로 밀어 싶습니다

음이, B2에 xx..HEAD를 버리고, 다음에서 일반적으로 밀기의 거의 정확한 정의입니다 --force. B로 당길 때 --force을 다시 사용하면 당기기 전에 xx 또는 그 전에 커밋 할 B 분기의 브랜치를 리베이스하는 한 괜찮습니다.

2
git reset --hard 

던져 버리려는 의미로 커밋됩니다.

관련 문제