我有一个功能分支,它是前一段时间从大师那里获得的。现在我想将master重新绑定到该功能分支,所以我做了这个命令:
git rebase master
然后我继续使用SourceTree,因为我遇到了冲突。我一个接一个地解决了它们,然后继续变相,这已经持续了一段时间。最后很开心一切都好了。
这是Sourcetree现在向我展示的内容:
当我跑步时
git rebase master
我得到了
Current branch 2FA is up to date.Current branch 2FA is up to date.
当我这样做时:
git pull
我得到了一份我必须重做的文件列表。
Auto-merging db/schema.rb
CONFLICT (content): Merge conflict in db/schema.rb
Auto-merging config/locales/nl.yml
CONFLICT (content): Merge conflict in config/locales/nl.yml
Auto-merging app/views/users/_form.html.haml
CONFLICT (content): Merge conflict in app/views/users/_form.html.haml
Auto-merging app/models/user.rb
CONFLICT (content): Merge conflict in app/models/user.rb
Auto-merging app/models/permission.rb
CONFLICT (content): Merge conflict in app/models/permission.rb
Auto-merging app/helpers/application_helper.rb
CONFLICT (content): Merge conflict in app/helpers/application_helper.rb
Auto-merging app/controllers/users_controller.rb
CONFLICT (modify/delete): app/controllers/companies_controller.rb deleted in HEAD and modified in 1110e1f18d4ab388eab767509d95be10b9953a36. Version 1110e1f18d4ab388eab767509d95be10b9953a36 of app/controllers/companies_controller.rb left in tree.
Auto-merging app/assets/stylesheets/custom.css.sass
CONFLICT (content): Merge conflict in app/assets/stylesheets/custom.css.sass
Auto-merging app/assets/stylesheets/backapp.css
CONFLICT (content): Merge conflict in app/assets/stylesheets/backapp.css
Auto-merging Gemfile.lock
CONFLICT (content): Merge conflict in Gemfile.lock
Auto-merging Gemfile
CONFLICT (content): Merge conflict in Gemfile
Automatic merge failed; fix conflicts and then commit the result.
这是为什么?我已经完成了搞清楚的工作。这种方式反叛似乎比合并更多的工作。
答案 0 :(得分:0)
当您在master
上重新设置功能分支时,您重写了该分支的历史记录。实际发生的是你在master
分支上重播你的工作。一旦你完成了rebase,正常的做法就是强制将你的功能分支推送到遥控器:
git push --force origin feature
当您执行git pull
时发生的事情是您告诉Git引入当前的远程feature
分支,可能是通过合并策略。由于您刚刚重写了feature
分支,因此Git将远程分支视为“新的”,至少考虑到甚至应该进行合并。在任何情况下,执行git pull
都是不正确的,您可能需要的就是强行推送您的功能分支。
如果您想知道为什么甚至想要使用rebase而不是合并,事实证明rebase能够在功能分支中维护线性历史记录。这可能是有利的,因为它使分支的历史易于阅读。缺点是每个使用此分支的人都可能需要通过变基再做更多的工作。