恢复到 Git 之前的提交(没有人为交互)
Reverting to previous commit on Git (with no human interaction)
我发现了一些关于如何使用 Git 还原的问题,但这些问题总是需要人工交互或需要您要还原到哪个版本。在这种情况下,没有人工交互,您也没有告诉机器必须恢复到哪个修订版。
给定一台远程自动化机器,它有一个克隆的 git 存储库,每次您在其界面上按下 "pull" 按钮时都会拉取,是否可以实现恢复到之前的提交?
我可以很容易地添加按钮,但我不确定如何实现该功能。我的意思是,我需要知道 git 是否有一个命令可以为您提供其分支的先前提交,然后是一个将本地回购状态更改为先前提交的命令。
这台机器不做任何提交,它只有克隆代码,它只做一些代码更新的拉取。现在有了这个新按钮,它将能够恢复到以前的版本。
这可能吗?
以下将把 master 分支恢复到上次更改 master 分支的命令之前的状态,无论它是什么,commit、merge、rebase、filter-branch、...
git reset --hard master@{1}
最后我用这个解决了它:
git reset --hard $SHA1
$SHA1 是你要获取的版本号。
稍后,当您想要再次更新回购的所有提交时,您只需要做:
git pull
我发现了一些关于如何使用 Git 还原的问题,但这些问题总是需要人工交互或需要您要还原到哪个版本。在这种情况下,没有人工交互,您也没有告诉机器必须恢复到哪个修订版。
给定一台远程自动化机器,它有一个克隆的 git 存储库,每次您在其界面上按下 "pull" 按钮时都会拉取,是否可以实现恢复到之前的提交?
我可以很容易地添加按钮,但我不确定如何实现该功能。我的意思是,我需要知道 git 是否有一个命令可以为您提供其分支的先前提交,然后是一个将本地回购状态更改为先前提交的命令。
这台机器不做任何提交,它只有克隆代码,它只做一些代码更新的拉取。现在有了这个新按钮,它将能够恢复到以前的版本。
这可能吗?
以下将把 master 分支恢复到上次更改 master 分支的命令之前的状态,无论它是什么,commit、merge、rebase、filter-branch、...
git reset --hard master@{1}
最后我用这个解决了它:
git reset --hard $SHA1
$SHA1 是你要获取的版本号。
稍后,当您想要再次更新回购的所有提交时,您只需要做:
git pull