这让我疯狂。我已经阅读了几个教程,甚至在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会,并且不会在结账时合并文件,我将非常感激。这样我就可以放心地在分支之间切换。
如果有人能告诉我解除上次检查到主分支时发生的合并的最佳方法,那将是一个巨大的帮助!
答案 0 :(得分:3)
index.php已修改。在切换到分支主服务器之前,在分支myChanges中提交它。这样,更改将保留在myChanges分支中。
答案 1 :(得分:1)
如果您知道日志中最后一个好的提交代码是什么(使用git log查找),
你可以git reset --hard
(在这里插入代码)恢复原状。
我建议您阅读此页面:http://git-scm.com/docs/git-reset 如果你需要更多的git知识,还有整本书。
就你的文件合并而言,提交或存储它们,然后当你签出另一个分支时它不会覆盖