Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.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 - Fatal编程技术网

如何临时删除git主分支中的一些更改?

如何临时删除git主分支中的一些更改?,git,Git,所以,在我的第一个webapp中,我试图一次开发所有或许多组件,并成功地实现了我认为不可能实现的事情。然而,在部署过程中,我需要开始一点一点地发布这些代码,因此我向master提交的许多代码在以后才应该真正存在。我现在需要删除它,以后再添加回来 我如何修剪我的代码库,使其只包含我现在需要的代码,并将所有提交的代码保留在某个地方,然后通过git合并将其添加进去?(而不是让git合并删除我从master中删除的内容) 我可能需要多次这样做 (可能不应该这样做,但当你在没有指导的情况下学会自己开发时,

所以,在我的第一个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-不幸的是,它们混合在同一个提交中-是的,我这样做了…:(检查这个答案,了解如何将一个提交分解为多个提交。)