Ikk*_*kke 20 git deployment branch
我正在使用git进行PHP项目,我认为它非常方便.如果我让它发挥作用,有一件事情会很棒.
我创建了一个分支,用于部署.它有一些差异,如不同的配置文件和文档.
我不能只是忽略它们,因为它们将留在两个分支中,而我希望它们在两个分支中保持不同.
问题是,当我合并分支时,那些意图不同的文件也会被合并.
有没有方便的方法来完成这样的事情?这通常是怎么做的?
Von*_*onC 11
我不确定Git是否会以这种方式使用.
首先是一个快速的Linus建议,总是"丰富多彩"和信息丰富;)
Git的非常根本跟踪项目的状态,而不是文件的状态.这意味着你非常不能尝试"合并文件".在git中这是一个毫无意义的操作,事实上,任何允许它的SCM都注定要成为sh t()的一部分.
(*)我不是说那只是因为git没有这样做.它比那更基础.一旦你开始进行每个文件的分支和合并,你基本上搞砸了自己,你将永远无法再将这个项目作为一个"整个项目" - 你不再拥有一个定义明确的历史记录是整个项目的历史.
那里.
那说,你可以:
此线程中的其他解决方案涉及在部署服务器上处理"特定于服务器"的分支
Development Deployment
#origin/master:
x--x $ git clone
# master
x--x
$ git checkout -b deployment origin/master
x--x
\
-- #deployment
$ .... #makes changes for config files
#or other specific deployment files
x--x
\
--d1--d2 # no need to push that branch ever.
#new developments
x--x--x--x
$ git pull --rebase #pull origin/master and
#replay current branch on top of it
x--x--x--x
\
--d1'--d2' #SHA1 rewritten in deployment branch
#not important since this branch
#is not pushed (published)
Run Code Online (Sandbox Code Playgroud)
我做了一些愚蠢的把戏,比如:
configconfig.development和config.production但不添加config到存储库cp config.production config这有任何意义吗?
它对我来说没问题。
这对我有用,我只进行了一些小配置更改(配置文件中有3行).
从GitHub或您保存的任何地方克隆您的存储库.到您希望部署的位置.
跑git checkout -b deployment origin/master.
进行更改(如果您愿意,可以推送它们).
每当您的主服务器(或您从中进行部署的任何分支)都要进行部署时,只需简单地进行部署即可git pull --rebase.
这是一个简单的解决方案,它肯定对我有用,我不能说话,或者不是这就像其他人所说的那样"shi*t",但它对我们的目的当然非常有用.
| 归档时间: |
|
| 查看次数: |
10694 次 |
| 最近记录: |