Git - 为什么文件在结账时合并?

时间:2014-06-05 12:24:05

标签: git

这让我疯狂。我已经阅读了几个教程,甚至在YouTube上观看了视频,但似乎我错过了一些重要的基础知识!

所以,非常简单的工作流程。我在目录git init上初始化Git,添加文件git add .,并进行初始提交git commit -m 'initial commit'

然后我创建了一个新的分支,准备好处理一些新的变化:

git branch myChanges
git checkout myChanges
git add .

所以,我做了我的改变。但是,唉,我不喜欢他们。在我制作之前,我想回到原来的位置:

git checkout master

但[arggghhhh!]我的更改已经被复制了!我已经污染了几个月的好工作,有一些我不想要的改变! [arggghhhh!]

原因:

M www/index.php
Switched to branch master

我理解M表明index.php文件已合并到存储库的分支主服务器中?

现在问题的一部分是我偶尔会陷入Git。通过这个,我每次都可能以稍微不同的方式做事。我必须这样做,因为我每次都有不同的结果!有时我可以在不合并任何文件的情况下结账。有时我没有。在我今天再次使用它之前,我以为我已经解决了问题。这种不一致性已经破坏了我使用它的信心。所以如果有人能够解释(最好用简单的话)Git会,并且不会在结账时合并文件,我将非常感激。这样我就可以放心地在分支之间切换。

如果有人能告诉我解除上次检查到主分支时发生的合并的最佳方法,那将是一个巨大的帮助!

2 个答案:

答案 0 :(得分:3)

index.php已修改。在切换到分支主服务器之前,在分支myChanges中提交它。这样,更改将保留在myChanges分支中。

答案 1 :(得分:1)

如果您知道日志中最后一个好的提交代码是什么(使用git log查找), 你可以git reset --hard(在这里插入代码)恢复原状。

我建议您阅读此页面:http://git-scm.com/docs/git-reset 如果你需要更多的git知识,还有整本书。

就你的文件合并而言,提交或存储它们,然后当你签出另一个分支时它不会覆盖