git总结
标签(空格分隔): git
本文是对廖雪峰的git教程的总结
[TOC]
创建版本库
- 创建版本库:git init
- 把文件添加到仓库:git add <file name>
- 把本目录所有文件添加到仓库:git add .
- 提交到本地仓库:git commit -m "提交信息"
时光机穿梭
- 掌握仓库的状态:git status
- 查看文件修改状况:git diff <file name>
版本回退
- 查看提交log记录:git log
- log记录简化输出:git log --pretty=oneline
- 版本重置为上一次提交时状态:git reset --hard HEAD
- 版本重置为上上一次提交时状态:git reset --hard HEAD^
- 版本重置为某一次提交时状态:git reset --hard <提交id>
- 查询所有提交命令:git reflog
撤销修改
- 放弃对工作区的修改:git checkout -- <file name>
- 撤销对暂缓区的修改:git reset HEAD <file name>
- 查询所有提交命令:git reflog
时光机穿梭
- 创建SSH Key:ssh-keygen -t rsa -C "youremail@example.com"
添加远程仓库
- 本地仓库与远程仓库关联:git remote add origin <仓库地址>
- 第一次推送:git push -u origin master
- 以后的推送:git push origin master
从远程库克隆
- 本地仓库与远程仓库关联:git clone <仓库地址>
分支管理
创建与合并分支
- 创建dev分支:git branch dev
- 切换到dev分支:git checkout dev
- 创建并切换到dev分支:git checkout -b dev
- 查看所有分支:git branch
- 把dev分支合并到当前分支:git merge dev
- 删除dev分支:git branch -d dev
解决冲突
- 查看分支的合并情况:git log --graph --pretty=oneline --abbrev-commit
分支管理策略
- 禁用快速合并模式:git merge --no-ff -m "merge with no-ff" dev
Bug分支
- 储存工作现场:git stash
- 回复工作现场:git stash apply stash@{0}
- 删除stash内容:git stash drop
- 回复并删除上一次stash:git stash pop
- 查看stash列表:git stash list
Feature分支
- 强行删除分支:git branch -D <feature-vulcan>
多人协作
- 查看远程库信息,使用
git remote -v
;- 本地新建的分支如果不推送到远程,对其他人就是不可见的;
- 从本地推送分支,使用
git push origin branch-name
,如果推送失败,先用git pull
抓取远程的新提交;- 如果
git pull
提示“no tracking information”,则说明本地分支和远程分支的链接关系没有创建,用命令git branch --set-upstream branch-name origin/branch-name
。- 在本地创建和远程分支对应的分支,使用
git checkout -b branch-name origin/branch-name
,本地和远程分支的名称最好一致;- 从远程抓取分支,使用
git pull
,如果有冲突,要先处理冲突。
标签管理
创建标签
- 给当前分支打一个新标签:git tag <tag name>
- 给某一次提交打一个标签:git tag <tag name> <提交的id>
- 查看所有标签:git tag
- 查看标签信息:git show <tag name>
- 打标签时带上说明信息:git tag -a v0.1 -m "version 0.1 released" <提交的id>
操作标签
- 删除标签:git tag -d v0.1
- 推送标签到远程:git push origin v1.0
- 推送所有本地标签:git push origin --tags
- 删除远程标签:git push origin :refs/tags/v0.9
使用GitHub
- 在GitHub上,可以任意Fork开源仓库;
- 自己拥有Fork后的仓库的读写权限;
- 可以推送pull request给官方仓库来贡献代码。
自定义Git
- 让Git显示颜色:git config --global color.ui true
配置别名
- 用co表示checkout:git config --global alias.co checkout
- lg缩写: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"
网友评论