有没有办法恢复或撤销git拉,使我的源/回购将回到做git拉之前的旧状态? 我想这样做是因为它合并了一些我不想这样做的文件,但只合并了其他剩余的文件。我想拿回那些文件,可以吗?

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

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

现在,我该怎么办?做git重置——难吗?我不想再搞砸了,所以问详细步骤?


当前回答

你可以做git重置——hard ORIG_HEAD

因为“pull”或“merge”在执行这些操作之前将ORIG_HEAD设置为当前状态。

其他回答

Git拉做以下操作。

i. 去取 二、Git 合并

要撤销拉做任何操作:

I. git重置-硬-它恢复所有本地更改也 或 2Git重置—硬master@{5.days. exe。Ago}(比如10.minutes.ago, 1.小时。前,1.天。)来进行局部更改。 或 3Git重置——硬提交

改进:

下次使用git pull -rebase而不是git pull..它的同步服务器更改(获取&合并)。

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

找到你之前状态的SHA并make(以HEAD@{1}为例)

git reset --hard HEAD@{1}

这样做取消你的合并操作:git merge——abort。

查看您执行git pull命令的当前分支中的日志

git log

示例输出如下所示

commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxa3dd0
Author: user <user@gmail.com>
Date:   Tue Nov 23 20:19:58 2021 +0530

    latest changes

commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxd697b
Author: user <user@gmail.com>
Date:   Tue Nov 23 17:45:44 2021 +0530

    latest changes includes account details api

commit xxxxxxxxxxxxxxxxxxxxxxxxxxxxxc0e6fa
Author: user <user@gmail.com>
Date:   Tue Nov 23 17:02:39 2021 +0530

    latest changes

复制您想要的最后一个提交id。例如,如果你的最后一个提交id是xxxxxxxxxxxxxxxxxxxxxxxxxc0e6fa(假设这个提交id是你执行git pull之前的最后一个提交id),并且在这个提交id以上的两次提交是在你的git pull命令之后进行的,那么使用这个提交id来获得之前的更改

git reset --hard xxxxxxxxxxxxxxxxxxxxxxxxxxxxxc0e6fa

这样做将删除该提交id之上的提交。在此之后,您将获得之前的更改,就像这样简单。

假设$COMMIT是执行git pull之前的最后一个提交id。 你要做的就是解除最后一拉

git重置-硬$COMMIT

.

奖金:

说到拉力,我想分享一个有趣的技巧,

快拉,变基

上面这个命令是我git生涯中最有用的命令,它节省了很多时间。

在将你的新提交推到服务器之前,尝试这个命令,它会自动同步最新的服务器更改(使用fetch + merge),并将你的提交放在git日志的顶部。不需要担心手动拉/合并。

详情见:http://gitolite.com/git-pull--rebase