CentOS 7 安装 Git 服务器
原创
©著作权归作者所有:来自51CTO博客作者Tom马的原创作品,请联系作者获取转载授权,否则将追究法律责任
服务端:192.168.1.114
客户端:192.168.1.73
一、服务器端安装 Git
1、安装
2、查看
# 查看版本
git --version
git version 1.8.3.1
3、服务器端创建 git 仓库
# 新建一个目录
mkdir -p /opt/git
cd /opt/git
# 初始化仓库
git init --bare rubis.git
# 初始化空的 Git 版本库于 /opt/git/rubis.git/
# 使用 --bare 参数初始化的仓库,我们一般称之为裸仓库, 因为这样创建的仓库并不包含工作区 ,
# 也就是说,我们并不能在这个目录下执行我们一般使用的 Git 命令。
# 此时,客户端就可以进行clone或者remote add此仓库了。
# 初始化成功后,查看rubis.git
ls rubis.git
branches config description HEAD hooks info objects refs
4、创建用户,运行 git 服务
# 创建运行用户
useradd git
passwd git
# 授权
chown -R git:git /opt/git
vi /etc/passwd
# git用户可以正常通过ssh使用git,但无法登录shell
# 因为我们为git用户指定的git-shell每次一登录就自动退出
git:x:1007:1007::/home/git:/bin/bash/git-shell
二、客户端安装 Git
客户端口生成密钥,并把公钥发给我服务器端
客户端操作:这里服务器端用户是刚才创建的 git 用户
ssh-keygen -t rsa
ssh-copy-id git@192.168.1.114
1、安装与配置
# 安装
yum install git -y
# 客户创建用户名和邮箱
# 查看 git config --list
git config --global user.name 'devops'
git config --global user.email 'devops@qq.com'
2、 客户端通过克隆拉取远程仓库
# 创建目录
mkdir -p /opt/dev
# 切换
cd /opt/dev
# 成功后,会在当前目录生成一个 rubis 文件夹
git clone git@192.168.1.114:/opt/git/rubis.git
3、客户端添加与提交
# 切换
cd /opt/dev/ruibs
# 创建一个文件,并写入内容
vi hello.txt
# 添加到暂存区
git add hello.txt
# 查看状态
git status
# 提交 master 分支
git commit -m 'hello world'
4、把当前仓库 push 上传到 远程仓库
# 首次提交加 -u
git push -u origin master
三、分支
通常情况下,当我们需要添加一个新功能的时候,是不能在主分支上 master 直接修改的,这时,需要创建一个新的分支,等功能开发并测试完成之后,再合并到主分支,最后把分支删除。
1、客户端创建分支
# 创建一个 dev 分支
git branch dev
# 查看分支
git branch
# 切换分支
git checkout dev
# 创建一个文件
vi goods.php
# 添加
git add goods.php
# 提交
git commit -m 'goods.php'
# 同步远程分支,这里服务器自动生成一个 dev 分支
git push --set-upstream origin dev
# 切换主分支 master
git checkout master
# 把dev分支合并到master
git merge dev
# 推送到远程
git push
# 删除本地dev分支
git branch -d dev
# 删除远程服务器 dev 分支
git push origin --delete dev
相关命令
# 信息
git add 添加到暂存区
git commit 添加到本地版本库,每次生成一个版本号
# 操作
git add <file> 提交一个文件
git add -A 提交所有文件
# 日志
git log --oneline 查看提交历史,查看 commit_id
git log -p <file> 查看指定文件提交历史
git blame <file> 以列表形式查看指定文件提交历史
# 撤消
git checkout <file> 拉取暂存区文件 并将其替换成工作区文件
git reset HEAD <file> 拉取最近一次提交到版本库的文件到暂存区 改操作不影响工作区
# 回滚
git reset --hard HEAD 回退到当前版本号
git reset --hard HEAD^ 回退到上一次版本号
git reset --hard <commit_id> 回退到特定版本号
git reflog 查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
# 分支
git branch 查看本地分支
git branch -v 查看本地和远程分支
git branch <branch> 创建分支
git checkout <branch> 切换分支
git branch -d <branch> 删除本地分支
git checkout -b <branch> 创建并切换分支
git merge <branch> 合并某分支到当前分支
git branch -vv 查看分支关联
# 远程操作
git remote -v 查看远程版本库信息
git remote update origin 本地更新远程的分支
git remote show <remote> 查看远程指定版本库信息
git remote add origin https://*** 添加远程仓库
三、本地如何拉取,推送指定远程分支
git pull 从远程拉取最新版本到本地 自动合并 merge
git fetch 从远程获取最新版本到本地 不会自动合并 merge
pull操作
1、将远程指定分支 拉取到 本地指定分支上:
git pull origin <远程分支名>:<本地分支名>
2、将远程指定分支 拉取到 本地当前分支上:
3、将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支)
push操作
1、将本地当前分支 推送到 远程指定分支上
git push origin <本地分支名>:<远程分支名>
2、将本地当前分支 推送到 与本地当前分支同名的远程分支上
3、将本地当前分支 推送到 与本地当前分支同名的远程分支上(需先关联远程分支)
将本地分支与远程同名分支相关联,成功后,远程端自动创建一个与本地同名分支
git push --set-upstream origin <本地分支名>
四、新仓库提交
git init 初始化仓库
git add .(filename) 添加文件到本地仓库
git commit -m "first commit" 添加文件描述信息
git remote add origin + 远程仓库地址 链接远程仓库,创建主分支
git pull origin master 把本地仓库的变化连接到远程仓库主分支
git push -u origin master 把本地仓库的文件推送到远程仓库