相关疑难解决方法(0)

git-subtree拉动并发症

我们一直试图让git-subtree处理一个项目(使用git版本1.7.9.4)并且遇到了一些复杂问题.几个月前,其他人之前使用此命令添加了子树:

git subtree add --prefix=foo git@example.com:foo.git master
Run Code Online (Sandbox Code Playgroud)

现在已经有了实质性的变化foo,我们想要合并这些变化,最好将它们压缩.自导入文件以来,没有任何文件被修改过.

我已经尝试了三件事来尝试合并更改.

第一:

git subtree pull --squash -P foo git@example.com:foo.git master
Run Code Online (Sandbox Code Playgroud)

抛出异常: Can't squash-merge: 'foo' was never added.

第二:

git subtree pull -P foo git@example.com:foo.git master
Run Code Online (Sandbox Code Playgroud)

这有点工作(但有一些问题,但是存在拉入所有提交的问题,并且与已修改的文件有冲突.

最后,我尝试了这个:

git pull --squash -s subtree git@example.com:foo.git  master
Run Code Online (Sandbox Code Playgroud)

这给了我想要的结果,输出Automatic merge went well; stopped before committing as requested和所有文件显示为已修改(具有正确的内容).

理想情况下,我想继续使用第一个git-subtree版本并获得接近上一版本的输出.如果我们必须始终使用最后一个版本,我们会,但我有点困惑为什么最后一个不产生合并冲突,而中间版本.

任何帮助表示赞赏.

git merge git-subtree

19
推荐指数
1
解决办法
1万
查看次数

拉取 git 子树,工作树已修改

我有一个远程存储库,我们称之为subrepo。我想将其作为子树包含在本地存储库中,我们将其称为mainrepo。我将把subrepo放在路径“subrepofold/”下。

我像往常一样添加了遥控器:

git remote add subrepo git@remote.subrepo.git
Run Code Online (Sandbox Code Playgroud)

mainrepo上我只有一个分支(master)。我添加并承诺了所有:

git add --all
git commit -m "message"
git status
Run Code Online (Sandbox Code Playgroud)

在分支 master 上没有任何可提交的内容,工作目录干净

git diff-index HEAD --exit-code --quiet
Run Code Online (Sandbox Code Playgroud)

不给我输出。跑步:

git subtree pull --prefix="subrepofold" subrepo master --squash
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

工作树有修改。无法添加。

我知道这似乎正是此处描述的问题,但似乎没有一个回复能够解决该问题。

git-subtree

7
推荐指数
0
解决办法
2450
查看次数

标签 统计

git-subtree ×2

git ×1

merge ×1