Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 如何从本地提交中删除不是我最后一次提交的文件_Git_Github - Fatal编程技术网

Git 如何从本地提交中删除不是我最后一次提交的文件

Git 如何从本地提交中删除不是我最后一次提交的文件,git,github,Git,Github,我错误地将一个zip文件添加到我的一个提交中,该提交不是最后一次提交。这是一个大文件,当我试图将这些更改推送到服务器时,我会被卡住,因为git试图将文件推送到远程分支上 如何删除此特定文件 A --> B --> C --> D --> E --> F 我的遥控器在A,我在提交C中错误地添加了文件,现在我在提交F 当我这样做的时候 git日志--仅名称 它显示了我手动删除的这个文件。您可以使用交互式的git-rebase-I,如下所述:。这样,您将创建4个新提交(

我错误地将一个zip文件添加到我的一个提交中,该提交不是最后一次提交。这是一个大文件,当我试图将这些更改推送到服务器时,我会被卡住,因为git试图将文件推送到远程分支上

如何删除此特定文件

A --> B --> C --> D --> E --> F
我的遥控器在A,我在提交C中错误地添加了文件,现在我在提交F

当我这样做的时候

git日志--仅名称


它显示了我手动删除的这个文件。

您可以使用交互式的
git-rebase-I
,如下所述:。这样,您将创建4个新提交(C',D',E',F'),原始提交将被删除。如果您没有将更改推送到本地git存储库之外的任何地方,那么这没关系,否则您就不必不惜一切代价去做

您可以使用交互式的
git-rebase-i
,如下所述:。这样,您将创建4个新提交(C',D',E',F'),原始提交将被删除。如果您没有将更改推送到本地git存储库之外的任何地方,那么这没关系,否则您就不必不惜一切代价去做

git-rebase-i HEAD~20//重新设置最后20次提交的基础

//将显示提交列表

//转到正确的提交并键入“编辑”,然后在键盘上单击“回车”


我假设您使用的是nano而不是vim

git-rebase-I HEAD~20//rebase最后20次提交

//将显示提交列表

//转到正确的提交并键入“编辑”,然后在键盘上单击“回车”



我假设您使用的是nano而不是vim

您能打印git状态的结果吗?它是否显示此文件已删除?以下是git status@prabodhprakashok的结果,还有一个问题-对于您正在进行的5次提交,你能显示删除文件的提交日志吗?你能检查一下文件是否没有添加回这些提交中吗?哦,现在有了你的场景…我想…我已经改进了你的问题,以便更好地理解,以便其他人也能提供帮助。如果你认为我的描述合适,请接受编辑。你能打印git status的结果吗?它是否显示此文件已删除?以下是git status@Prabodhprakashok的结果,还有一个问题-对于你正在进行的这5次提交,你能显示删除文件的提交日志吗?你能检查一下文件是否没有添加回这些提交中吗?哦,现在有了你的场景…我想…我已经改进了你的问题,以便更好地理解,以便其他人也能提供帮助。如果您认为我的描述很贴切,请接受编辑。我发现此错误
无法重新设置基础:您有未老化的更改。请提交或隐藏它们。
如错误消息所示-您在上次提交后进行了更改。交互式重定基址将随着您要重定基址的每次提交而更改您的工作目录,因此它需要一个“干净”目录。如果你不想提交你的实际更改,那么你可以使用
git stash
保存它们,并在使用
git stash apply
()完成重定基址后将它们取回。它说
无需保存的本地更改
哦,我忘了提到你必须首先使用
git add*
(与提交前一样,但这次将在提交后使用stash)。同一消息
无需保存的本地更改
我收到此错误
无法重新设置基础:您有未保存的更改。请提交或隐藏这些更改。
正如错误消息所述-您在上次提交后进行了更改。交互式重新设置基础将在每次提交时更改您的工作目录,因此它需要一个“干净”目录。i您不想提交实际更改,然后可以使用
git stash
保存更改,并在使用
git stash apply
()完成重定基址后将其取回。它说
无需保存本地更改
哦,我忘了提到您必须首先使用
git add*
(与提交前一样,但这次将在提交后使用stash)。相同的消息
无需保存的本地更改
我收到此错误
无法重新设置基础:您有未老化的更改。请提交或隐藏它们。
然后保存或提交它们。您通常可以通过执行git status来查看发生了什么。我收到此错误
无法重新设置基础:您有未老化的更改。请提交或隐藏它们然后以太隐藏或提交它们。您通常可以通过执行git status来查看发生了什么。