【问题标题】:Keeping local changes in git while pulling from remote从远程拉取时保持 git 中的本地更改
【发布时间】:2016-07-28 05:29:26
【问题描述】:

假设我正在处理共享存储库。在那个 repo 中有一个 defaults.js 文件,它指定了各种 URL。当我在本地克隆 repo 时,我将其中一些 URL 更改为指向在本地运行的服务。如何将这些 URL 设置为本地值,同时从远程获取新更新?

到目前为止,我一直很高兴(天真地?)使用here描述的方法

git stash
git pull
git stash pop

但是今天尝试这个的时候我收到了一个

CONFLICT(内容):config/defaults.js 中的合并冲突

由于我们是变基而不是合并,我不想开始创建混乱的合并,尤其是对于如此微不足道的事情。所以我只是重置,摆脱了我的更改,因此本地镜像远程,然后再次手动更改 URL。显然,我不想继续这样做,首选方法是什么?

上面链接中的解决方案说简单

git checkout --theirs -- defaults.js

因为你知道你放在储藏室里的东西就是你想要的。但就我而言,这不是真的,我确实想要我和他们的合并,而不是实际合并。

【问题讨论】:

  • 您在寻找 git only 解决方案吗?也许有一个未跟踪的 local.js 会覆盖您需要的 URL

标签: git github


【解决方案1】:

只要你保持与origin 不同的状态,你不想提交,你就会遇到这样的冲突,而你已经在尝试的事情几乎是最简单的方法修复它。

有一些更简洁的方法可以永久解决这个问题,避免与 Git 搞混:

  1. 如果您可以使用环境变量,请设置 defaults.js 以首选这些变量并回退到文件中包含的另一个默认值。然后,您可以设置与您的同事或生产不同的本地 ENV。

  2. 设置一个优先于defaults.jslocal-defaults.js 文件(批发或通过合并选项),并将其添加到.gitignore,这样它就不会被提交。然后每个人都可以使用他们需要的任何覆盖来保留自己的文件。

这两个都是代码更改 - 实际上是一项新功能 - 但随着团队规模的扩大,每个人都会很高兴他们可以进行适当的自定义,而无需通过 stash 跳舞。

【讨论】:

    猜你喜欢
    • 2011-06-14
    • 2012-05-11
    • 2018-07-27
    • 2018-10-10
    • 2011-05-02
    • 2020-12-11
    • 1970-01-01
    • 2020-06-10
    相关资源
    最近更新 更多