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
Github Git-从历史记录中删除提交,但不保存代码_Github_Commit - Fatal编程技术网

Github Git-从历史记录中删除提交,但不保存代码

Github Git-从历史记录中删除提交,但不保存代码,github,commit,Github,Commit,我在VS2019上使用git 我想知道是否有一种方法可以删除旧的提交,但始终保留最新的代码。原因是,当我处理一个大的更改时,我会在检查每一个小步骤后进行大量提交,但最后,当我单击查看历史记录并需要搜索一个旧的提交以比较更改时,这很烦人。我想删除特定的提交,但保留更改。这样,我将在历史上只看到发展进程的主要里程碑。有一种方法可以做到这一点???您似乎想要git的rebase功能 如果知道要压缩多少个提交,可以使用 git rebase -i HEAD~N 您也可以在交互模式下执行此操作: git

我在VS2019上使用git


我想知道是否有一种方法可以删除旧的提交,但始终保留最新的代码。原因是,当我处理一个大的更改时,我会在检查每一个小步骤后进行大量提交,但最后,当我单击查看历史记录并需要搜索一个旧的提交以比较更改时,这很烦人。我想删除特定的提交,但保留更改。这样,我将在历史上只看到发展进程的主要里程碑。有一种方法可以做到这一点???

您似乎想要git的rebase功能

如果知道要压缩多少个提交,可以使用

git rebase -i HEAD~N
您也可以在交互模式下执行此操作:

git rebase --interactive HEAD~N
请注意,如果您已经推送,则下一次推送可能会遇到问题


有关更多详细信息,请参阅:

您似乎想要git rebase功能

如果知道要压缩多少个提交,可以使用

git rebase -i HEAD~N
您也可以在交互模式下执行此操作:

git rebase --interactive HEAD~N
请注意,如果您已经推送,则下一次推送可能会遇到问题


有关更多详细信息,请参阅:

您可以遵循类似于“”的工作流

对于相同步骤的增量改进提交,请使用
git commit--fixup small step
,它允许您“在检查每个小步之后执行大量提交”

(您可以在中看到它)

但最后,您可以使用
git-rebase--interactive--autosquash
清理所有这些小步骤(假设您还没有推动这些提交)


这样,您的历史记录就更清晰了。

您可以遵循类似于“”的工作流

对于相同步骤的增量改进提交,请使用
git commit--fixup small step
,它允许您“在检查每个小步之后执行大量提交”

(您可以在中看到它)

但最后,您可以使用
git-rebase--interactive--autosquash
清理所有这些小步骤(假设您还没有推动这些提交)


这样,您将拥有一个更清晰的历史记录。

在这些场景中,您似乎在开发一个新功能,在这种情况下,您应该使用分支+拉请求的方法进行开发。在pull请求期间,可以执行挤压合并。它不全在命令行中,但这可能是最好的


如果您已经在一个功能分支中工作,那么我喜欢的方法。

在这些场景中,您似乎正在开发一个新功能,在这种情况下,您应该使用分支+拉请求的方法进行开发。在pull请求期间,可以执行挤压合并。它不全在命令行中,但这可能是最好的


如果您已经在一个功能分支中工作,那么我喜欢的方法。

我如何在visual studio中完成它?不幸的是,我没有VS方面的经验。我能做的最好是向您指出Microsoft的文档:我如何在visual studio中完成它?不幸的是,我没有VS方面的经验。我所能做的就是向您指出Microsoft提供的文档:和