在git中快进合并失败

时间:2011-01-21 19:02:25

标签: git merge

我将在前言中说我对git很新。然而,这似乎是一个非常简单的场景,我无法看到问题的来源。这是场景:

我在主分支上有一些我不想要的未提交的更改。我需要进行单独的简单更改以打包到补丁中。所以我这样做:

我找到了对主分支的最后一次提交的哈希#,即ffdd99afc89211e9ddc3efa3415b0adaf0076b4b。

所以从我的存储库的根目录开始:

git branch my_patch ffdd99afc89211e9ddc3efa3415b0adaf0076b4b
git checkout -f my_patch

现在我编辑三个文件并添加第四个文件,然后执行:

git add [path to the added file]
git status

这列出了三个更新的文件和一个添加的文件

git commit -a
git status

未发现任何变化

git format-patch master --stdout > my_patch.patch

到目前为止一切都很好。现在我想把这个分支合并回master。

git checkout master
git status

未找到任何更改

git merge my_patch

输出是:

Updating ffdd99a..e2754ca 
error: Your local changes to 'Blah.cs' would be overwritten by merge. 
Aborting. Please, commit your changes
or stash them before you can merge.

现在,如果我git status,我会列出一大堆变化。这对任何人都有意义吗?

1 个答案:

答案 0 :(得分:0)

如果您在开始时不想要更改,请执行git reset --hard。如果那里有你没有需要的未跟踪文件也可以git clean -df

至于最后的错误消息,您可能在路径中出现套管问题。这是在Windows上w / msysgit吗?

如果您使用的是Windows,请确保将autocrlf设置为false。