Git的原意是"the stupid content tracker",当下我们一般当作是"global information tracker"的缩写。Git作为版本控制工具,表面上看处理的是内容,实质处理的是时间。在Git构建的平行宇宙中,我们可以在时间线里自由漫步。
![c0c790c2ba9e484c59aa44a33a0b714c.png](https://i-blog.csdnimg.cn/blog_migrate/f30738b04162d33d1e85ea25cc798a8a.jpeg)
0.Git介绍
Git的主要特点是稳定,运行快速,独立的环境及高效的合并。
Git处理的对象有5个:1)工作目录 working directory 2)预备区 staging area 3)提交历史 commit history 4)开发分支 developmnent branches 5)远程库 remote
Git的主要操作分为4类:1)配置Configure 2)记录 Recording3)撤销 Undoing4)分支 Branch 5)远端remote。
接下来,我们逐一查看。
1.Git 配置
此处简单,配置就是git-config:
git config --global user.name spiritmegit config --global user.email abst.proc.do@qq.com
最后可以统览全部的信息:
$ git config --listuser.name=AbstProcDouser.email=abst.proc.do@qq.comcore.repositoryformatversion=0core.filemode=truecore.bare=falsecore.logallrefupdates=trueremote.origin.url=git@github.com:AbstProcDo/ORG.gitremote.origin.fetch=+refs/heads/*:refs/remotes/origin/*branch.master.remote=originbranch.master.merge=refs/heads/masterbranch.develop.remote=originbranch.develop.merge=refs/heads/developbranch.develop.pushremote=origin
2.Git记录变更
Git commit changes 是git操作最重要的环节,全部的命令总结如下:
# 预备区git add # 添加文件到预备区git rm --cached # 从预备区删除文件,此操作并不删除工作目录下的文件# 检测预备区域git statusgit diffgit diff --cached# 提交git commit# 检测提交记录git log --onelinegit log since until# 打标签git tag -a v0.1 -m 'unstable release'
3.Git撤销变更
变更的撤销包含三个方面,一是在工作区,二是在预备区,三是在整个commit history。这些方面git有各种异常复杂的命令,我们化繁为简,去芜存菁。
# 跳转到最近的工作区git reset --hard HEADgit clean –f# 将单个文件拉入到工作区git checkout HEAD # 撤销预备区的文件git reset HEAD #注意区分 git reset –-hard HEAD# 撤销commitgit reset HEAD~1git revert git commit –amend
4.Git分支
分支是git的菁华之所在,神奇的帮助我们在平行宇宙的时间线中遨游。
# 查看分支git branch# 创建分支git branch a-new-branch # 文件中查看.git/refs/heads/# 删除分支git branch -d branch-namegit branch -D branch-name # 当心# 跳转到分支git checkout branch# 创建与跳转两步合一git checkout -b branch# 甚至可以直接使用git checkout tag(id) 到 detached heads中# 合并分支git merge# 变基git rebase branchgit rebase -i branch
5.Git 远程
git-remote命令与世界构建关联。
# 查看remotegit remotegit remote -v# 添加remotegit remote add # 删除remotegit remote rm # 获取远端仓库git fetch# 获取全部分支git branch -r# 查看远端分支的状态git log master..origin/master# 合并远端分支git merge origin/mastergit rebase origin/mastergit pull origin/mastergit push
6.收尾总结
本文我们总结了git处理的5个对象及4类操作,思维导图如下:
![88db442ff8b7738c4dd193e0ccedd07b.png](https://i-blog.csdnimg.cn/blog_migrate/4ea84bd858e0eea81cad6cd03a094949.jpeg)