[DOC] 在drcom-client项目中使用 Git, version 3

8 views
Skip to first unread message

Wheelz

unread,
Jan 16, 2010, 11:52:25 PM1/16/10
to drcom-...@googlegroups.com
sourceforge.net对git的用法稍微有了一点改变。下面是最新的使用git的文档。


========================================
在drcom-client项目中使用 Git, version 3
========================================


=========
1. 初始化
=========

$ git clone ssh://USER...@drcom-client.git.sourceforge.net/gitroot/drcom-client/drcom-client my-drcom-client
$ cd my-drcom-client/
$ git config user.name "YOUR NAME"
$ git config user.email "USER...@users.sourceforge.net"

以上的命令在本地的目录my-drcom-client/中克隆了一份sourceforge.net上的drcom-client的repository.
下面就可以在这个本地的repository的基础上进行开发了。

在下面的论述中,我们都假定当前目录是my-drcom-client/

==============================================
2. 创建本地的开发分支 my-python-user-mode 分支
==============================================

在远程的sourceforge的repository上,有一个分支称为python-user-mode,
这个分支是用于python用户态程序的开发的。

在第一步的克隆过程中,针对这个sourceforge的python-user-mode分支,
git在本地的repository中,建立了一个remote branch,
即remotes/origin/python-user-mode,来跟踪sourceforge上的python-user-mode分支。

当我们知道远程repository的python-user-mode有更新时,我们可以用下面这个
命令来更新本地的remote branch:

$ git fetch origin python-user-mode:remotes/origin/python-user-mode

我们不要在这个remote branch上直接开发,而是要建立一个私有的分支my-python-user-mode,
在这个分支上开发。用下面这个命令来建立这个私有的tracking branch:

$ git checkout -b my-python-user-mode remotes/origin/python-user-mode

此时,我们已经建立了自己的tracking branch,即my-python-user-mode,
并且已经切换到该分支上。现在可以在这个分支上进行开发工作了。

....do works....

my-python-user-mode分支的工作完成以后,首先commit到本地的repository中去,
如果需要,还可以用git tag标记版本号。

然后,用下面这个命令push到sourceforge的git repository上去。

$ git push --tags origin my-python-user-mode:python-user-mode

注意,这里是从本地的my-python-user-mode分支push到sourceforge的python-user-mode的分支上。

=====================
3. 切换到 master 分支
=====================

在第一个步骤(克隆远程repository)的时候,针对sourceforge上的master分支,
git在本地也创建了一个remote branch,即remotes/origin/master。

同时,对应于该remotes/origin/master,git还在本地也创建了一个tracking branch,
即master分支。这样,当我们要开发master分支的时候,我们只要切换就可以了:

$ git checkout master

这样,就可以更新master分支的代码了。

...do works...

工作完成后,先commit到本地repository,然后:

$ git push --tags origin master:master

来提交到sourceforge的repository。这里是把本地的master分支push到sourceforge的master分支。
由于这两个分支都叫master,因此可以简化命令为:

$ git push --tags origin master

===============================
4. 切换回 my-python-user-mode 分支
===============================

$ git checkout my-python-user-mode

继续my-python-user-mode分支上的工作。


=======================================
5. 在sourceforge的repository中创建分支
=======================================

如果我们需要在sourceforge的repository中创建一个分支,比如,
我们希望在本地的master分支的基础上,在远程创建一个dummy-branch分支,则

$ git push origin master:refs/heads/dummy-branch

此时,git在本地创建了一个remote branch,即remotes/origin/dummy-branch,
来跟踪sourceforge上的dummy-branch分支。

然后,保证一切都是最新的,

$ git fetch origin

OK,同样,我们不要在这个remote branch上直接进行开发,我们要在本地创建一个tracking branch,

$ git checkout --track -b my-dummy-branch remotes/origin/dummy-branch

这里的--track貌似是可以忽略的(正如前面的建立tracking branch的描述)。


Reply all
Reply to author
Forward
0 new messages