所以我不是一个源代码控制专家,我过去曾将Subversion用于项目.我必须使用Git进行特定项目(客户端提供的Git repo).
我的工作流程是这样的,我将处理来自两台不同计算机的文件,并且我经常需要检查当我从一个地方移动到另一个地方时不稳定的更改,以便我可以继续我的工作.然后发生的事情是,当客户去获取最新版本时,他们也会下载不稳定的代码.
在SVN中,您可以通过创建中继并使用工作分支来解决此问题,或者使用中继作为工作版本并创建稳定的分支.
Git中的等价概念是什么,有没有一种简单的方法可以通过GitHub实现这一点?
有很多不同的方法可以做到这一点.如果您必须从计算机移动到计算机,您将切换到不同的存储库,这意味着您将更改推送到远程仓库.那很好,但也意味着你
一个非常简单的例子是仅在私有分支上执行不稳定的工作,并将其命名为明显的东西,例如unstable-development
.以下是如何从头开始.首先,让我们从您客户的网站上创建一个新的回购,我称之为"秘密酱".
$ git clone git://example.com/repositories/secret-sauce.git
你仍然在master
分支机构,默认.让我们创建一个新的分支,这样你就可以在那里提交东西而不是on master
.
$ git branch unstable $ git checkout unstable Switched to branch 'unstable'
好的.现在让我们添加一些不稳定的代码:
$ touch kablammo.txt $ git add * $ git commit -m "Added unstable code." [master (root-commit) 9428aef] Initial checkin. 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 kablammo.txt
现在,unstable
只存在于你身边.请注意,当我们克隆时,我们有一个名为的远程存储库origin
,它有一个相应的master
分支.当您的本地存储库知道远程存储库的分支时,我们将其称为"跟踪分支".您可以通过以下方式查看所有远程跟踪分支git branch -r
:
$ git branch -r origin/HEAD -> origin/master origin/master
好的.让我们推回我们的变化!
$ git push origin unstable
就是这样 - 我们的变化现在存在于unstable
远程仓库的分支上.如果我们想要再次查看人们在master
分支机构上的内容,我们可以再次切换回来git checkout master
.
我发现这是一个宝贵的资源:一个成功的Git分支模型
与SVN不同,git是分散的.您不应该将不稳定的代码推送到客户端的存储库中.您可以从第1台简单地将不稳定代码拉到第2台计算机.
话虽如此,git处理分支很好,应该是你最终使用的任何方法的组成部分.