无法合并未跟踪的工作树

时间:2016-12-28 09:49:22

标签: git merge

我正在开发一个项目,并希望合并来自git存储库的更改。

远程仓库不会忽略一些构建文件,但我已将这些构建文件添加到我的gitignore(因为使用不同的构建系统,构建的文件显然会有所不同)。

所以当我尝试合并时:

git merge -X ours ns3-mmwave-ext/master

我收到一条错误消息,说这些构建文件会被合并覆盖。

我不希望它们被覆盖,所以我按照这个答案 https://stackoverflow.com/a/26639255/4126652

并试图这样做:

git add -f * // Without -f git is complaining because those build files are in my gitignore
git stash
git merge -X ours ns3-mmwave-ext/master

但是仍然显示相同的错误,即合并将覆盖相同的未跟踪工作树文件。

请注意,ns3-mmwave-ext是一个遥控器,已经被取出。

修改

我可以狡猾地清理构建文件,但是构建过程非常长,我不想仅仅为了一些小的改动而重建整个过程。

编辑2:

我不是远程仓库的贡献者所以我不能只删除远程构建文件。

1 个答案:

答案 0 :(得分:0)

我的建议是在其他本地build分支中提交您的tmp个文件夹。然后使用reset local/master ns3-mmwave-ext/master,然后拉。

# First remove 'builds' folder from .gitignore

$ git checkout tmp
$ git commit -am 'builds folder commmit'

$ git checkout master
$ git fetch
$ git reset --hard ns3-mmwave-ext/master
$ git pull origin ns3-mmwave-ext/master

$ git checkout tmp
$ git rebase master                  # now your 'builds folder commit' will be kept in top here