2012-08-06 102 views
3

我对git相当陌生,想知道部署到生产时的最佳实践吗?我有一个主分支,它总是有最新版本的生产代码。当我转到生产(现在我手动执行)时,我输入git pull并获得最新版本。但它试图合并的代码,有时它会产生冲突,等等。有没有办法强制它采取主分支中的任何东西?git +部署到生产

我想在这个包括阅读了:

Best solutions to deploy from git to production?

http://posheika.net/?p=136

+1

你可能想看看我在这里学到的有关安全地将git项目部署到远程web服务器而无需将你的repo公开给你的web服务器的问题:http://stackoverflow.com/a/18941021/470749 – Ryan 2013-10-01 16:35:50

回答

3

尝试使用git fetch origingit reset --hard whatever_deployment_branch_you_use不要扯的。

这将使存储库不尝试合并代码,因此您将避免在服务器上发生冲突。

0

这样做的一个简单而可靠的方法是有一个master分支,您的所有开发都发生在这个分支上。如果您想更准确地反映分行的目的,您可以选择将此分行重新命名为development

然后您有另一个production分支,它总是反映当前在您的生产环境中正在运行的分支。无论何时想要部署到生产环节,都可以检出您的production分支并运行git merge master。您还可以在master的提交SHA上应用标签,以便更容易看到您部署的位置。

通过这样做,您可以修复开发框中的所有合并冲突,并且在生产框中,您可以运行git pull,它将从production获取最新版本。

Here是一个发烧友(可能更复杂)替代上述流程。如果您有多个开发人员和/或需要更复杂的发布周期,请使用此功能。

+0

问题是我保持做'git pull',并且它在尝试合并分支时不断发出冲突。 – KVISH 2012-08-07 01:00:50

+0

这样的声音是因为您的生产服务器上发生了无法改变的变化,其中Cast Frost在做什么时提供了最佳建议。如果您直接在生产环境中进行更改(通常是一个糟糕的主意),请确保提交它们,然后将它们合并回您的开发分支。 – jnevelson 2012-08-07 17:10:01

+0

?我从来没有改变生产......只是我在分支中有很多变化。而当我做'git pull'时,它会尝试采取这些变化,并与目前制作中的内容合并。 – KVISH 2012-08-07 17:40:50