我在我的仓库origin
和分支origRepo/master
中有一个分支主人(其中origRepo
是我origin
的上游,我在那里总是从{{获取更改1}}。
到目前为止,我一直在这样做只获取origRepo
中提交的选择性文件。
基本上是部分合并。
首先,我确保我的主人干净origRepo
然后我
取自git clean -df
:
origRepo
然后我合并而没有像这样提交:
git fetch origRepo/master
然后我以交互方式取消了不需要的文件(未合并表示这些文件)
git checkout master
git merge --no-ff --no-commit origRepo/master
然后我用
提交合并(选择性文件)git add -i #interactively stage and unstage files
然后我重置为提交并清理主
git commit -m "Merged this and that"
到目前为止,仅从origRepo / master
中提取了一些提交我的问题是这样的:我认为上述工作流程中的未合并(未分级)文件(我在git reset --hard
git clean -df
的历史记录的几次提交中所做的)将始终显示再做一次部分合并时(因为那些未合并的文件与我的主文件不同)。但不幸的是他们没有再出现......?
如何在上述工作流程中合并{strong>尚未合并的origRepo/master
中的所有未合并文件的问题。我是否需要再次合并一系列提交?
我需要做什么,上面的工作流程是愚蠢的?
非常感谢!
答案 0 :(得分:2)
您的工作流程确实非常错误。 git中的合并提交说“我包含所有我父母的变化”。 (但正如你已经发现的那样,当然可以违背这一承诺)。
你现在处于一个相当可怕的位置,因为git他无法理解正在发生的事情。我不认为git本身可以帮助你。我假设您还进行了仅在master中的本地更改。
要解决这个问题,你需要:
master
并将您的工作目录复制到某处( A )origRepo/master
并将您的工作目录复制到某处( B )master
并执行git merge --no-ff --no-commit origRepo/master
git init
,git add .
,git commit -m "Base"
git add -u
,git add .
,git commit -m "Local"
git checkout HEAD^ -b repo
git add -u
,git add .
,git commit -m "Repo"
git checkout master
,git merge repo