从18年3月份接触iOS开发,使用git到现在快两年时间了,记录一次深入学习Git并总结。
Git
Git是目前世界上最先进的分布式版本控制系统(没有之一),是有liunx之父管理liunx版本用C语言编写的版本控制系统。
集中式与分布式(SVN与Git)
集中式
集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。集中式最大的毛病是要联网才能工作,如果网路状况不好,提交一个文件需要很长时间,对于效率来讲,非常不友好。
分布式
分布式版本控制系统没有中央服务器,每个主机都拥有一个完整版本库,如果A和B同时修了一个文件,只需要把修改的部分推送给对方即可。
Git 常用命令使用
- git init 初始化仓库
- git add readme.txt 把文件添加到仓库
- git commit -m”添加了一个文件” 把文件提交到仓库
- git status 查看仓库当前状态
- git diff 查看修改内容
- git log 查看历史提交记录 加上 –pretty=oneline参数
- git reset –hard head^ 回退上一个版本, head~100 上100个版本 head^^ 上两个版本 其中Git内部有一个指向当前版本的HEAD指针,改变指针的指向即有速度快的特点。
- git reflog 查看每一次(历史)命令
- git checkout – readme.txt 撤回修改到最近一次git commit或者git add时的状态 – 重要,如果没有 命令的意思为 切换到另外一个分支
- git reset head readme.txt 把暂存区的修改撤销掉。
- git rm 删除一个文件
- git push -u origin master 推送到远程仓库 第一次推送需要 -u
- git remote add origin git@server-name:path/repo-name.git 关联一个远程库
- git clone 从远程仓库克隆一个仓库
- git checkout -b dev 创建并切换分支
- git branch dev 创建分支
- git checkout dev 切换分支
- git branch 查看当前分支
- git merge dev 将dev 分支合并到当前分支
- git switch -c dev 创建并切换到dev分支
- git switch master 切换到master
- git branch -d dev 删除dev 分支
- git log –graph命令可以看到分支合并
- git branch -D
强行删除 - git remote -v查看远程仓库的信息