我必须向回购提出拉动请求。
我克隆项目,它只有一个分支:master
我签出了一个新分支feature
并将我的更改提交到此分支。
我将我的分支推送到Github,我现在能够提出拉取请求。所以我这样做,但它现在告诉我,我有冲突。
我理解这个问题。 master
领先feature
,因为我没有"拉"我在处理feature
时已经掌握的最后一些更改。
我该如何解决?我怎样才能"拉" master的最后一次更改到我的feature
分支?
答案 0 :(得分:9)
通过合并修复:
git fetch origin # gets latest changes made to master
git checkout feature # switch to your feature branch
git merge master # merge with master
# resolve any merge conflicts here
git push origin feature # push branch and update the pull request
通过rebase修复:
git fetch origin # gets latest changes made to master
git checkout feature # switch to your feature branch
git rebase master # rebase your branch on master
# complete the rebase, fix merge conflicts, etc.
git push --force origin feature
请注意,可能需要在重新定位后推送--force
选项,因为rebase会有效地重写feature
分支。这意味着您需要通过强制推送覆盖GitHub中的旧分支。
无论您是进行合并还是改造,之后都应解决冲突,并且您的审核人员应该能够完成拉取请求。
答案 1 :(得分:2)
$ git checkout feature
$ git fetch
$ git pull origin master
现在应该发生冲突。现在,如果你想保持主人的改变
$ git status # See the untracked files (conflict files)
$ git checkout --theirs <file-name> # Accept the master's change
或者,如果你想保留你的(features
更改):
$ git checkout --ours <file-name>
添加,提交并推送feature
分支
$ git commit -am <commit-message> # Add & Commit
$ git push origin HEAD # Push to remote feature branch