git总结

git总结

标签(空格分隔): git


本文是对廖雪峰的git教程的总结


[TOC]

创建版本库

  • 创建版本库:git init
  • 把文件添加到仓库:git add
  • 把本目录所有文件添加到仓库:git add .
  • 提交到本地仓库:git commit -m "提交信息"

时光机穿梭

  • 掌握仓库的状态:git status
  • 查看文件修改状况:git diff

版本回退

  • 查看提交log记录:git log
  • log记录简化输出:git log --pretty=oneline
  • 版本重置为上一次提交时状态:git reset --hard HEAD
  • 版本重置为上上一次提交时状态:git reset --hard HEAD^
  • 版本重置为某一次提交时状态:git reset --hard <提交id>
  • 查询所有提交命令:git reflog

撤销修改

  • 放弃对工作区的修改:git checkout --
  • 撤销对暂缓区的修改:git reset HEAD
  • 查询所有提交命令:git reflog

时光机穿梭

添加远程仓库

  • 本地仓库与远程仓库关联: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

多人协作

  • 查看远程库信息,使用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
  • 给某一次提交打一个标签:git tag <提交的id>
  • 查看所有标签:git tag
  • 查看标签信息:git show
  • 打标签时带上说明信息: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"

参考资料

廖雪峰的git教程

你可能感兴趣的:(git总结)