很少的背景:我们是一个由6名开发人员组成的团队,他们正在使 自从发布以来,我们一直使用CVS作为我们在使用ColdFusion w/Eclipse的Windows服务器上的源代码控制系统.随着最近围绕Git和分布式系统的大肆宣传,我们认为我们会检查出来.
作为标准的Web应用程序,我们拥有本地环境,我们可以在其中开发新功能/错误修复.一个开发环境,我们通过QA推送所有内容进行初始测试.我们发送已经测试过的功能/修复的分段我们的环境是尽可能地模仿我们的生产服务器.最后,一切都在旷野的现场系统中进行...
这个过程在某些时候相当痛苦,因为大部分都是通过FTP完成的,而且通常我们遇到冲突,因为某些事情需要比平时更长的时间进行测试或者需要快速修复错误.
关于Git如何在这种情况下工作,我有点困惑,这显然不是一个不常见的场景,但我发现的大部分内容都没有详细谈论它.
如果我理解正确的本地分支机构在Git中发挥重要作用,我首先克隆git存储库然后分支出来修复一些东西并将其全部提交到本地?
然后我将它提交回主干库下的主存储库处理合并冲突,如果有的话?
如果我的假设是正确的,那么主要问题是分期会发生什么.显然,某些功能/修复需要更长的时间来测试,有一些是比较急,等我将能够简单地做一些像某些功能/分支机构的拉到分期进行最后的签核,然后做同样的从直播服务器(拉,因为他们已签字)?
从CVS背景中获取相当多的东西...任何帮助将不胜感激!
我有两个 git 存储库,它们应该保持同步并且不能同时访问。一个在工作,一个在家里,没有网络连接。
如何处理这个简单的设置?
我尝试过的:
我有一个克隆,它“知道”存储库并存在于便携式硬盘上。
假设有人在“工作”创建了一个新分支,我想将它转移到回购“家”。这该怎么做?
如果我只做一个,git pull我会在我的克隆上得到以下内容:
$ git branch --list --all
*master
origin/HEAD -> origin/master
origin/bugfix_component_condition_destruction_fail
origin/master
origin/remove_stoplist_copy_and_erase
Run Code Online (Sandbox Code Playgroud)
问:这是否仅意味着我的本地克隆“知道”某处有这些列出的分支,并且除了本地存在的名为“master”的分支之外,我的克隆上没有真实数据?
很容易将 master 拉/推到两个 repos。但是我的本地克隆中似乎不存在任何其他人。我是否必须将每个远程分支跟踪到我克隆的本地分支,然后将其传输到另一个存储库?
问:如果将推送两个 repos 提交,是否有任何典型的方法来处理两个 repos 以使它们同步?
问:有没有什么技巧可以获取所有远程分支的所有信息和内容。
对我来说,回购的“克隆”意味着什么有点神秘?它似乎不是真正的克隆,而只是一些元数据和主分支。这是正确的吗?
编辑:
如果我开始,gitk --all我会看到在分支中完成的所有更改。看起来分支的内容在克隆中。
但如果我这样做:
$git checkout -b remove_stoplist_copy_and_erase --track remotes/origin/remove_stoplist_copy_and_erase
error: Not tracking: ambiguous information for ref refs/remotes/origin/remove_stoplist_copy_and_erase
Switched to a new branch 'remove_stoplist_copy_and_erase'
Run Code Online (Sandbox Code Playgroud)
所以我做了:
$git checkout origin/remove_stoplist_copy_and_erase
$git checkout -b remove_stoplist_copy_and_erase
Run Code Online (Sandbox Code Playgroud)
现在推送它: $git push --set-upstream ex remove_stoplist_copy_and_erase
我担心必须为两个遥控器上的所有分支手动执行所有这些操作才能使两者同步。这项工作是否有一些“最佳实践”?