本篇介绍如何在CentOS系统下建立Git仓库,并结合pycharm中自带的Git插件管理代码
CentOS系统下建立Git仓库
1. 服务器安装Git
yum install git # centos
2. 创建git用户组
groupadd git
3. 在用户组下创建一个用户,名字也是git
adduser git -g git
4. 设置用户仅具有git-shell权限,而不是为了登录
打开用户文件
vi /etc/passwd
找到git用户,修改登录方式,将 bin/bash 修改为git-shell
git: x:1000:1000::/home/git:/bin/bash -> git: x:1000:1000::/home/git:/bin/git-shell
5. 访问客户端生成公钥密钥
创建公钥密钥对,目的是为了ssh访问的时候可以无需经过密码验证
当客户端为Windows的时候,需要在本地先安装Git,这里默认Linux客户端已经安装完Git。通过git-bash的命令行来生成公钥密钥。
Git下载地址
生成公钥密钥对
ssh-keygen -t rsa
执行命令后的提示语句
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/billhu/.ssh/id_rsa): # 输入公钥密钥的文件名,默认名字为id_rsa, 括号里时生成公钥密钥后的保存路径
Enter passphrase (empty for no passphrase): # 使用密钥时需要输入的密码,建议不输入
Enter same passphrase again: # 确认输入的密码,建议不输入
生成完毕后的范例
Your identification has been saved in ssh_key.
Your public key has been saved in ssh_key.pub.
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx billhu@DESKTOP-7LJ5VBH
The key's randomart image is:xxxxx
生成的文件(windows),带后缀名pub的为公钥,没有后缀名的是私钥
共
6. 在服务器上建立文件保存公钥
还是在刚刚建立的git用户名下建立 .ssh ·文件夹,并创建 authorized_keys 作为保存客户端公钥的文件
cd /home/git/
mkdir .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
chown -R git:git .ssh
7. 复制客户端公钥内容到服务器的authorized_keys
将客户端生成.pub结尾的公钥copy到服务器上,并复制公钥里的内容到authorized_keys,因为git服务器是装在CentOS系统上,用以下命令可以将.pub的公钥内容重定向到authorized_keys
cat xxx.pub > authorized_keys
8. 初始化git仓库
在服务器的/var下创建一个git目录,名字可以任意
cd /var
mkdir gitrepos #创建git仓库目录
chown -R git:git gitrepos # 修改组权限
chmod 777 gitrepos # 修改仓库目录权限
cd gitrepos
git init --bar git_project_repos.git # 创建一个名字叫git_project_repos.git的git仓库
9. 克隆git仓库到本地
git clone git@server_ip:/var/gitrepos/git_project_repos.git
使用Pycharm中自带的Git插件管理代码
pycharm中自带了版本管理插件,可以方便地通过UI操作来执行Git的指令,本编主要讲commit/push/pull的界面操作
Pycharm下载地址:官网
git命令操作手册:官方英文文档 , Git中文教程
1. 从Git服务器克隆仓库到本地
安装完Pycharm,从VCS->Checkout from Version Control->Git,将仓库下载到本地
URL中输入刚刚创建的服务器Git的地址,如例子所示: git即为刚刚创建的服务器git用户,hostname可以是服务器IP或者域名,冒号后即为git仓库在服务器上的路径。点击Test测试连接,如果成功连接,会出现connection successful的提示,失败则无提示。
客户端只有将其公钥加入到了服务器的authorized_keys中,才能连接成功
2. 执行Commit/Push命令
下载完仓库后,打开仓库会显示目前仓库里的内容。注意Git克隆下来的后的仓库是跟服务器上的仓库是完全一样的,本地仓库可以执行提交/比较等操作,只有执行pull/push后,才是真正和服务器上的仓库内容进行同步。
修改文件并进行本地提交,注意pycharm窗口下方的Version Control的Local Changes会显示用户对仓库文件的所有操作。在这个例子中,我们将test_file的后缀名改成.txt
右键->执行提交操作
点击Commit是将文件提交至本地Git仓库做版本管理,非同步到服务器Git
点击Commit and Push,将执行提交本地操作和同步至服务器两个动作
点击完成后,会弹出是否要进行Push Commit的操作,这里点击Push,会将修改同步至服务器Git
Push Commits的框中,会显示所有本地版本管理的历史记录Comments,用户可以在最终同步至Git服务器仓库前核对本地改动日志
执行Pull命令
如果是多人同时针对同一个Git仓库的改动,则需要对本地进行同步代码操作
右键->Git->Repository->Pull