回滚到远程源/主站,但列出所有先更改过的文件

时间:2011-05-31 16:21:01

标签: git

我的本​​地存储库是远程源主服务器之前的5次提交。

我有大量文件,我误将其放入git中,而且我认为将这些文件弄得一团糟。

那么,如何重置为远程原点主控?

此外,在这之前,我想获得一个列表,列出与我的本地仓库不同的远程主机的所有文件(因此我知道在我回滚到远程主机后要编辑哪些文件)

4 个答案:

答案 0 :(得分:1)

您可以通过执行

来获取不需要的提交
git rebase -i origin/master

现在标记添加带有“e”的大文件进行编辑的提交。保存并退出。现在,系统将提示您转到该提交,取消暂存大文件,然后

git rebase --continue

你现在应该有一个干净的历史记录,你应该能够推动。

希望这有帮助。

答案 1 :(得分:1)

您可以将HEAD重置为指向源/主现在指向的内容,并将文件取消分段。现在,您可以按照自己想要的方式重做提交。要么通过使用多个git add,git commit等进行单独的提交,请创建一个压缩的提交,而不使用之前添加的大内容:

$ git reset --mixed origin/master
$ rm -rf folder/with/large/files/
$ git add .
$ git commit -m "Squashed commits and removed unwanted large files"

答案 2 :(得分:0)

这不完全是你提出的要求,但这似乎是解决问题的好方法:

我会检查提交的提交,其中提交的大文件修改它,并修改提交的rebase master。

答案 3 :(得分:0)

git diff --stat master..origin/master会为您提供已更改的文件,git reset --hard origin/master会将您回滚。如果您以前从未玩过重置,并且您可能想要在master中进行某些更改,最简单的方法是在当前主提交git tag temp上设置临时标记,这样您就可以轻松找到它重置后。稍后你可以删除它。

如果您只想删除意外添加的文件,请使用rebase作为@adymitruk说。