尝试了解git,我已经看过很多文档,但对git的实际经验几乎为零。所以你可以说我知道关于git的所有基本概念。但这就是全部。
现在,我们已经意识到我们可能会从git中受益,但我不确定如何继续。
我有3台服务器,其中包含源代码,一台用于Dev,一台preprod和一台prod。所有文件应该几乎相同,但dev / preprod可能会更新一些。
所以我创建了我的git repo,创建了2个分支,dev和preprod。
将我的开发文件添加到dev,preprod to preprod。两者之间的比较,以及我的惊喜文件是否有所不同,可能是因为它们不被视为同一个文件。
我该如何处理?
一旦所有内容都出现在我的git repo中,在我的开发服务器上,我总是会从dev,preprod中提取内容,我会在preprod中进行拉动和合并,并且掌握我总是拉来自dev和preprod,并合并。
我有一个很好的理解吗?如何从不同的环境中导入文件?
谢谢!
答案 0 :(得分:0)
就我所见,你的方法是正确的。虽然我会在你的情况下重新开始。
不要比较两个分支中的文件,而是先尝试将它们按顺序排列。根据你的描述,我会说你的产品是“最老的”,而不是预制,而不是开发。
假设您首先创建一个repo并从master中的prod导入所有内容。比分支它刺激。之后再次检查主机并尝试通过替换文件夹中的文件来导入preprod。 git diff比告诉你改变了什么。很容易发现像空白一样的小差异,这样你就可以在下一步中忽略它们。我建议git add -i(用于交互式)来完成这项工作。提交你所拥有的并将其分支到preprod。
最后,使用dev重复该过程并将其保留在那里。这样主人就是你的开发者。有些人喜欢这样,有些则不喜欢。这只是一个选择。
请注意,每个分支中不同的代码可能只是您可以在不属于存储库的配置文件中外包的配置。
关于分支模型的文章可能也很有趣:A successfull Git branching model
事实上,git-flow工具是git工作流的助手,它基于这个模型,并且在某些企业工具中得到了支持,比如bitbucket。
正确的方式是你和你的团队可以合作的方式而不是最具魔力的方式: - )
答案 1 :(得分:0)
如果dev
分支和preprod
分支中的相同文件具有相同的内容,但您发现git diff dev preprod
之间存在差异,则主要是因为它们具有不同的空行数(例如dev
分支中的文件有一个空行,但在preprod
中,内容末尾有两个空白行。所以git对待它们是不同的。
是的,您可以从dev
和preprod
服务器提取/合并。但是有更好的方法将dev服务器中的代码与preprod服务器同步。您可以使用收件后挂钩。将更改推送到dev服务器后,可以使用post-receive挂钩将preprod服务器与dev服务器同步。