gpt4 book ai didi

Git 无法在 pull 期间取消链接文件 - 如何摆脱存储库的不一致状态?

转载 作者:太空狗 更新时间:2023-10-29 13:01:57 26 4
gpt4 key购买 nike

在执行“git pull”时,git 中止了操作,因为它无法取消链接它想要覆盖的文件,因为我忘记关闭锁定这些文件的应用程序。

当我关闭应用程序并尝试重新执行“git pull”并收到以下错误消息时:

"Error: Your local changes to the following files would be overwritten by merge: ..."

"Error: The following untracked working tree files would be overwritten by merge: ..."

很明显,git 只是在没有回滚的情况下中止了 pull ,现在认为刚刚 pull 的更改是我的本地更改。

如何摆脱这种状态?我们正在谈论很多文件,在执行“git revert”之前,如果我这边有一些本地更改,我将不得不手动检查每个文件。

注意:我们在类似客户端-服务器的设置中使用 git,其中分布式开发人员经常“pull ”和“推并提交”到中央 bitbucket 存储库。

最佳答案

由于上述方法都不适合我,我使用了一个不是全自动的过程,但减少了一些手动选择文件的工作量(在我的例子中是 2 个而不是 50 个)。

首先使用

存储所有文件(包括未跟踪和忽略的文件)
git stash save --all             

然后使用

重做之前失败的 pull
git pull                         

现在从存储中 check out 以简单地覆盖在第一次 pull 期间更改的所有文件(无 merge 尝试):

git checkout stash -- .         

现在还有一个问题:在失败的 pull 和第二次 pull 之间在服务器上所做的更改现在被覆盖了。但是那些应该只是几个文件(如果两次“pull ”之间的时间很短),并且在您自己所做的工作更改列表中更容易识别。在进行最终提交之前,只需“还原”它们(我使用了 Tortoise GIT 提交对话框)。

git commit
git stash drop

关于Git 无法在 pull 期间取消链接文件 - 如何摆脱存储库的不一致状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34995421/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com