1、创建版本库
$ mkdir test //创建目录
$ git init //把test目录变成可管理的仓库
2、把文件添加到仓库
$ git add readme.txt //把readme.txt文件添加到仓库
$ git add . //提交当前目录下所有文件及文件夹到仓库
$ git commit -m "wrote a readme file" //把修改文件提交到仓库
3、查看历史记录及版本管理
$ git log //查看历史记录
$ git log --graph --pretty=oneline --abbrev-commit //查看历史记录
$ git rebase //查看历史记录
$ git reset --hard HEAD^ //回退到上一版本
$ git reset --hard 1094a //回退到指定版本版本
$ git status //查看状态
$ git diff HEAD -- readme.txt //查看不同
$ git diff HEAD //查看不同
$ git checkout -- readme.txt //撤回修改
$ git reset HEAD readme.txt //把暂存区的修改撤销掉
$ git rm -r -f --cached ./ //清除缓存
$ git fetch --all //下载远程库,不合并
$git reset --hard origin/master //指向刚刚下载的最新版本(本地未提交的修改将被覆盖)
4、标签管理
$ git tag //查看标签
$ git log --pretty=oneline --abbrev-commit //查看标签
$ git tag v1.0 //增加标签
$ git tag v0.9 f52c633 //在指定记录上打标签
$ git tag -a v0.1 -m "version 0.1 released" 1094adb //创建带说明的标签
$ git show v1.0 //查看标签信息
$ git tag -d v1.0 //删除标签
$ git push origin v1.0 //推送标签到远程库
$ git push origin --tags //推送所有标签到远程库
$ git push origin :refs/tags/v1.9 //删除远程库标签(需要先删除本地标签)
5、分支管理
$ git checkout -b dev //创建dev分支
$ git branch //查看当前分支
$ git checkout master //切换为master分支
$ git merge dev //合并dev到当前分支(Fast forward)
$ git merge --no-ff -m "merge with no-ff" dev //合并dev到当前分支(禁用 Fast forward)
$ git branch -d dev //删除分支(未合并的话分支删除不了)
$ git branch -D dev //删除分支(强行删除分支)
$ git stash //保存当前分支状态
$ git stash list //查看保存的工作状态
$ git stash apply //恢复保存的工作状态但不删除保存记录
$ git stash pop //恢复保存的工作状态并删除保存记录
6、远程仓库
$ ssh-keygen -t rsa -C "youremail@example.com" //创建SSH KEY
$ git remote add origin git@github.com:yourname/project.git //关联远程库(只需要关联一次)
$ git push -u origin master //第一次关联需要加-u
$ git push origin master //已关联,不需要-u
$ git clone git@github.com:yourname/project.git //克隆远程库
$ git remote //查看远程库信息
$ git remote -v //查看远程库详细信息
$ git pull //同步远程服务器数据
$git pull origin master --allow-unrelated-histories //同步远程服务器数据,将会与本地库合并
$ git branch --set-upstream-to=origin/dev dev //本地分支与远程分支关联
7、配置别名
$ git config --global alias.st status //把status别名设置为st
$ git config --global alias.co checkout //把checkout别名设置为co
$ git config --global alias.ci commit //把 commit别名设置为ci
$ git config --global alias.br branch //把branch别名设置为br
$ 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"
配置文件 .git/config
当前用户配置文件: .gitconfig