搞砸了我的git存储库,无法弄清楚如何正确同步



我在(错误地(尝试提交/推送到 github 后.gitignore中添加了一个文件。它失败了,因为它太大了。我按sudo git reset --hard a6563c9重置(搞砸前的最后一个条目,从git log --oneline返回(。

这一切都很好,但现在它说我的branch is up to date with 'origin/master',这不是真的(我已经更改了几个其他文件(。

我不确定如何让它重新扫描存储库中的所有文件(.gitignore 中的文件除外(以进行更改,以便我可以提交/推送所有更改。

我试过:

git rm --cached -r .
git reset .

以及git update-index --really-refreshgit update-index --no-skip-worktree(最后一个返回Ignoring path

我尝试过的任何东西都不会改变尝试git push时的branch is up to date with 'origin/master'.

PS:我后来发现我应该可以使用

git reset --soft HEAD^
git reset filename

然后添加到 .gitignore...但是现在有点晚了...

您正在获得消息分支是最新的"origin/master",因为您的本地分支和远程分支指向相同的提交。您的git 重置 --hard a6563c9做到了。

您可以通过发出另一个 git 重置命令将本地主服务器恢复到其原始提交。 您需要原始提交的提交 ID。 这可以使用 git reflog 找到。之后,您可以修改错误的提交。

git checkout master
git reflog  #find id of your original erroneous commit
git reset --hard <id of original commit>
git reset --soft HEAD^
git reset <large file added by mistake>
git add .gitignore 
git commit
git push

我建议始终仔细检查您提交的文件列表。

相关内容

最新更新