git学习笔记

来源:互联网 发布:雷电软件儿 编辑:程序博客网 时间:2024/06/16 07:55
环境:
服务端:Centos6.4系统
客户端:win8系统
测试机:Win2003、xp
1.git的安装
云安装:yum install git
确认安装是否成功:git --version
2.客户端的安装
1).安装msysGit-fullinstall-1.8.4-preview20130916.exe
2).安装Git-1.8.4-preview20130916.exe和TortoiseGit-1.8.5.0-32bit.msi(或64bit)
3).在开始菜单的程序里,找到git目录下git bash并双击打开
4).生成ssh公钥操作,输入:ssh-keygen
在这里会给出三个提示,第一个提示是生成的公钥所在的路径地址以及公钥文件名,默认即可,第二个和第三个提示是密码和确认密码,
若输入密码,这本机进行的push操作,即提交代码到git的中心库时,必定要输入设置的密码,若不设置,则不需要
5).公钥生成完毕后,将公钥上传到git服务器tmp文件夹下:
scp ~/.ssh/id_rsa.pub root@199.155.122.228:/tmp
至此,本机的操作告一段落
3.gitosis的安装与配置
服务器操作:
1).安装python环境:yum install python python-setuptools
若python已安装,则直接云安装python-setuptools就可
2).下载gitosis仓库:git clone git://eagain.net/gitosis.git
3).进入gitosis,运行:python setup.py install
4).新建git账户:useradd -g git 
5).设置账户密码:passwd git 然后根据提示输入密码
6).设定根目录下tmp账户所有用户可读写权限:chmod 777 tmp
7).设定根目录tmp目录下id_rsa.pub的git用户可读写:chmod 777 id_rsa.pub
8).进入git账户:su - git
9).初始化gitosis,导入id_rsa.pub公钥:gitosis-init < /tmp/id_dsa.pub
#这里需注意,在初始化时,一定要用git账户进行,若用root账户进行操作,会导致权限错误
若看到这俩个信息返回,则表示初始化成功
Initialized empty Git repository in /home/git/repositories/gitosis-admin.git/
Reinitialized existing Git repository in /home/git/repositories/gitosis-admin.git/
10).对gitosis-admin.git仓库里的post-update脚本加可执行权限(切换到root下执行下述命令):
chmod 755 /home/git/gitosis-admin.git/hooks/post-update
至此,gitosis服务端的安装与配置大体上完成了,相关操作告一段落了。
客户端操作:
为了确保ok,可到本机里测试下ssh连接
11).在git bash窗口下,执行:ssh git@199.155.122.228
查看返回的内容,若返回下述内容,则表示gitosis服务端的配置是成功的
ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.
Connection to 199.155.122.228 closed.
ps:在进行这个验证时,可能会有三种情况:
第一种就是上述的返回信息,
第二种为提示让输入密码,输入后有可能返回上述内容,
第三种在提示输入密码后,直接切到服务器去了,输入exit退出后,返回上述内容;
这三种情况均表示gitosis的配置是ok的,即本机跟服务端的ssh连接是ok的
4.增加项目、增加用户的操作(下述操作均在客户机进行,如win2003客户端)
1).先将gitosis-admin项目clone到本地
git clone git@199.155.122.228:gitosis-admin.git
新增项目
2).进入gitosis-admin项目里,找到gitosis.conf并打开进行修改操作
[gitosis]
[group gitosis-admin]   #管理员用户组
writable = gitosis-admin   
members = Administrator@PURESERVER   
#表示Administrator@PURESERVER用户对gitosis-admin具有的是可读写权限
[group test]   #自定义的用户组
writable = git_test/test_01
git_test/test_02
git_test/test_03
members = Administrator@PURESERVER
#表示Administrator@PURESERVER对新增的几个项目(git_test文件夹下的test_01/02/ 03项目)都具有可读写权限,这里多个项目或多个用户之间的分隔,都用空格进行,若太长,则可换行
3).修改完毕后,保存,提交修改
git commit -a -m '新增项目'   #提交修改到本地的git服务端
git push origin master   #将修改同步到git服务端(即中心库),注意,修改只有推送到服务端才会起作用的
4).新建文件夹git_test,在下面新建test_01,建立本地工作区,新增文件,提交工程
mkdir git_test
mkdir test_01
git init  #这个命令就是用于建立本地工作区
touch readme.txt
git add . #把readme.txt新增进来
git commit -m '提交工程'  #提交
git remote add origin git@199.155.122.228:git_test/test_01.git
git push origin master
#上述两个命令(remote和push)是为了实现提交工程到中心库,
#注意,新工程提交,需要用到remote命令,如果不是新工程,在commit后,可直接用push命令,就可推送到服务端了
至此,新增项目以及提交项目操作到此结束
新增用户
6).在完成客户端的安装后,运行ssh-keygen命令生成公钥(如win8系统运行声称公钥)
7).将公钥(id_rsa.pub格式的文件,文件名称可能不一样,后缀名必定为pub格式)传给gitosis管理员(如win2003)
8).gitosis管理员将公钥放入gitosis-admin项目的keydir文件夹下,并重命名公钥,如xihao@LONGBOW.pub
9).修改gitosis-admin项目的下gitosis.conf的用户内容,并保存,如下,在group test用户组里,增加了xihao@LONGBOW
[gitosis]
[group gitosis-admin]   #管理员用户组
writable = gitosis-admin   
members = Administrator@PURESERVER   
#表示Administrator@PURESERVER用户对gitosis-admin具有的是可读写权限
[group test]   #自定义的用户组
writable = git_test/test_01
git_test/test_02
git_test/test_03
members = Administrator@PURESERVER xihao@LONGBOW #多个用户名之间用空格隔开
10).在git bash下运行下述命令提交修改
git add .
git commit -m '新增用户'
git push origin master
至此,新增用户,并赋予某项目读写权限的操作完成了
5.用户的下载工程、提交工程/更新、创建分支/提交分支、合并分支等操作
1).下载工程
git clone git@199.155.122.228:git_test/test_01.git
2).提交工程
git add .
git commit -m '说明修改内容'
git push origin master
3).更新工程
git pull origin master
4).查看/创建/删除/合并分支
git branch #查看本地分支
git branch -r #查看远程分支
git branch test_20131107 #创建本地分支
git push origin name  #创建远程分支
git checkout test_20131107 #切换到分支进行开发修改
git branch -d test_20131107 #删除分支
git merge 111 #如果现在所在分支为test_20131107下,则是将111分支与现在分支合并
6.相关资料
Pro Git(中文版)http://git.oschina.net/progit/
http://www.lifeba.org/arch/git_gitosis.html
http://www.blogjava.net/yuanqixun/archive/2011/05/26/351057.html
Git常用操作命令http://blog.163.com/fenglang_2006/blog/static/13366231820111171542658/
看日记学git http://roclinux.cn/?cat=72