我在Git中弄乱了某些东西,现在我们devserver
分支上的内容是错误的。我的cptools
分支中的内容是正确的。但是当我这样做时:
git checkout devserver
git merge cptools
它没有注册这两个文件是不同的。显然我将它们交给了devserver
而没有任何意义。有没有办法从devserver
取消它们,所以我可以将它们合并回去?我需要Git从cptools
获取整页。我该怎么做?
答案 0 :(得分:0)
看看
git branch -v
”查看分支列表,git checkout branch_name
”切换到分支。查看 git log branch_name_here
:
$ git log
commit 65471553a1f67650e1e3511463ffc881ce9724b8
Author: The Wookie <thewookied@SO.com>
Date: Sun Feb 10 23:12:21 2013 -0500
Test commit 3
commit d0fc7ffb0bc3276c6bbc20b2c8ad1e1a4e46ff3b
Author: The Wookie <thewookied@SO.com>
Date: Sun Feb 10 21:59:56 2013 +1030
Test commit 2
commit b720fdc15f2b47e8e169a5ea9372de4814ae0724
Author: The Wookie <thewookied@SO.com>
Date: Sun Feb 10 21:59:07 2013 +1030
Test commit 1
要查看提交的确切内容, git diff ref1 ref2
:
$ git diff d0fc7ffb0bc3276c6bbc20b2c8ad1e1a4e46ff3b 65471553a1f67650e1e3511463ffc881ce9724b8
diff --git a/file.py b/file.py
index 14017fc..31e30f0 100644
--- a/file.py
+++ b/file.py
@@ -42,23 +42,29 @@ class Foo(object):
self.cursor = self.connection.cursor()
if (not self.db_exists):
# create the db
- self.cursor.execute('''DROP TABLE foo''')
- self.connection.commit()
...
执行 git reset --hard old_ref
以从日志中删除提交并重置其执行的文件更改。
即。 git reset --hard d0fc7ffb0bc3276c6bbc20b2c8ad1e1a4e46ff3b
会撤消最新的更改并将其从提交日志中删除,只保留提交1和2.