gpt4 book ai didi

Git:如何强制 "git pull"覆盖本地文件?

转载 作者:行者123 更新时间:2023-12-03 21:28:24 26 4
gpt4 key购买 nike

如何强制覆盖 git pull 上的本地文件?

场景如下:

  • 一位团队成员正在修改我们正在开发的网站的模板
  • 他们正在向图像目录添加一些图像(但忘记在源代码管理下添加它们)
  • 他们稍后通过邮件将图像发送给我
  • 我正在源代码管理下添加图像并将它们连同其他更改一起推送到 GitHub
  • 他们无法从 GitHub pull 更新,因为 Git 不想覆盖他们的文件。

  • 这是我得到的错误:

    error: Untracked working tree file 'public/images/icon.gif' would be overwritten by merge



    如何强制 Git 覆盖它们?此人是一名设计师 - 通常,我会手动解决所有冲突,因此服务器具有他们只需要在其计算机上更新的最新版本。

    最佳答案

    ⚠重要提示:如果您有任何本地更改,它们将丢失。有无--hard选项,任何未推送的本地提交都将丢失。[*]
    如果您有任何 Git 未跟踪的文件(例如上传的用户内容),这些文件将不会受到影响。

    首先,运行 fetch 更新所有 origin/<branch>引用最新:

    git fetch --all
    备份您当前的分支:
    git branch backup-master
    然后,您有两个选择:
    git reset --hard origin/master
    或者如果您在其他分支机构:
    git reset --hard origin/<branch_name>
    解释: git fetch从远程下载最新版本,而无需尝试 merge 或重新设置任何内容。
    然后是 git reset将主分支重置为您刚刚获取的内容。 --hard选项更改工作树中的所有文件以匹配 origin/master 中的文件

    维护当前的本地提交
    [*]:值得注意的是,可以通过从 master 创建一个分支来维护当前的本地提交。重置前:
    git checkout master
    git branch new-branch-to-save-current-commits
    git fetch --all
    git reset --hard origin/master
    在此之后,所有旧的提交都将保存在 new-branch-to-save-current-commits 中。 .
    未提交的更改
    然而,未提交的更改(即使是暂存的)也会丢失。确保存储并提交您需要的任何内容。为此,您可以运行以下命令:
    git stash
    然后重新应用这些未提交的更改:
    git stash pop

    关于Git:如何强制 "git pull"覆盖本地文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46400910/

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