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

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


当前回答

以我为例,这是因为我没有解决冲突。

该问题是由运行git pull命令引起的。原产地的变化导致与我的本地回购发生冲突,我解决了这个问题。然而,我并没有犯下这些罪行。此时的解决方案是提交更改(git提交已解析的文件)

如果在解决冲突后还修改了一些文件,git status命令将把本地修改显示为非分段本地修改,并将合并解析显示为分段本地修改。这个问题可以通过git commit从merge中提交更改来解决,然后像往常一样添加并提交未分阶段的更改(例如通过git commit -a)。

其他回答

在我的例子中,这里是我所做的导致分歧的消息:我做了git push,但后来做了git commit——amend,以向commit消息中添加一些东西。然后我又做了另一次提交。

所以在我的例子中,这仅仅意味着原点/主节点已经过时了。因为我知道没有其他人在触摸原点/master,修复是微不足道的:git push -f(其中-f表示力)

git pull --rebase origin/master 

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

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

我更喜欢更方便、更安全的方式。

# copying your commit(s) to separate branch
git checkout <last_sync_commit>
git checkout -b temp
git cherry-pick <last_local_commit>

git checkout master
git reset --soft HEAD~1 # or how many commits you have only on local machine
git stash               # safer, can be avoided using hard resetting on the above line
git pull
git cherry-pick <last_local_commit>

# deleting temporary branch
git branch -D temp

在我的情况下,我得到这个消息时,我按X。1从分支B提交到它的远程跟踪分支remote_B。然后在我的本地存储库,我做了更改,并将其修改为相同的提交ie。X ver.2。

现在我们在远程repo上提交xver1,并提交xver。2在本地。 然后git会警告你

您的本地分支和remote_分别有1个和1个不同的提交

要解决这个问题,你有两个选择:

1.从远程跟踪分支提取变更。

git reset --hard HEAD
git checkout --track remoteRepoName/branch_name 

2.强制将修改后的提交推到远程回购。 (仅建议在推X ver1提交后远程回购没有被任何人拉)

git push -f remote_repo_name remote_branch_name

我有这个问题,即使在阅读了上面的回复后,我也不知道是什么导致了它。我的解决办法是做

git reset --hard origin/master

然后,这只是将我的(本地)master副本(我认为是搞砸了)重置到正确的点,由(远程)origin/master表示。

警告:您将丢失所有尚未推送到原点/主节点的更改。