我有2个回购 - repoMain
和repoSub
我正在处理repoSub ..
几个月前,repoSub被创建为repoMain的分支,几个月之后,因为repoMain已经更新了一些新东西,现在我想确保repoSub有一些共同点/ core文件与repoMain处于“相同级别”。
请允许我举一个简单的例子(希望可以理解......), 例如。每个仓库中有5个项目,但它们的文件内容可能彼此不同。
由于我一直在研究repoSub,我本来想用repoMain更新具有相同文件名(但文件内容不同)的2个文件,最好的方法是什么,以便我可以最小化任何冲突/ repoMain等没有覆盖repoSub中的任何文件?
我尝试了以下方法:
我遇到了一堆冲突错误等。
答案 0 :(得分:0)
使用结帐表单git checkout [-p|--patch] [<tree-ish>] [--] <pathspec>…
结帐文件而不是分支。
git checkout --patch repoMain/master -- myFile.java
当&lt; paths&gt;或者--patch给出,git checkout不切换分支。它从索引文件或命名的&lt; tree-ish&gt;更新工作树中的命名路径。 (通常是提交)。在这种情况下,-b和--track选项毫无意义,并且给出其中任何一个都会导致错误。 &lt; tree-ish&gt;参数可用于指定特定的树(即提交,标记或树),以在更新工作树之前更新给定路径的索引。
git checkout with&lt; paths&gt;或--patch用于从索引恢复其原始内容的修改或删除路径,或用名为&lt; tree-ish&gt;的内容替换路径。 (通常是一个提交者)。
<强> -p 强>
<强> - 补丁强>
以&lt; tree-ish&gt;之间的差异交互式选择帅哥。 (或索引,如果未指定)和工作树。然后将所选择的帅哥反向应用于工作树(如果指定了&lt; tree-ish&gt;,则为索引)。
这意味着您可以使用git checkout -p有选择地放弃当前工作树中的编辑。