Git重置为旧提交

时间:2018-03-27 12:40:13

标签: git

你好。

关于重置为旧提交,我遇到了一些问题。

我所做的步骤:

1。 grep我想要返回的提交ID

[USER@VM gitrepo]$ git log
commit c846a35cd30fa05a9a125d613b220245f1f7d96e
Author: Tobias  <tobias@xy.de>
Date:   Fri Mar 23 16:00:33 2018 +0100

    test 1 in ccc

commit d567daf9e82b2bb1fa8493757826a224c4f3b96f
Author: Tobias  <tobias.@xy.de>
Date:   Fri Mar 23 15:58:48 2018 +0100

    test 2 hilfe.txt

commit dbef962622cc6bc326bbcccb3e87332af7e9577a
Author: Tobias  <tobias.@xy.de>
Date:   Fri Mar 23 15:54:23 2018 +0100

    test 2 hilfe.txt

2.重置提交并放弃所有本地更改

[USER@VM gitrepo]$ git reset --hard dbef962622cc6bc326bbcccb3e87332af7e9577a
HEAD is now at dbef962 test 2 hilfe.txt

3。强制将提交推送到主服务器并丢弃主服务器上的所有更改

[USER@VM gitrepo]$ git push --force
Total 0 (delta 0), reused 0 (delta 0)
remote: From /home/git/gitrepo
remote:  + c846a35...dbef962 master     -> origin/master  (forced update)
remote: Already up-to-date.
To git@VM:/home/git/gitrepo/
 + c846a35...dbef962 master -> master (forced update)

直到现在一切都很好。

现在问题:

在我的主服务器上有一个名为“cleartext”的文件夹。我自动提交提交(从我的主人用钩子 - “更新后”)到这个文件夹,因为我在我的木偶服务器上使用它。

我的更新后的结果如下:

#!/bin/sh

### main ###
cd /home/git/cleartext/gitrepo
env -i git pull
env -i git clean -f -d

强制推送我的提交ID来自我的客户端和我的“cleartext”客户端是不同的。 (而且我不能对我的“明文”客户端进行git pull)

当我删除我的“cleartext”客户端上的文件夹并再次克隆git时,没有问题,并且ID是相同的。我不想每次都克隆它们。

我做错了什么?
您如何将本地/主git仓库重置为较旧的提交并放弃所有更改?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您的明文客户端现在拥有比远程客户端更新的提交。这很正常 要始终强制检查遥控器并丢弃您在本地拥有的内容,请同时重置 将env -i git pull更改为

git fetch
git reset --hard origin/master