sri*_*ram 7 git git-merge git-rebase git-branch
我在使用 Git rebase 时遇到问题,我必须一次又一次地合并代码,但仍然没有成功。
我从主人那里切下了我的分支(A)。我开始在我的分支上工作并进行了更多的提交。与此同时,master 也发生了变化,并进行了大量的提交。现在我正在尝试将我的分支合并回 master。
所以我给,
git co master
git pull
git co branch-A
git rebase master
Run Code Online (Sandbox Code Playgroud)
现在我收到类似 CONFLICT 的消息:合并冲突
有了这个,它分支到一个新的分支,名称为(没有分支,rebase 分支-A)在此之后我解决了所有冲突,然后我给了所有这些文件的 git add 。
现在我得到了状态
rebase in progress; onto ad0da3f
You are currently rebasing branch 'branch-A' on 'ad0da3f'.
(all conflicts fixed: run "git rebase --continue")
Run Code Online (Sandbox Code Playgroud)
在此之后,我运行 git rebase --continue 并且我为解决冲突所做的所有更改都消失了,它回到了合并和像以前一样抛出大量冲突的初始状态!
我的问题是,
在我成功地将所有更改从 master 合并到我的分支后,将我的分支合并回 master,我可以简单地使用,
git co master git merge branch-A
或者我需要发出更多命令吗?
任何帮助请...
对我来说,很难说你出了什么问题,但请按照以下步骤操作:
首先,备份您的项目所在的文件夹,以防万一出现问题,您仍然拥有原始的本地存储库。
在 master 中使用 rebase 进行拉取:
git checkout master
git pull --rebase origin master
Run Code Online (Sandbox Code Playgroud)与 master 重新建立分支:
git checkout branch-A
git rebase master
Run Code Online (Sandbox Code Playgroud)当然,如果存在一些冲突,请按照您已经采取的方式解决。
当我说用自己的分支变基时,我想说的是用远程更新你的分支。当然,如果只使用branch-A,则不需要在本地分支中执行pull或pull --rebase 。但在 master 中,使用 rebase 来避免 git pull 导致的合并提交是一个很好的做法。当然,变基会导致一些影响,例如,当您在进行变基之前推送提交时。因此,理想的情况是将所有内容都本地化,并且只有在变基之后才推送分支或将其与主分支合并。请参阅变基的危险。
就我而言,我喜欢做的是:在使用 master 重新调整我的功能分支后,我签出 master 并执行git merge <my-branch> --no-ff. 这样我的 git 历史记录就有一个提交合并分支 'my-branch'。我喜欢这样我的 git 历史。
有关合并与变基的更多信息,请参阅“ git merge”和“git rebase”之间的区别是什么?