环境:
服务器 centos7 + git (version2.17.0);
客户端 windows10 + git(version 2.16.3windows1)
- 安装最新版本的git
- 使用命令yum install -y git安装的是(centos中自带的git版本,centos7最高版本是git1.8),可在该网址上https://github.com/git/git/releases查看最新的git版本;
- 安装之前先,使用 git –version命令查看是否已经安装,若没有可直接安装,若已经存在旧版本,可以先使用yum remove git进行卸载;
- 下载最新版本
wget https://github.com/git/git/archive/v2.17.0.tar.gz;
- 解压 tar zxvf v2.17.0.tar.gz
- 进入解压后的版本进行编译安装
cd git-2.17.0
make prefix=/usr/local/git all
make prefix=/usr/local/git install
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile
source /etc/profile
- 查看git版本
Git –version git version 2.17.0.
- 创建git用户组及用户
Groupadd git
Useradd git -g git
Passwd git
- 禁用shell登陆
Root用户编辑/etc/passwd文件
git:x:1001:1001::/home/git:/bin/bash初始化
修改为:
git:x:1001:1001::/home/git:/usr/local/git/bin/git-shell
- 初始化git仓库
在home/git用户目录下创建 mkdir test.git
Cd test.git
Git –bare init
Chown -R git:git /home/git/test.git
- 创建证书登陆:
- 切换到git用户中 su git;
- 查看/home/git目录下是否又.ssh文件 cd /home/git, ls -a;
- 若没有创建.ssh文件mkdir .ssh ;
- 同时只有git用户有读写执行的权限 chmod 700 .ssh;
- 生成公私钥文件:ssh-keygen -t rsa;
- 创建authorized_keys文件 touch authorized_keys;
注意:将.ssh文件夹赋予700的权限,authorized_keys文件赋予600的权限。
- 客户端用户向管理员提交公钥文件:
将客户端用户生成的rd_rsa.pub文件发送给服务器,将客户端的公钥文件内容拷贝到authorized_keys文件中
Catrd_rsa.pub >> authorized_keys
注意事项:
- Git错误提示:fatal: Not a git repository (or any of the parent directories): .git
由于没有初始化git本地版本管理仓库,所以无法执行git命令;
解决方式:在操作之前执行以下命令:git init
- 初始化客户端工作环境(重要):
Git config --global user.name “username”
Git config --global user.email email@163.com
Git config --global core.editor vim
- 客户端使用步骤如下:
- 初始化git进入一个空的工作目录中:git init
- 新建一个文件并编辑后保存需要上传到远程echo “test add code git repository”>readme.txt
- 把新增的文件增加到暂存区中: git add readme.txt
- 提交文件到本地仓库中并添加注释信息: git commit -m “提交新增的文件到dev分支中”
- 将分支信息推送到远程服务器中: git push origin 分支名称
- 远程分支信息合并到主分支上:1)先切换到master分支上 git checkout master ;2)多人开发需要把远程master上的pull下来git pull origin master;3)把远程分支的信息合并到主分支master上 git merge 远程分支。
- 创建远程分支步骤:
- 首先创建本地分支 git branch 分支名test;
- 再切换到本地分支 git checkout 分支名test;
- 远程分支就是本地分支push到服务器上的 git push origin 分支名test;
- 查看分支目录 git branch -a 所有分支名称显示出来,包含本地分支及远程分支;
- 提交分支数据到远程服务器
git push origin <local_branch_name>:<remote_branch_name>;
说明:若当前不在本地分支中,可使用上面的方式提交,若在本地分支,可以直接git push origin remote_branch_name。
常用技巧:
查看当前文件与git版本库中的差别:git diff 当前文件名称
将当前工作目录中的所有文件都一起添加到暂存区域中 git add .
保留工作区的文件,删除暂存区的文件: git rm --cache 文件名称
从Git暂存区和工作目录中一起删除: git rm -f 文件名称
删除Git版本仓库内的文件快照: git rm 文件名称
查看所有的历史记录: git reflog