我对git相当陌生,想知道部署到生产时的最佳实践吗?我有一个主分支,它总是有最新版本的生产代码。当我转到生产(现在我手动执行)时,我输入git pull
并获得最新版本。但它试图合并的代码,有时它会产生冲突,等等。有没有办法强制它采取主分支中的任何东西?git +部署到生产
我想在这个包括阅读了:
Best solutions to deploy from git to production?
我对git相当陌生,想知道部署到生产时的最佳实践吗?我有一个主分支,它总是有最新版本的生产代码。当我转到生产(现在我手动执行)时,我输入git pull
并获得最新版本。但它试图合并的代码,有时它会产生冲突,等等。有没有办法强制它采取主分支中的任何东西?git +部署到生产
我想在这个包括阅读了:
Best solutions to deploy from git to production?
尝试使用git fetch origin
和git reset --hard whatever_deployment_branch_you_use
不要扯的。
这将使存储库不尝试合并代码,因此您将避免在服务器上发生冲突。
这样做的一个简单而可靠的方法是有一个master
分支,您的所有开发都发生在这个分支上。如果您想更准确地反映分行的目的,您可以选择将此分行重新命名为development
。
然后您有另一个production
分支,它总是反映当前在您的生产环境中正在运行的分支。无论何时想要部署到生产环节,都可以检出您的production
分支并运行git merge master
。您还可以在master
的提交SHA上应用标签,以便更容易看到您部署的位置。
通过这样做,您可以修复开发框中的所有合并冲突,并且在生产框中,您可以运行git pull
,它将从production
获取最新版本。
Here是一个发烧友(可能更复杂)替代上述流程。如果您有多个开发人员和/或需要更复杂的发布周期,请使用此功能。
问题是我保持做'git pull',并且它在尝试合并分支时不断发出冲突。 – KVISH 2012-08-07 01:00:50
这样的声音是因为您的生产服务器上发生了无法改变的变化,其中Cast Frost在做什么时提供了最佳建议。如果您直接在生产环境中进行更改(通常是一个糟糕的主意),请确保提交它们,然后将它们合并回您的开发分支。 – jnevelson 2012-08-07 17:10:01
?我从来没有改变生产......只是我在分支中有很多变化。而当我做'git pull'时,它会尝试采取这些变化,并与目前制作中的内容合并。 – KVISH 2012-08-07 17:40:50
你可能想看看我在这里学到的有关安全地将git项目部署到远程web服务器而无需将你的repo公开给你的web服务器的问题:http://stackoverflow.com/a/18941021/470749 – Ryan 2013-10-01 16:35:50