有没有办法恢复或撤消git的拉动,使我的源/回购将来到老态,这是做的git拉过吗? 我想这样做,因为它合并,我不想这样做了一些文件,但只合并其他剩余的文件。所以,我想这些文件回来,这可能吗? 感谢:)

编辑我想撤消git的合并澄清。 看到一些答案后,我这样做

git reflog
bb3139b... HEAD@{0}: pull : Fast forward
01b34fa... HEAD@{1}: clone: from ...name...

现在,我该怎么办?这样做git reset --hard是OK?我不想再拧它,所以要求的详细步骤?

有帮助吗?

解决方案

git pull会做两件事情:它确实git fetch,然后在那里合并已建立分支机构在你的配置要合并一个git merge

所以,你想要做的是撤消合并(撤消取不使一个很大的意义,不应该是必要的)。

要做到这一点,你可以尝试使用git reset --hard重置到以前的状态。使用混帐引用日志命令查找SHA-1之前的状态,然后复位到它。

警告git reset --hard删除所有提交的更改。

其他提示

同JKP的答案,但这里是完整的命令:

git reset --hard a0d3fe6

其中a0d3fe6通过进行结果

git reflog

和看在你想撤销的地步。

要撤消合并的更现代的方式是:

git merge --abort

和年龄稍大的方式:

git reset --merge

在前面的答案中描述老派的方式(警告:将放弃所有的本地修改):

git reset --hard

但实际上,它是值得注意的是git merge --abort只相当于鉴于git reset --merge存在于MERGE_HEAD。这可以在用于合并命令git的帮助下被读出。

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

一个失败的合并后,当没有MERGE_HEAD,失败的合并可以用git reset --merge被撤消,但不一定git merge --abort所以他们不仅是新老语法同样的事情。这就是为什么我觉得git reset --merge要多在日常工作更加有用。

它的工作原理 第一次使用:git reflog

找到你的SHA您previus状态和使(HEAD @ {1}是一个例子)

git reset --hard HEAD@{1}

如果您已经gitk(尝试“从您的git命令行gitk --all”运行),这很简单。只要运行它,选择提交要回滚到(右键单击),然后选择“重置主分支在这里”。如果您有没有未提交的更改,选择的是“硬”的选项。

假设$COMMIT为您进行git pull前的最后一个提交ID。 什么,你需要撤消上次的拉力

git reset --hard $COMMIT

加成:

在上拉的讲,我想共享一个有趣的特技,

git pull --rebase

此上述命令是在我的GIT中生活的最有用的命令,它保存了大量的时间。

推你的新承诺服务器之前,试试这个命令,它会自动同步最新的服务器改变(与取+合并),并把你的承诺在git的日志上。无需担心手动拉/合并。

查找在细节: http://gitolite.com/git-pull--rebase

您可以做git reset --hard ORIG_HEAD

因为“拉”或“合并”设置ORIG_HEAD执行这些操作之前要在当前状态。

这是恢复你拉变化的最简单的方法。

git reset --hard 9573e3e0

其中9573e3e0是您的{提交ID}

如果有一个失败的合并,这对于想撤消git pull的最常见原因,运行git reset --merge确实人们所期望的正是:守取文件,但撤消git pull试图合并的合并。然后,一个可以决定如何不说git merge有时产生杂波做。而且它并不需要一个发现这--hard在所有其他的答案中提到的确切提交ID需要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top