git rebase遇到的一个疑问
仅有的幸福
仅有的幸福 2017-05-02 09:19:29
0
2
548

最近工作git管理方面遇到一个疑问,如下:
我有两个分支devfeature 分支,目前出现如下疑问,
我在feature分支先执行 git pull origin feature操作,更新本地的分支到最新,然后执行了git rebase dev操作,最后执行git push origin feature时会遇到如下错误

To ssh://xxx@git.xxxx.com/project_xx/xxx.git
 ! [rejected]        feature -> feature (non-fast-forward)
error: failed to push some refs to 'ssh://xxx@git.xxxx.com/project_xx/xxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

最后再执行一次git pull origin feature操作才能成功,这样会产生一条merge log,并且内容为空Showing 0 changed files

疑问,为什么我之前已经执行了pull更新到最新了?不知道是不是我操作流程的问题,请大牛们指教,谢谢!

仅有的幸福
仅有的幸福

모든 응답(2)
世界只因有你

질문은 다음과 같아야 합니다.
우선, 기능 분기는 원격 분기입니다. 리베이스한 후에는 로컬 기능 분기가 개발 분기에 있지만 기능의 원격 추적 분기인 원본/기능은 여전히 ​​원래 위치에 있습니다. 그런 다음 이렇게 push하면 git은 이를 허용하지 않습니다. push할 때 git은 해당 브랜치의 이전 커밋을 확인합니다. 현재 브랜치의 마지막 커밋이 원격 브랜치의 최신 커밋이 아닌 경우 git은 제출을 방지합니다. . 새로운 지점을 따라가려면 당겨야 합니다.
또한 추적 분기를 로컬 분기와 분리하는 것은 좋은 생각이 아닐 수도 있습니다. 추적 분기를 삭제한 다음 로컬 분기의 구조를 원격 끝과 동기화하는 것이 목적인 경우. 먼저 원격 기능을 삭제하면 git push origin :feature 로컬 추적 분기가 사라질 수 있습니다. 그러면 그냥 밀면 됩니다.

Ty80

죄송합니다. 다시 테스트해본 결과 제가 생각했던 것과 전혀 다르다는 것을 알았습니다.
실제로 거부가 발생하고 다시 당기고 밀기만 가능하며 충돌이 발생할 수 있습니다.
[내 실험에 따르면 리베이스 후 원본/기능이 포크되었으므로 git gui를 사용하여 볼 수 있습니다. 리베이스는 커밋 간의 상위-하위 관계를 변경하기 때문입니다.]

  • 로컬 브랜치만 리베이스하는 것이 좋습니다

http://stackoverflow.com/questions/8939977/git-push-rejected-after-fea...

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!