我做了类似this question的事情,我有一个 Boilerplate Github存储库,我将用它来启动新项目。不同之处在于,我有时希望将其中一个克隆项目的功能添加回样板文件,并将更改从样板文件推送到项目中。
由于它们都是我自己的存储库,I'm using this technique来克隆存储库而不是分叉并在上游添加一个上游模板,因此我可以从那里提取更改。
$ git clone git@github.com:YOURNAME/foo.git bar
$ cd bar
$ vim .git/config
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:YOURNAME/bar.git #replace foo with bar
$ git remote add upstream git@github.com:YOURNAME/foo.git
$ git push -u origin master
因为项目将占用自己的生命,所以我只想在样板中添加新功能时将部分样板下拉到项目中。这是我应该使用git cherry-pick
作为described here吗?
走另一条路。我猜我应该在项目中创建一个功能分支。一旦我对它感到高兴,在我重新合并之前,我应该从项目分支git cherry-pick
回到样板文件中吗?或者我应该从项目执行拉取请求到样板?
答案 0 :(得分:0)
如果您只想将提交应用于不相关的分支(意味着永远不会合并在一起的分支),那么挑选(包括multiple commits in one command)是在repos中复制所述提交的正确方法。
这就是挑选 duplicates a commit 它仅适用于那些提交不依赖于先前提交内容的情况,即如果它们没有基于先前提交的functional dependencies(分支tou的选择是从中提取)。