Ubuntu环境的Git安装与使用

一、Ubuntu 安装Git服务程序

$ sudo apt-get install git-core

二、服务器上安装Gitosis程序

Gitosis是一个工具程序,可以帮助我们进行Git仓库的访问控制和远程管理。

$ sudo apt-get install python-setuptools
$ mkdir ~/src
$ cd ~/src
$ git clone https://github.com/res0nat0r/gitosis.git
$ cd gitosis
$ sudo python setup.py install

三、服务器上创建一个git帐号。

没有密码。这个帐号是给Gitosis程序使用的。

$ sudo adduser \
  --system \
  --shell /bin/sh \
  --gecos 'git version control' \
  --group \
  --disabled-password \
  --home /home/git \
  git

四、安装远程管理客户端

客户端安装ssh,生成ssh密钥

$ sudo apt-get install openssh-client
$ ssh-keygen

将公钥文件复制到服务端。

$ scp /home/xx/.ssh/id_rsa.pub xx@server:/home/xx
$ sudo -H -u git gitosis-init < /home/xx/id_rsa.pub

得到下面的结果:

Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/

意思是服务器上已经成功创建了仓库目录,路径是/home/git/repositories,并且里面还创建了一个管理员仓库,叫gitosis-admin。

修改服务器上一个文件的权限:

$ sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update

从服务器上clone出gitosis-admin仓库:

$ /home/chenshu/my_git
$ cd ~/my_git
$ git clone git@server:gitosis-admin.git

结果如下:

Cloning into gitosis-admin...
remote: Counting objects: 5, done.        
remote: Compressing objects: 100% (4/4), done.        
remote: Total 5 (delta 1), reused 5 (delta 1)        
Receiving objects: 100% (5/5), done.
Resolving deltas: 100% (1/1), done.

通过修改gitosis-admin/gitosis.conf文件来远程管理服务器上的仓库:

[gitosis]

[group gitosis-admin]
members = xx@ubuntu
writable = mitosis-admin

五、加入新用户

把用户的公钥添加到gitosis-admin/keydir中,在gitosis-admin/gitosis.conf文件中member项加入用户名,用户名与文件.pub之前的名称一致

[gitosis]

[group gitosis-admin]
members = xx@ubuntu zzz
writable = mitosis-admin

在gitoosis-admin目录下,提交设置到服务器:

$ git add .
$ git commit -am "add a new user"
$ git push

六、创建新项目

在gitosis-admin/gitosis.conf文件中添加工程名以及用户

[gitosis]

[group gitosis-admin]
members = xx@ubuntu zzz
writable = mitosis-admin

[group testProject]
members = xx@ubuntu zzz
writable = testProject

提交到服务器。
建立工程目录并提交到服务器:

$ mkdir testProject
$ cd testProject/
$ git init 
$ git add .
$ git remote  add origin git@localhost:testProject.git
$ git commit -am "new project init"
$ git push origin master

服务器完成。

七、用户客户端操作

1.获取项目

$ git clone git@server:testProject.git

2.上传文件

进入获取的工程目录,添加文件,上传服务器

$ cd testProject
$ touch 1.c
$ git add .
$ git commit -am "add new file 1.c"
$ git push

如只上传单个文件 在add后接该文件名

...
$ git add 1.c
...

3.下载文件

$ git pull origin master

可以获取服务器master分支的所有文件。

分支管理

1.创建分支

$ git branch dev

2.查看分支

$ git branch
  dev
* master
<h2>asdashdkh2>

当前分支会标*

3.切换分支

$ git checkout dev
Switched to branch 'dev'

git checkout命令加上-b参数表示创建并切换分支:

$ git checkout -b dev
Switched to a new branch 'dev'

然后,用git branch命令查看当前分支:

$ git branch
* dev
  master

就可以在dev分支上正常提交。

$ git add readme.txt 
$ git commit -m "branch test"
[dev fec145a] branch test
 1 file changed, 1 insertion(+)

现在,dev分支的工作完成,我们就可以切换回master分支:

$ git checkout master
Switched to branch 'master'

4.合并分支

$ git merge dev
Updating d17efd8..fec145a
Fast-forward
 readme.txt |    1 +
 1 file changed, 1 insertion(+)

git merge命令用于合并指定分支到当前分支。合并后的文件内容,和dev分支的最新提交是完全一样的。

5.删除分支

合并完成后,就可以放心地删除dev分支了:

$ git branch -d dev
Deleted branch dev (was fec145a).

删除后,查看branch,就只剩下master分支了:

$ git branch
* master

你可能感兴趣的:(环境)