我使用Git作为单独的开发人员。我最近开始把我的项目放到私人回购网站上。当我创建一个新的服务器时,我会克隆存储库,并运行我创建的任何安装脚本来启动并运行它。
安装脚本通常会对某些目录进行更改。例如,cache目录需要具有允许向其中写入文件的权限。有时,我还会修改配置文件(尽管我已经开始将配置内容放入环境变量中),或者拉入一些不属于项目的内容图像。
当我对这些文件进行更改时,我不能再使用git pull来仅拉取已更改的文件。如果我因为冲突而执行git pull,Git会报错。
我正在尝试找到一种方法,允许我从本地推送到远程,并从远程git (私有github)拉到我的服务器。
有可能吗?
发布于 2016-07-27 21:04:16
执行git stash,然后您的所有本地更改将被保留在一边,然后您将能够执行git pull。现在,您已经获取了计算机上的所有远程更改。然后执行git stash apply以重新应用您的配置更改。
发布于 2016-07-27 21:08:04
在本地存储库中永久地未索引/未提交配置更改不是一个好方法(正如您正在发现的那样)。
要从根本上解决问题:
/config目录中),或者可以留在外部(然后在存储库中只有某种默认的配置文件,而不是实际的配置文件)。当您运行脚本时,请将它们指向正确的配置文件。例如,您可以通过使用配置文件名建立环境变量,或者在公共位置(如/etc/opt/...)或在存储库中将符号链接作为忽略的符号链接(如config/localhost)来完成此操作。无论您做什么,您的代码都将知道要选择哪个实际文件。然后,您可以随时在任何地方提交所有更改,并且来自不同环境的配置文件将不会被视为一个文件(由于不同的文件名);没有冲突等。
发布于 2016-07-27 21:03:41
git stashGit stash将您的更改设置为Stash状态。然后你就可以做到:
git pull然后拉出新的更改:
git stash apply将带回您的更改。不管怎样,你需要一个mergetool。我个人使用并推荐PHPStorm MergeTool,我发现它非常容易使用,并且有一个很棒的UI。
https://stackoverflow.com/questions/38613698
复制相似问题