0

我在某个时候在 Git 中搞砸了一些东西,现在我们devserver分支上的东西是错误的。我的cptools分支中的内容是正确的。但是当我这样做时:

git checkout devserver
git merge cptools

它没有记录这两个文件是不同的。devserver显然,我毫无意义地承诺了他们。有什么方法可以取消提交它们,devserver以便我可以将它们合并回来?我需要 Git 从cptools. 我怎么做?

4

1 回答 1

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。

不要忘记

  1. 保留备份。
  2. 在你确信一切都是正确的之前不要推动。
于 2013-02-12T23:00:39.567 回答