Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从远程拉取时在git中保留本地更改_Git_Github - Fatal编程技术网

从远程拉取时在git中保留本地更改

从远程拉取时在git中保留本地更改,git,github,Git,Github,假设我正在进行共享回购。在该repo中,有一个指定各种URL的defaults.js文件。当我在本地克隆repo时,我会将其中一些URL更改为指向本地运行的服务。如何将这些URL设置为本地值,同时从远程获取新更新 到目前为止,我一直很高兴(天真地?)使用所描述的方法 但是今天在尝试这个的时候,我收到了一封信 冲突(内容):在config/defaults.js中合并冲突 因为我们重新设置了基础,而不是合并,所以我不想开始创建混乱的合并,尤其是对于如此琐碎的事情。所以我只是重新设置,去掉了本地镜像

假设我正在进行共享回购。在该repo中,有一个指定各种URL的
defaults.js
文件。当我在本地克隆repo时,我会将其中一些URL更改为指向本地运行的服务。如何将这些URL设置为本地值,同时从远程获取新更新

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

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

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

因为我们重新设置了基础,而不是合并,所以我不想开始创建混乱的合并,尤其是对于如此琐碎的事情。所以我只是重新设置,去掉了本地镜像远程的更改,然后再次手动更改URL。显然,我不想继续这样做,首选的方法是什么

上面链接中的解决方案是

git checkout --theirs -- defaults.js

因为你知道你藏的东西是你想要的。但在我的情况下,情况并非如此,我确实希望我的和他们的合并,而不是真正的合并。

只要您维护的状态不同于您不希望提交的
origin
,您就会遇到这样的冲突,而您已经尝试过的方法几乎是最简单的修复方法

有两种更干净的方法可以很好地解决这一问题,避免使用Git进行Fuzing:

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

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

  • 这两项都是代码更改—实际上是一项新功能—但随着团队规模的增长,每个人都会很高兴他们可以进行适当的定制,而无需通过
    隐藏
    舞蹈进行斗争。

    您是否在寻找只使用git的解决方案?可能有一个未跟踪的local.js可以覆盖您需要的URL
    git checkout --theirs -- defaults.js