git 命令行的使用

毕业快两年,前一年一直在使用git图形化管理工具,最近喜欢上了命令行操作,简单暴力美啊,随心所欲的感觉真的不错,以致于放弃了SourceTree等工具

提到命令行,推荐一本书,《git权威指南》 ,适合边读边实践

简单理解基础概念

工作区:你的工作目录
暂存区:git add 之后
本地版本库:git commit 之后
远程版本库:git push 之后

常见命令

  • git init 初始化一个git仓库,也就是在你的工作目录下创建一个.git文件夹
  • git remote add 别名 仓库地址 添加一个远程仓库地址
  • git remote rm 删除一个仓库
  • git remote -v 列出仓库列表
  • git fetch 获取远端分支
  • git branch -r 查看全部分支,包括远端分支
  • git pull
  • git push
  • git push -f 强推,不建议使用,生产环境建议ban掉此操作
  • git log
  • git diff 可以diff两个commit之间的差异
  • git show
  • git stash 贮藏,还原一个干净的工作区
  • git stash pop 弹出第一个贮藏
  • git checkout branchName 切换分支
  • git checkout commitId 切换到某个节点,这时将处于指针分离状态
  • git checkout fileName || . 抛弃工作区的修改,已经提交到暂存区的不会改变
  • git reset --hard 重置到head指针指向,会抛弃工作区和暂存区所有的修改
  • git reset commitId 重置到某个节点
  • git revert 神器啊!!!回滚全靠它,这里有一个小小的建议,每次提交只干一件事,类似于设计模式中的单一原则,相信我,回滚的时候,你会感谢自己为何如此机智
  • git bisect 二分查找,良好的提交习惯就用不到它
  • git patch 打补丁
  • git apply 应用补丁

开启颜色输出

git config --global color.ui.true
git config --global color.status auto  
git config --global color.diff auto  
git config --global color.branch auto  
git config --global color.interactive auto

命令简化

git config --global alias.st status
git config --global alias.ci commit
git config --global alias.br branch
git config --global alias.co checkout
git config --global alias.lg 'log --graph'

每个命令配上不同的参数,会有不一样的惊喜,具体这里就不写了,有问题,下方可以问我。

设置保护分支

应用场景:某个分支只有master才能push,这时你就可以把master分支设置成保护分支,别人只能通过merge request向你发起请求,经你code review 后合并到主线分支,流程很规范,也最容易把控,减少线上出问题的风险

你可能感兴趣的:(工具,git)