gpt4 book ai didi

Git rebase 一次又一次地回到同一个地方

转载 作者:太空狗 更新时间:2023-10-29 14:13:00 25 4
gpt4 key购买 nike

我在使用 Git rebase 时遇到问题,我不得不一次又一次地 merge 代码,但仍然没有成功。

我从师父那里剪下了我的分支 (A)。我开始在我的分支上工作并做出更多 promise 。与此同时,master 也发生了变化,并进行了一堆提交。现在我正在尝试将我的分支 merge 回 master。

所以我给,

git co master
git pull
git co branch-A
git rebase master

现在我收到类似 CONFLICT 的消息:Merge conflict in

有了这个,它分支到一个名为的新分支(没有分支, rebase 分支-A)在此之后,我解决了所有冲突,然后我将所有这些文件添加到 git 中。

现在我得到状态

rebase in progress; onto ad0da3f
You are currently rebasing branch 'branch-A' on 'ad0da3f'.
(all conflicts fixed: run "git rebase --continue")

在此之后我运行 git rebase --continue 并且我为解决冲突所做的所有更改都消失了并且它回到了 merge 的初始状态并像以前一样抛出一大堆冲突!

我的问题是,

  1. 我怎样才能取回我在发出 git rebase --continue 之前完成的所有冲突解决方案?
  2. 我怎样才能不陷入需要一次又一次 merge 以将更改从 master pull 到我的分支的同一个循环?
  3. 在我成功地将所有更改从 master merge 到我的分支后,要将我的分支 merge 回 master,我可以简单地使用,

    git 合作大师git merge 分支-A

或者我是否需要发出更多命令?

请帮忙...

最佳答案

对我来说,很难说出你哪里出了问题,但请按照以下步骤操作:

  • 首先,备份你项目所在的文件夹,如果出了点问题,您还拥有原始的本地存储库。

  • 在 master 中使用 rebase pull :

    git checkout master

    git pull --rebase origin master
  • 用 master rebase 分支:

    git checkout branch-A

    git rebase master
  • 当然,如果存在一些冲突,请按照您已经在做的方式解决。

当我说 rebase 分支自身时,我想说的是用远程更新你的分支。当然,如果只使用分支 A,则不需要在本地分支中执行 pullpull --rebase。但在 master 中,使用 rebase 到 avoid merge commits that result from git pull 是一个很好的做法。 .当然,rebase 会产生一些影响,例如,当您在执行 rebase 之前推送提交时。所以,理想的做法是让一切都本地化,并且只有在 rebase 之后你才能推送你的分支或将它与 master merge 。参见 The Perils of Rebasing .

在我的例子中,我喜欢做的是:在将我的功能分支与 master rebase 后,我 checkout 到 master 并执行 git merge <my-branch> --no-ff .这样我的 git 历史就有一个提交 merge branch 'my-branch'。我喜欢这样的 git 历史。

有关 merge 与 rebase 的更多信息,请参阅 this answer对于这个问题“git merge”和“git rebase”有什么区别?

关于Git rebase 一次又一次地回到同一个地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29425462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com