我在VS2019上使用git
我想知道是否有一种方法可以删除旧的提交,但始终保留最新的代码。原因是,当我进行较大的更改时,在检查完每个小步骤后我都会进行很多提交,但是最后,当我单击查看历史记录并需要搜索旧提交以比较更改时,这很烦人。我想删除特定的提交但保留更改。这样,我将在历史上仅看到发展进程的主要里程碑。有办法做到吗?
答案 0 :(得分:0)
似乎您想要git rebase功能。
如果您知道要压缩的提交数量,可以使用
git rebase -i HEAD~N
您也可以以交互方式进行操作:
git rebase --interactive HEAD~N
请注意,如果您合并已经推送的提交,则下一次推送可能会遇到麻烦。
有关更多详细信息,请参见:https://www.internalpointers.com/post/squash-commits-into-one-git
答案 1 :(得分:0)
您可以遵循与Git better with fixups 中的“ Atul Sharma”类似的工作流程
对于那些对于 same 步骤而言是增量改进的提交,请使用git commit --fixup small step
,它可以让您“在检查完每个小步骤之后进行很多提交”。
(您可以在Git Extension in Visual Studio中看到它)
但是最后,您可以使用git rebase --interactive --autosquash <First step commit>
清理所有这些小步骤(假设您尚未推送这些提交)
那样,您最终将获得更清晰的历史记录。
答案 2 :(得分:0)
听起来像在这些情况下,您正在开发一项新功能,在这种情况下,您应该使用分支+拉动请求方法进行开发。在请求请求期间,您可以进行壁球合并。并非全部在命令行中,但是无论如何这可能都是最好的。
如果您已经在功能分支中工作,那么我喜欢VonC的方法。