首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >修改文件后Git拉动。如何避免冲突?

修改文件后Git拉动。如何避免冲突?
EN

Stack Overflow用户
提问于 2016-07-27 20:59:40
回答 4查看 1.1K关注 0票数 0

我使用Git作为单独的开发人员。我最近开始把我的项目放到私人回购网站上。当我创建一个新的服务器时,我会克隆存储库,并运行我创建的任何安装脚本来启动并运行它。

安装脚本通常会对某些目录进行更改。例如,cache目录需要具有允许向其中写入文件的权限。有时,我还会修改配置文件(尽管我已经开始将配置内容放入环境变量中),或者拉入一些不属于项目的内容图像。

当我对这些文件进行更改时,我不能再使用git pull来仅拉取已更改的文件。如果我因为冲突而执行git pull,Git会报错。

我正在尝试找到一种方法,允许我从本地推送到远程,并从远程git (私有github)拉到我的服务器。

有可能吗?

EN

回答 4

Stack Overflow用户

发布于 2016-07-27 21:04:16

执行git stash,然后您的所有本地更改将被保留在一边,然后您将能够执行git pull。现在,您已经获取了计算机上的所有远程更改。然后执行git stash apply以重新应用您的配置更改。

票数 8
EN

Stack Overflow用户

发布于 2016-07-27 21:08:04

在本地存储库中永久地未索引/未提交配置更改不是一个好方法(正如您正在发现的那样)。

要从根本上解决问题:

  • 的每个环境都有一个配置文件。它可以(并且,除非它包含密码或其他秘密,否则应该)驻留在存储库中(在本例中,将它们捆绑在一个具有单独名称的/config目录中),或者可以留在外部(然后在存储库中只有某种默认的配置文件,而不是实际的配置文件)。当您运行脚本时,请将它们指向正确的配置文件。例如,您可以通过使用配置文件名建立环境变量,或者在公共位置(如/etc/opt/...)或在存储库中将符号链接作为忽略的符号链接(如config/localhost)来完成此操作。无论您做什么,您的代码都将知道要选择哪个实际文件。

然后,您可以随时在任何地方提交所有更改,并且来自不同环境的配置文件将不会被视为一个文件(由于不同的文件名);没有冲突等。

票数 1
EN

Stack Overflow用户

发布于 2016-07-27 21:03:41

代码语言:javascript
运行
复制
git stash

Git stash将您的更改设置为Stash状态。然后你就可以做到:

代码语言:javascript
运行
复制
git pull

然后拉出新的更改:

代码语言:javascript
运行
复制
git stash apply

将带回您的更改。不管怎样,你需要一个mergetool。我个人使用并推荐PHPStorm MergeTool,我发现它非常容易使用,并且有一个很棒的UI。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38613698

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档