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 仓库中删除


创建远程仓库

  1. 注册github账号

  2. git remote add origin git@github.com:rockycai/study.git

  3. 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


  1. 把客户段公钥放到git服务器/home/git/.ssh/authorized_keys文件里

  2. 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"