2010-05-14 115 views
17

所以我不是一个源代码管理专家,我过去曾经使用过Subversion的项目。我必须将Git用于特定项目(客户端提供的Git回购)。如何将树干/分支概念从Subversion转换为Git?

我的工作流程是这样,我会在文件中工作从两个不同的计算机,而且往往我需要时,我从一个地方到另一个地方,所以我可以继续我的工作是不稳定的变化来检查。然后出现的情况是,当客户去获得最新版本时,他们也会下载不稳定的代码。

在SVN,你可以通过创建一个主干解决这个问题和使用工作分支机构,或使用后备箱的工作版本,并创建稳定的分支。

什么是Git的等价的概念,也没有简单的方法通过GitHub上做到这一点?

回答

17

有很多不同的方法来做到这一点。如果你必须从计算机转移到计算机,你将切换到不同的存储库,这意味着你会推动你对远程仓库的更改。这很好,但它也意味着你

一个很简单的例子是只在私有分支执行你的工作不稳定,并命名为明显的东西,例如unstable-development。以下是如何从头开始做到这一点。首先,让我们从您客户的网站做一个新的回购,我将其称为“秘密酱油”。

$ git clone git://example.com/repositories/secret-sauce.git 

你仍然在master分支,默认。让我们做一个新的分支,以便你可以在那里提交东西,而不是在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再次切换回去。

+0

比x个“教程”要好一些,这些教程需要一个简单的过程并使其变得复杂。 – Thufir 2012-08-09 05:34:37

9

我这找到一种宝贵的资源:A Successful Git Branching Model

不同于SVN,Git是分散的。您不需要将不稳定的代码推送到客户端的存储库。您可以简单地将不稳定的代码从第一台计算机拖到第二台计算机上。

话虽如此,git的把手支伟大的,应该是你最终使用的任何方法的一个组成部分。