不知何故,我的主分支和我的起源/主分支分道扬镳了。 我不希望它们发散。

我如何看待这些差异并将其合并?


当前回答

git pull --rebase origin/master 

是一个在大多数情况下可以帮助您的命令。

编辑:从源/主节点中提取提交,并将您的更改应用于新提取的分支历史记录。

其他回答

要查看差异:

我嫉妒他

这将显示两个分支之间的变化或差异。在araxis(我最喜欢的)中,它以文件夹差异样式显示它。显示每个更改的文件。然后,我可以单击一个文件来查看文件中更改的详细信息。

Git重置——soft origin/my_remote_tracking_branch

This way you will not loose your local changes

我相信这应该对我有帮助:

git reset --hard origin/master

但事实并非如此。不知怎的,我得到了同样的消息&当我从远程分支中提取更改时,冲突就发生了。因为我确定我根本不需要我现有的本地分支&我只需要一个远程主分支的副本,因此我想出了这个解决方案:

签出到一个新的分支,例如,git Checkout -b placeholder-branch。注意:该分支可以稍后删除。 git分支-D master,我这样做是因为我确定我的本地分支被搞砸了&我不需要这个。我需要远程实例的新副本。 Git签出-跟踪原点/master &你完成了;现在你可以使用git branch -D删除占位符分支

当我基于分支a创建一个分支时遇到了这个问题

git checkout -b a

然后我将分支a的起始流设置为分支B的原点

git branch -u origin/B

然后我得到了上面的错误消息。

对我来说,解决这个问题的一个方法是,

删除分支a 创建一个新的分支b

git checkout -b b origin/B

当我试图重设跟踪远程分支的分支的基础时,我发现自己处于这种情况,我试图在master上重设它。在这种情况下,如果您尝试重新建立基础,您很可能会发现您的分支分散了,它可能会造成一个混乱,这不是git nubees!

假设您在my_remote_tracking_branch分支上,这个分支是从master分支出来的

$ git状态 在分支my_remote_tracking_branch上 没有要提交的内容(工作目录清洁)

现在你正试图从主为:

吉特校长

现在就停下来,给自己省点麻烦!相反,使用merge as:

Git 合并大师

是的,您最终会在分支上获得额外的提交。但除非你想要“不发散”的分支,否则这将是一个比重基更流畅的工作流程。有关更详细的解释,请参阅这个博客。

另一方面,如果你的分支只是一个本地分支(即还没有推送到任何远程),你一定要做一个rebase(你的分支在这种情况下不会发散)。

现在,如果你正在阅读这篇文章,因为你已经处于由于这种重基而导致的“发散”场景中,你可以通过使用以下命令回到上一次提交(即在未发散的状态下):

Git重置——hard origin/my_remote_tracking_branch