0

昨天我做了一些删除和删除太多(你知道典型案例)。在阅读有关 smartgit 的博客后,我将其重置为在所有删除之前我离开的修订版。我找回了我的旧文件,但 git 没有检测到它们在那里,所以我无法再次将它们推送到我的服务器。有任何想法吗?我尝试查看 gitignore 文件和 info 文件夹中的排除项,但没有任何内容 - 编辑 - 我已经尝试过强制推送。

我使用的步骤是

- Going to logs
- Select the revision
- Press ctr+R (reset)
- Selected hard reset and confirmed
4

2 回答 2

0

假设您有提交: A->B->C->D D 提交是您删除太多的提交。所以你再次检查了C。当然,git 会检测文件,但由于您正在查看的 C 之后没有更改,因此 git status 不会显示任何内容。

由于您试图重写远程的历史记录,因此推送将失败,您需要执行 git push -f (即 -f 用于 --force 参见https://www.kernel.org/pub/software/scm/ git/docs/git-push.html )

于 2013-08-15T19:04:07.647 回答
0

我需要强制将所有文件拉回我的服务器,我为此找到了一个 stackoverflow 帖子:

如何强制 git pull 在每次拉动时覆盖所有内容?

我所做的是:

git fetch origin master
git reset --hard FETCH_HEAD
git clean -df

添加了代码以供将来参考

于 2013-08-15T20:14:06.967 回答