根据廖雪峰老师Git教程的总结
-
三棵树
Git三棵树.png
配置与提交
//配置全局用户及邮箱
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
//配置当前仓库用户及邮箱
git config user.name "Your Name"
git config user.email "email@xx.com"
//查看配置文件内容
git config --list
//初始化版本库
git init
//把文件提交到缓存区
git add <filename>
//把文件提交到 git 仓库
git commit -m "xxx"
//提交工作区所有修改,而不需要先 git add,相当于add + commit
git commit -am "xxx"
时光机穿梭
//查看当前仓库状态
git status
//查看文件修改
git diff <file>
//是工作区(work dict)和暂存区(stage)的比较
git diff
//是暂存区(stage)和分支(master)的比较
git diff --cached
//查看工作区和版本库里面最新版本的区别
git diff HEAD
//查看提交日志
git log
git log --pretty=oneline //单行显示
//版本回退到上一个版本(^表示版本数量)
git reset --hard HEAD^
//穿梭到某版本
git reset --hard <commit_id>
//查看命令日志,可以查看提交id
git reflog
//丢弃工作区修改(实际是用版本库中的文件替换掉工作区的)
git checkout -- <file>
//撤销暂存区修改
git reset HEAD <file>
//删除暂存区文件,是删除文件,不是删除修改
git rm <file>
git commit -m "xxxx"
远程仓库
//创建SSH Key(在用户目录下.ssh文件夹中:id_rsa和id_rsa.pub)
ssh-keygen -t rsa -C "youremail@example.com"
//关联远程仓库
git remote add origin git@server-name:path/repo-name.git
//首次把本地库内容推送到远程仓库
git push -u origin master
//上存报错先合并
git pull --rebase origin master
//非首次推送到远程仓库
git push origin master
//从远程仓库克隆
git clone git@server-name:path/repo-name.git
- 注意:第一次使用Git的push或者clone连接远程库会有警告
分支管理
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
分支合并图:git log --graph
//禁用 fast forward merge 方式
git merge --no-ff -m "xxx" <branch name>
//将当前工作现场“储存”起来
git stash
//恢复现场
git stash apply
//删除
git stash drop
//恢复并删除
git stash pop
//强制删除未合并分支
git branch -D <branch name>
多人协作
git remote #查看远程库信息
git remote -v #查看远程库信息详细
git push origin <branch_name> #推送本地分支,若失败,先用 git pull 抓取远程的新提交
git checkout -b dev origin/dev #创建本地 dev 并关联远程 dev 分支
git branch --set-upstream branch-name origin/branch-name #建立本地分支与远程分支得关联
git pull #抓取远程分支
标签管理
- 创建标签
git tag <name> #创建标签
git tag #查看所有标签
git tag v0.9 commit_id #对某一次 commit 打标签
git show <tagname> #查看标签信息
git tag -a v0.1 -m "version 0.1 released" commit_name #创建有说明的标签
- 操作标签
git tag -d v0.1 #删除标签
git push origin <tagname> #推送标签到远程
git push origin --tags #推送本地所有未推送到远程的标签
git push origin :refs/tags/<tagname> #删除远程标签
自定义git
git config --global color.ui true #配置颜色开启
//设置别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.unstage 'reset HEAD'
git config --global alias.last 'log -1'
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 --global core.quotepath false # 设置显示中文文件名
网友评论