如何从git master分支暂时删除一些更改?

时间:2013-03-04 14:02:59

标签: git

因此,对于我的第一个webapp,我尝试一次开发所有或许多组件,并成功实现了我认为不可能的事情。但是,在部署过程中,我需要一点一点地开始发布这些内容,因此我承诺掌握的很多代码直到以后都不应该真正存在。我现在需要删除它,稍后再添加它。

我如何修剪我的代码库,使它只拥有我现在需要的代码,并将所有提交的代码保留在某个地方我回去并稍后使用git merge添加它? (而不是让git合并删除我从master中删除的那些东西)

我可能需要多次这样做。

(可能不应该这样做,但当你学会在没有指导的情况下自己开发时就会发生这种情况。)

2 个答案:

答案 0 :(得分:2)

您可以通过

结帐提交
git checkout hash

其中hash是git log显示的哈希字符串。完成后,使用

git checkout master

通常,您应该有一个稳定的分支,在其中合并要发布的功能。

答案 1 :(得分:1)

选项1:手动选择版本

(根据汉纳斯的回答)。这样做的缺点是之后没有git中的记录,其中的提交被释放了


选项2:标签版本

标记版本无论如何都是很好的做法!

选项1 相同,但您使用git tag -am'first release' v1.0(或其他)标记了签出的提交。这样,您就可以记录已发布的提交。


选项3:假冒释放历史

您可以从第一次提交创建release分支,然后使用git merge --no-ff将每个祝福提交(根据选项1和2)合并到发布分支上。我仍然会标记它们,但这提供了类似虚假开发历史的东西。如果没有其他人克隆了你的回购,你可以在最后重置master到你的完整release分支,如果你想要结构而不是单独的分支。