Git Merge:错误:无法取消链接旧的<file>:没有这样的文件或目录

时间:2018-07-18 09:48:37

标签: git git-pull unlink

我正在将一个分支拉到master中以进行合并。

我正在运行的命令是((已检出master时):git pull origin feature/some_branch

不幸的是,我的同事似乎在该处执行了一些(我认为是良性的)文件删除操作,现在git发出了error: unable to unlink old 'somefile': No such file or directory

我试图在线查找,但是此错误的大多数参考都涉及权限,在这里不是这种情况。

有问题的文件在合并之前没有出现在master上,而是存在于新分支中。

问题是master长时间没有更新,所以影响太多的更改和文件,我无法开始理解代码。

我只需要master来包含来自新分支的所有更改。我们永远不会始终通过合并将任何事情直接提交给master

到目前为止,我已经尝试过:

  • 使用--force参数,出现同样的问题
  • git reset origin/master --hard并再次运行pull,同样的问题

如何在不关心此类问题的情况下,同时保留其历史记录,而用另一个较新的分支更新master

2 个答案:

答案 0 :(得分:3)

  

我只需要master包含来自新分支的所有更改。

然后,您可以强制合并,以反映该分支lastPathSegment的内容。

但是您可以使用similar idea来保留第一对父母的历史记录,而不是使用feature/some_branch

merge --ours master

答案 1 :(得分:0)

要将master分支替换为origin/master上的版本,可以尝试删除并重新创建它。在执行此操作时,无需检出master,因此可以避免与更改工作目录有关的错误。

首先签出一个您可以签出的分支:

git checkout feature/some-branch

然后删除您的本地master分支并重新创建它,包括其跟踪信息:

git branch --delete master
git branch master origin/master
git branch --set-upstream-to=origin/master master

最后,尝试切换到新的master

git branch checkout master