【发布时间】:2020-09-10 12:38:04
【问题描述】:
我不确定我是否正确使用了 Git,所以我想知道您对我的方式的看法以及如何使它变得更好。
如果我想包含新功能,我正在编写一个网站。但是对于这些功能,我不需要网站的完整其余部分。所以我要做的是:
- 在“master”分支上,我创建了一个名为“justBasics”的分支,我删除了所有不必要的内容(几乎是所有内容)。
- 在“justBasics”分支上,我创建了我的功能分支“feature1”。例如,在“feature1”中,我可以创建一个新文件,在其中写入我的功能。
- 现在我想将 feature1 包含在 master 中。 坏事是分支“feature1”还包括我只需要尝试我的功能并且不属于主人所以不能将它合并到主人的东西(或者我可以使用合并吗?我不知道怎么做。 )。例如一些用于测试功能的代码,或者特别是我为创建“justBasics”而删除的内容。
- 要包含该功能,我返回“master”并创建分支“includeFeature1”。在“includeFeature1”中,我只通过cherry-pick获得了该功能的重要提交。
- 现在我可以将“includeFeature1”合并到 master
这就是我的存储库最后的样子:
* c9 (master) merging branch "includeFeature1"
|\
* | c8 some work on master to make this look better
| * c7 (includeFeature1)cherry picking commit c3 and c5
|/
* c6 some work on master to make this look better
| * c5 (feature1) finished feature1
| * c4 some code that is necessary to test feature1. I don´t want this code at the end in my website.
| * c3 started feature1. add a file to work in
| * c2 (JustBasics) i deleted folders, features, preparing main.html to show nothing.
|/
* c1 website til this point. that includes other features
这种方式对我有用,但我在使用cherry-pick 时遇到了一些问题:不知何故,当我想结账其他一些分支时,一些老帅哥又出现了。特别是当我在master上并且我尝试签出“JustBasics”时,来自c2的Hunks被我删除了所有文件夹和功能重新出现并且我无法切换分支。所以我必须先删除它们才能继续。
如果您的其余代码会打扰您,您将如何处理完整的新功能?
你觉得我的方式怎么样?
【问题讨论】:
-
您不需要网站的其余部分,但它会变得杂乱无章。为什么不把网站的其他部分留在里面?
-
编辑网站时,我不希望我的新功能与旧代码交互,反之亦然。它的加载速度也更快,我不必单击任何地方来查看我的更改。我希望它尽可能干净和简单。
标签: git git-cherry-pick