git安装
centos 安装
yum install -y epel-release
yum install -y git
tag:ubuntu apt-get install git
git设置
在用户的家目录下有个.gitconfig文件,里面记录用户的姓名和邮箱地址
git config --global user.name "name"
git config --global user.email "mail address"
git 命令
git init 让这个目录变成git管理仓库
git add file 把文件添加到仓库
git commit -m "XXX" 添加完后需要提交
git status 查看当前仓库中状态
git diff file 对比file做了什么修改
git log 查看所有提交git仓库记录
git log --pretty=oneline 一行显示
git reset --hard xxxx 可以回到指定版本
git reflog 可以显示所有的版本
git checkout -- XXX 回复到上一次提交
git rm file 在git 仓库中删除
创建远程仓库
注册github账号
git remote add origin git@github.com:rockycai/study.git
git push -u origin master
克隆一个远程仓库
git clone git@github.com:rockycai/study.git
分支管理
git branch //查看分支
git branch rockycai //创建分支
git checkout rockycai //切换到rockycai分支下
git branch -d rockycai //删除分支
git branch -D rockycai
现场回复
git stash 保留现场
git stash list 查看保存的现场
git stash apply 恢复现场
git stash apply stash@{1}
远程分支
git remote -v 本地新建分支不推送到远程
git ls-remote orgin 查看远程分支
git push origin branch-name
git pull 抓取远程提交
git checkout -b branch-name origin/branch-name
标签管理
git tag v1.0 给master分支打一个标签
git tag 查看所有分支
git log --pretty=oneline --abbrev-commit //查看历史commit
git tag v1.0 XXX 针对历史commit打标签
git tag v1.0 -m "XXX" XXX
git tag -d v1.0 删除标签
git push origin v1.0 //推送指定标签到远程
git push origin :refs /tags/v1.0 删除远程标签
别名:
git config --global alias.ci commit
git config --global --unset alias.br 删除别名
搭建git服务器
1.yum install -y git
2.添加git用户,并设置shell为/usr/bin/git-shell ,不让用户能正常登陆,只能使用git-shell
useradd -s /usr/bin/git-shell git
cd /home/git
3.创建authorized_keys文件
mkdir .ssh
touch .ssh/authorized_keys
chown -R git.git .ssh
chmod 600 .ssh/authorized_keys
定好存储仓库目录
mkdir /data/gitroot
cd /data/gitroot
git init --bare sample.git 创建一个仓库
chown -R git.git sample.git
把客户段公钥放到git服务器/home/git/.ssh/authorized_keys文件里
git clone git@ip:/data/gitroot/sample.git
tag:
git remote add origin ssh://git@ip/sample.git
git push origin rockycai:master // 提交本地rockycai分支 作为 远程的master分支
git push origin rockycai:rockycai // 提交本地rockycai分支作为远程的rockycai分支
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"