gpt4 book ai didi

git - "would be overwritten by merge"是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 12:50:33 29 4
gpt4 key购买 nike

从基于团队的 Git 远程存储库中 pull 时,我收到此消息:

"C:\Program Files (x86)\Git\bin\git.exe" pull --progress "origin" +refs/heads/master:refs/remotes/origin/master
Updating 71089d7..4c66e71
error: Your local changes to the following files would be overwritten by merge:
Source/Reporting/Common/Common.Dal.csproj
Please, commit your changes or stash them before you can merge.
Aborting
Done

Git 中的什么规则(或功能)确保我在工作目录中修改的文件不会被 pull 覆盖?

换句话说,在什么情况下被pull覆盖?或者...我需要做什么来强制 pull 覆盖我刚刚修改的文件?

最佳答案

什么规则会产生“将被覆盖”警告?

如果您修改了一个文件,该文件在远程存储库中也有修改但尚未提交。

什么规则可以避免“将被覆盖”警告?

如果远程仓库中没有未提交的文件也有修改。

我需要做什么...

这取决于你真正想要什么:

  1. 您想强制 pull 以覆盖文件

    显然,如果您真的想要这个,您不会关心刚刚所做的更改,也不介意删除它们。如果是这样,您只需执行以下操作:

    git reset --hard
    git pull
  2. 您既想要您的更改,也想要来自 pull 的更改

    在我看来,处理此问题的最简单方法是提交您的更改,然后进行 pull 。然后,如果存在 merge 冲突,请使用通常的机制来解决 merge (提示:配置您的 difftool 和 mergetool,以便您可以使用 meld 或 diffmerge 等 GUI 工具轻松解决冲突)。只是做:

    git add $the_affected_file
    git commit
    git pull
  3. 您想要这两项更改,但您还没有准备好提交

    就我个人而言,我认为您不应该准备好做出 promise 。但有时会发生这样的情况,即您正在调试的代码部分损坏,而您真的不想提交。在这种情况下,您可以暂时存储更改,然后在 pull 后取消存储:

    git stash
    git pull
    git stash pop

    如果 pop 存储后有冲突,则以通常的方式解决它们。注意:如果您还没有准备好因冲突而丢失 stash 的代码,您可能想要执行 git stash apply 而不是 pop

关于git - "would be overwritten by merge"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35450049/

29 4 0
文章推荐: Android WebView 应用程序在强制关闭/重启时清除 HTML5 缓存数据
文章推荐: git - 如何查看 merge 历史?
文章推荐: html -
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com