我正在将一个分支拉到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
?
答案 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