Git与Svn相比的优势
- Git最大的优势是:比起Svn这种中央集权的版本控制系统(没了服务器历史记录都没有了),Git是分布式版本控制系统,没了服务器,自己本地也能查看历史记录,分支操作等;还可以在本地随意更改代码,避免污染服务器;服务器启动不了的时候,客户端离线可以继续工作。
- Git分支操作比较容易,可以随便开分支做实验,跟别的互不相关,分支与分支之间的切换也非常简单。
- Git绝对不会有被lock了不能commit的情况出现。
- Git比Svn快,操作更流畅。
- 等等。
CentOs部署Git
CentOs部署Git非常简单。
- 安装Git
$ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
$ yum install git
创建一个gitadmin用户组合用户名,用来运行git服务
$ groupadd gitadmin
$ adduser gitadmin -g gitadmin
- 创建管理公钥的文件
$ cd /home/git/
$ mkdir .ssh
$ chmod 700 .ssh
$ touch .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
- 初始化Git仓库
首先我们选定一个目录作为Git仓库,假定是/home/textanalysis,在/home/textanalysis目录下输入命令
$ cd /home
$ mkdir textanalysis
$ chown git:git textanalysis/
$ cd textanalysis
$ git init --bare textanalysis.git
Initialized empty Git repository in /home/textanalysis/textanalysis.git
以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为gitadmin:
$ chown -R git:git textanalysis.git
至此,服务器上的操作结束。
Windows端使用Git
- 下载安装Git。
- 打开Git Bash
生成SSH公钥秘钥对
$ ssh-keygen -t rsa -C "examaple@email.com"
过程中,有两点需要注意:①输入公钥存储的位置,如果不填写,可以直接回车,默认存储在/c/Users/../.ssh目录下;②输入passphrase,可以直接回车默认为空,如果设定passphrase,后面提交文件就需要输入这里的passphrase才能通过。
生成公钥完成,把公钥文件id_rsa.pub的内容拷贝到服务器端/home/gitadmin/.ssh/authorized_keys这个文件中,ok,至此可以开始访问服务器上的Git项目了。
- 克隆服务器上的项目
$ cd dir(项目在本地的存储位置)
$ git clone gitadmin@10.0.0.103:/home/textanalysis/textanalysis.git
----------------习惯使用git bash 敲命令进行工作的人不用进行下一步-------------------
- 下载安装TortoiseGit
注意:安装过程中如下图这一步选择OpenSSH,免去后面的麻烦。
在本地项目目录右键可以看到TortoiseGit选项,可以在里面进行提交代码、切换分支等操作。
参考文献:
CentOsssh 公钥认证报错:Permission denied (publickey,gssapi-keyex,gssapi-with-mic).解决