好了,所以git diff --name-status branch1..branch2
给了我这样的:复制文件更改或添加到一个新的孤儿分支(GIT)
M .gitignore
M README.md
A README_orig.md
M deps/npm/lib/cache/add-remote-git.js
M deps/npm/lib/fetch-package-metadata.js
M deps/npm/lib/utils/git.js
A git_wrapper.bat
我就从喜欢副本那些文件(没有补丁的git diff
生产) branch2
成为一个全新的孤儿(空)分支并在那里落实。
是否有实现与混帐的一些succint方式,或者它git checkout branch2 -- path1
,...path2
,等的时间?
UPDATE
OK,我知道我应该解释的上下文。
这是一个相当不寻常的情况。我正在为该公司打包一些精心制作的公司软件(即node.js,Visual Studio Code)。这需要在每个新版本传入时重现相同的效果。
现在,例如Visual Studio代码编译的工作原理是,它不会提供编译应用程序所需的全部源代码。它在编译过程中下载吨和吨的东西(克隆几十甚至几百个Github仓库),重新生成一些东西等,而我们需要将我们的定制和修复应用到下载的东西上;某些节点模块的维护人员没有反应,重新修复这些东西,甚至应用我制定并已尽职报告的修复程序,但我们仍然需要应用这些修补程序,并且出于显而易见的原因,不希望创建那些会及时陈旧的模块的分支。
我显然不能仅仅使用通常的git diff
来应用我们在v1.12.2acme
和v1.14.0asshippedbymicrosoft
之间的特定修复和定制,因为很多不相关的文件都会改变。现在,我想我可以只存储在产品的过去一定/定制分支或标签的变化:
git diff commit_acme_fixed..commit_v1.14.0 -- file1.js
git diff commit_acme_fixed..commit_v1.14.0 -- file2.js
但是...我真的不希望这样做。我的想法是拥有不相关的(孤儿)acme_customisations
分支,其中存储所有带有其版本的文件仅用于修补后续传入的新版本。然后,我可以在该分支中创建一个提交或标记,它只会简洁地封装我在传入的v1.14.0asshippedbymicrosoft
版本中重播的更改,因为我们的定制迟早会因基本产品的更改而必须修改。
对于其他人来说,更容易找出哪些文件是由我们在基本产品版本之间变化的过多文件之间进行更改(我想您可以通过提交者找到该文件,但那是在你必须做的这个级别,以及你会错过某人作为提交者并且失去一些视线变化的风险,同时使用2个分支/标签/提交更自然并且得到git
的良好支持)。
什么是你在这个新的孤儿分支做规划:确实,对于一次性取得这样,你可以添加远程分发? – jthill
@jthill请参阅更新 – LetMeSOThat4U