git 服务器架设
来源:互联网 发布:工厂巡检记录数据 编辑:程序博客网 时间:2024/05/18 01:42
建立一个 Git 代码共享仓库服务器。
1. 服务器
通常用 SSH 协议即可,我们应该为 Git 创建一个专用账号。
$ sudo useradd git$ sudo passwd gitEnter new UNIX password:Retype new UNIX password:passwd: password updated successfully
创建一个用来保存代码仓库的目录,注意赋予 git 账号读写权限。
$ sudo mkdir -p /var/git.server/project1$ cd /var/git.server$ sudo chown git project1$ sudo chgrp git project1$ ls -ltotal 4drwxr-xr-x 2 git git 4096 2010-05-17 00:55 project1
初始化 project1,注意在服务器上我们无需保留工作目录,因此创建一个纯粹(bare)的代码仓库。
$ cd project1/$ sudo su git$ pwd/var/git.server/project1$ git --bare initInitialized empty Git repository in /var/git.server/project1/$ ls -ltotal 32drwxr-xr-x 2 git git 4096 2010-05-17 00:59 branches-rw-r--r-- 1 git git 66 2010-05-17 00:59 config-rw-r--r-- 1 git git 73 2010-05-17 00:59 description-rw-r--r-- 1 git git 23 2010-05-17 00:59 HEADdrwxr-xr-x 2 git git 4096 2010-05-17 00:59 hooksdrwxr-xr-x 2 git git 4096 2010-05-17 00:59 infodrwxr-xr-x 4 git git 4096 2010-05-17 00:59 objectsdrwxr-xr-x 4 git git 4096 2010-05-17 00:59 refs$ exit
我们在服务器上克隆一份用于管理和测试(应该禁止直接操作服务器仓库目录)。
$ git clone /var/git.server/project1/Initialized empty Git repository in /home/yuhen/project1/.git/warning: You appear to have cloned an empty repository.$ ls -al project1total 12drwxr-xr-x 3 yuhen yuhen 4096 2010-05-17 01:02 .drwxr-xr-x 10 yuhen yuhen 4096 2010-05-17 01:02 ..drwxr-xr-x 7 yuhen yuhen 4096 2010-05-17 01:02 .git
我们添加点项目初始化文件。
$ cd project1$ cat > .gitingore << end> *~> *.swp> end$ touch README$ git status# On branch master## Initial commit## Untracked files:# (use "git add <file>..." to include in what will be committed)## .gitingore# READMEnothing added to commit but untracked files present (use "git add" to track)$ git add .$ git commit -am "Start"[master (root-commit) 723471e] Start 1 files changed, 2 insertions(+), 0 deletions(-) create mode 100644 .gitingore create mode 100644 README
我们向服务器提交第一个版本。
$ git push git@localhost:/var/git.server/project1/ masterCounting objects: 4, done.Delta compression using up to 2 threads.Compressing objects: 100% (2/2), done.Writing objects: 100% (4/4), 258 bytes, done.Total 4 (delta 0), reused 0 (delta 0)To git@localhost:/var/git.server/project1/ * [new branch] master -> master
通常情况下,我们可以用 origin 来代替服务器地址,不过当前测试账号没有写 git.server/project1 的权限,因此用 ssh 路径。同时需要指定 branch。
2. 客户端
好了,现在作为一个普通程序员,我们开始为 project1 项目工作。
$ git clone git@192.168.1.202:/var/git.server/project1Initialized empty Git repository in /home/yuhen/project1/.git/git@192.168.1.202's password: remote: Counting objects: 4, done.remote: Compressing objects: 100% (2/2), done.remote: Total 4 (delta 0), reused 0 (delta 0)Receiving objects: 100% (4/4), done.$ ls -al project1total 16drwxr-xr-x 3 yuhen yuhen 4096 2010-05-17 01:11 .drwxr-xr-x 27 yuhen yuhen 4096 2010-05-17 01:10 ..drwxr-xr-x 8 yuhen yuhen 4096 2010-05-17 01:11 .git-rw-r--r-- 1 yuhen yuhen 9 2010-05-17 01:11 .gitingore-rw-r--r-- 1 yuhen yuhen 0 2010-05-17 01:11 README
代码已经克隆回来了,我们添加或修改一些文件。
$ touch INSTALL$ git status# On branch master# Untracked files:# (use "git add <file>..." to include in what will be committed)## INSTALLnothing added to commit but untracked files present (use "git add" to track)$ git add .$ git commit -am "INSTALL"[master b85e275] INSTALL Committer: yuhen <yuhen@yuhen-desktop.(none)> 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 INSTALL
在将代码提交(push)到服务器之前,首先要确认相关更新已经合并(merge)到 master 了,还应该先从服务器刷新(pull)最新代码,以确保自己的提交不会和别人最新提交的代码冲突。
$ git pull origin mastergit@192.168.1.202's password: remote: Counting objects: 3, done.remote: Compressing objects: 100% (2/2), done.remote: Total 2 (delta 0), reused 0 (delta 0)Unpacking objects: 100% (2/2), done.From 192.168.1.202:/var/git.server/project1 * branch master -> FETCH_HEADMerge made by recursive. 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 HISTORY$ git push origin mastergit@192.168.1.202's password: Could not chdir to home directory /home/git: No such file or directoryCounting objects: 6, done.Delta compression using up to 2 threads.Compressing objects: 100% (4/4), done.Writing objects: 100% (4/4), 474 bytes, done.Total 4 (delta 2), reused 0 (delta 0)To git@192.168.1.202:/var/git.server/project1 c4d7b1e..ee8cfb3 master -> master$ git logcommit ee8cfb3d14eed091e6f96d60af68ec07c05ab09dMerge: b85e275 c4d7b1eAuthor: yuhen <yuhen@yuhen-desktop.(none)>Date: Mon May 17 01:17:49 2010 +0800 Merge branch 'master' of 192.168.1.202:/var/git.server/project1commit c4d7b1e796cf52e0b600f2c7e992f304052fa8c1Author: Q.yuhen <qyuhen@hotmail.com>Date: Mon May 17 01:17:26 2010 +0800 HISTORYcommit b85e275b52812e3d9ac36da78fb8cc924380a58cAuthor: yuhen <yuhen@yuhen-desktop.(none)>Date: Mon May 17 01:13:35 2010 +0800 INSTALLcommit 723471e3421d7fdfa80bf31e5c27f5a174e95afdAuthor: Q.yuhen <qyuhen@hotmail.com>Date: Mon May 17 01:05:53 2010 +0800 Start
我们应该避免频繁向服务器提交代码,而是在一个相对稳定的版本测试通过后再进行。
基本操作就是这些了,当然我们还可以提供只读账号或者 HTTP 访问协议,相关内容可参考《Pro Git》。
http://blog.csdn.net/tody_guo/article/details/7621743
0 0
- 架设git服务器
- Gitolite架设git服务器
- git 服务器架设
- git服务器架设
- git 服务器架设
- Git服务器Gitosis架设指南
- Git服务器Gitosis架设指南
- Git服务器Gitosis架设指南
- Git 服务器 Gitosis 架设指南
- Git服务器Gitosis架设指南
- Git服务器Gitosis架设指南
- 采用gitolite架设git服务器
- Git服务器Gitosis架设指南
- 架设git服务器--使用git-daemon
- 架设git服务器--使用git-daemon
- 架设git服务器--使用git-daemon
- 4.4 服务器上的 Git - 架设服务器
- ubuntu中git服务器的架设
- a标签执行JS脚本
- PhotoView问题 ImageView no longer exists
- 10.序列和游标
- uml之交互图(时序图 和 协作图)
- ubuntu小技巧8——linux(ubuntu)下mysql安装问题
- git 服务器架设
- JavaScript:DOM编程1
- Android.mk文件语法规范及使用模板
- 如何把简单的事情变复杂?
- Android Squeezer Open Source Project
- hibernate -- 分页模糊查询中setParameter 和setParameterList
- 曾做的一个校园微博项目,让我依然印象深刻
- 创新移动互联,<阿凡题>学习神器引领搜索新体验
- Three things you should never put in your database