使用git merge时失去更改

时间:2013-01-11 22:27:14

标签: git version-control git-merge

我对git有些陌生,当我git merge时,我遇到了一些意想不到的结果。看来我正在合并的分支正在发生变化,这不是我对它应该如何工作的理解。

这是一个例子。我有两个分支:主分支和新分支。新分支通过多次提交领先于大师。也许我切换回主人快速修复。然后我切换回新分支,我希望应用来自master的相同修复。所以(在新分支时)我做:

git merge master

现在,主人应该改变了吗?我期待只有来自master的更改才能应用到new-branch,但这似乎并没有发生。我不断失去工作,不得不重做它,我无法弄清楚为什么。有什么建议吗?

这是一些git log

ESL-MAC:sow3.dev $ git log
commit d30a517211c8663ab5cd28664d1b7ea59c82b248
Author: el
Date:   Fri Jan 11 17:18:44 2013 -0500

    fixed wsat page again

commit 31557a867585ac81b6fda33971d9ba16f1efafb9
Merge: 35af780 5ea9b23
Author: el
Date:   Fri Jan 11 17:10:22 2013 -0500

    replaced meta for get_wsat() in WSAT

commit 5ea9b233fb3d01c0dc9dfb5b0e48c80e8fb0eb58
Author: el
Date:   Fri Jan 11 16:50:06 2013 -0500

    removed admin bar AGAIN

commit 177d9ab8973c0e9f85a21ffad4ef6065cf6e9675
Author: el
Date:   Fri Jan 11 16:47:07 2013 -0500

:

1 个答案:

答案 0 :(得分:0)

这是肯定的。如果你在git中:

git checkout new-branch

......然后......

git merge master

...... master上的任何内容都不应改变。我想您已经知道,您要求git将master中的所有新提交合并到new-branch。如果你得到的结果不同,那就严重错了。很难知道什么,虽然你说你是git的新手我最好的猜测是你实际上并没有像你想象的那样对主人做出承诺。

最简单的提交过程是:

做一些工作......

git add path-to-file(s)
git status (not strictly necessary, but will confirm that you actually added what you think you added)
git commit -m "This commits the file(s) I just added"

正如爱德华所说,看到一个git日志可能会有所启示。

HTH!