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