在Rstudio中撤消git提交太大而无法推送

时间:2016-10-18 18:41:46

标签: r git github git-commit git-rewrite-history

我对github很新,并且我第一次尝试将它融入我的工作中。我在RStudo工作,使用gui中的提交和按钮。我把一些数据放在我正在处理的计算机上的文件夹中。我做了一些提交,然后我提交了这些数据,然后我再做了一些提交。然后我试着将整个事情推向github。但是,我收到一条错误消息:

remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.        
remote: error: Trace: f4a84c3a176d2c77039d041a21c0c455        
remote: error: See http://git.io/iEPt8g for more information.        
remote: error: File S_Fulltaxonomy.csv is 158.06 MB; this exceeds GitHub's file size limit of 100.00 MB        
To git@github.com:moanam/paper.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@github.com:moanam/paper.git'

我的分支现在超过origin / master 10次提交,问题在中间某处提交。

我已经找到了解决方案,并找到了像这样的帖子 undo commit in middle of Git historyHow to modify existing, unpushed commits?How to remove a too large file in a commit when my branch is ahead of master by 5 commits

然而,对此的解决方案是一行代码,其中原始提问者应该用几个单词替换并在某处运行它。我真的很新,并且不知道在哪里运行所有这些代码,替换什么以及如何在我的工作中查找和更改问题提交。我该怎么做呢?或者是否有基于gui的版本撤消RStudio中的提交?或者有人可以解释一下如何使用代码吗?

我知道这可能是一个非常简单的问题,我很抱歉浪费你的时间。但是,我已经花了很长时间才看,并且找不到任何简单易用的东西!总是有太多的知识假设。谢谢你的帮助!

3 个答案:

答案 0 :(得分:5)

我解决了这个问题。所以,对于其他任何人:

您可以从Git选项卡打开RStudio的命令行,然后转到More,然后转到Shell。

将所有文件备份到其他位置

输入git reset --hard origin/master 这将撤消所有提交并返回到您上次推送时的内容

将文件复制回工作目录(替换旧版本)并重新提交自此以后所做的所有更改。 确保不要复制rhistory文件,否则它将重做以前的所有提交。

答案 1 :(得分:1)

所以我想你在这里问了几个问题:

  1. 具有大文件大小的提交:您需要在.gitignore文件中排除这些文件,以便它们保留在您的本地文件夹中,但不会被推送到您的github存储库中。更多相关内容:https://git-scm.com/docs/gitignore
  2. 恢复git提交:你可以使用你发布的命令,但你是对的,你可能应该知道你在做什么。所以投入一点时间并阅读git的基础知识。
  3. 寻找GUI:您可以使用GitGUI,有适用于Mac和Windows https://desktop.github.com/的版本。但是,既然你必须要了解git的基础知识,那么GUI并不能让它变得更容易。坚持下去,你马上就能理解这种东西。

答案 2 :(得分:1)

有一种更简单的方法。

我不确定如何通过Rstudio进行操作,但是您可以改为执行此操作。

转到命令行->导航到项目目录

一次输入:

git reset HEAD〜

如果要撤消两次提交,请键入两次。

这将撤消上一次提交,但不会删除任何文件。因此,文件将全部重新出现在暂存菜单中。之后,重新提交而不使用大文件,然后再次推送,一切应该没问题。