如何临时删除git主分支中的一些更改?
所以,在我的第一个webapp中,我试图一次开发所有或许多组件,并成功地实现了我认为不可能实现的事情。然而,在部署过程中,我需要开始一点一点地发布这些代码,因此我向master提交的许多代码在以后才应该真正存在。我现在需要删除它,以后再添加回来 我如何修剪我的代码库,使其只包含我现在需要的代码,并将所有提交的代码保留在某个地方,然后通过git合并将其添加进去?(而不是让git合并删除我从master中删除的内容) 我可能需要多次这样做如何临时删除git主分支中的一些更改?,git,Git,所以,在我的第一个webapp中,我试图一次开发所有或许多组件,并成功地实现了我认为不可能实现的事情。然而,在部署过程中,我需要开始一点一点地发布这些代码,因此我向master提交的许多代码在以后才应该真正存在。我现在需要删除它,以后再添加回来 我如何修剪我的代码库,使其只包含我现在需要的代码,并将所有提交的代码保留在某个地方,然后通过git合并将其添加进去?(而不是让git合并删除我从master中删除的内容) 我可能需要多次这样做 (可能不应该这样做,但当你在没有指导的情况下学会自己开发时,
(可能不应该这样做,但当你在没有指导的情况下学会自己开发时,就会发生糟糕的事情。)你可以通过这样做来检查提交
git checkout hash
其中hash是git log显示的哈希字符串。完成后,使用
git checkout master
一般来说,您应该有一个稳定的分支,将发布的功能合并到其中。您可以通过执行以下操作签出提交
git checkout hash
其中hash是git log显示的哈希字符串。完成后,使用
git checkout master
一般来说,您应该有一个稳定的分支,将发布的功能合并到其中。选项1:手动选择版本
(根据汉内斯的回答)。这样做的缺点是以后git中没有记录,其中的提交已经发布
选项2:标签版本 无论如何,标记发布是一个很好的实践 与选项1相同,但您可以使用git标记-am'first release'v1.0(或其他任何内容)标记签出的提交。这样,您就有了释放提交的记录
选项3:假发布历史 您可以从第一次提交创建一个
release
分支,然后使用git merge--no ff
将每个受祝福的提交(按照选项1和2)合并到发布分支上。我仍然会给它们贴上标签,但这提供了一些类似于伪造开发历史的东西。如果没有其他人克隆了您的回购协议,您可以在最后将master
重置为完整的release
分支,前提是您需要结构而不是单独的分支。选项1:手动选择版本
(根据汉内斯的回答)。这样做的缺点是以后git中没有记录,其中的提交已经发布
选项2:标签版本 无论如何,标记发布是一个很好的实践 与选项1相同,但您可以使用git标记-am'first release'v1.0(或其他任何内容)标记签出的提交。这样,您就有了释放提交的记录
选项3:假发布历史
您可以从第一次提交创建一个
release
分支,然后使用git merge--no ff
将每个受祝福的提交(按照选项1和2)合并到发布分支上。我仍然会给它们贴上标签,但这提供了一些类似于伪造开发历史的东西。如果没有其他人克隆了您的回购协议,您可以在最后将master
重置为完整的release
分支,如果您想要结构而不是单独的分支。您需要删除的是某个提交,还是需要的和不需要的代码混合在同一个提交中?您需要查看手册页,也许还可以在网站上进一步了解使用Git时的最佳实践。如果您决定采用后一种方法,有一个Git扩展名为“为您提供帮助您实现它的命令”。@ellak-不幸的是,它们混合在同一个提交中-是的,我这样做了…:(关于如何将一个提交分解为多个提交,请查看此答案。您是否需要删除某个提交,或者需要的代码和不需要的代码混合在同一个提交中?您可能需要查看手册页,也许还需要了解更多关于使用Git时的最佳实践的信息。如果您决定采用后一种方法,则Git扩展名为“为您提供帮助您实现它的命令”。@ellak-不幸的是,它们混合在同一个提交中-是的,我这样做了…:(检查这个答案,了解如何将一个提交分解为多个提交。)