사용 사례 : 동일한 저장소 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의 리베이스 된 기록이 새로운 커밋으로 받아 들여집니다.