Git专题
学习笔记| git深入浅出 Part1_快速操作指南
学习笔记| git深入浅出 Part2_Git基础
常用命令
$ git init //对现有的项目进行管理
$ git clone //克隆现有的仓库
$ git add filename //添加指定文件到暂存区
$ git add . //添加所有文件至暂存区
$ git commit -m "yourmassage"
$ git push origin master //推送到远程master分支
$ git status //查看文件的状态
$ git status -s //文件状态输出报告
$ git diff //查看尚未暂存的文件更新了哪些部分,比较工作目录中当前文件和暂存区域快照之间的差异
$ git remote add origin //添加到远程仓库
版本穿梭
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
$ git log //查看各个版本号
$ git reset --hard commit_id //在各个版本中穿梭
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
撤销修改
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file
。
场景2:当你不但改乱了工作区某个文件的内容,还用git add添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file
,就回到了场景1,第二步按场景1操作。
场景3:已经git commit
提交了不合适的修改到版本库时,想要撤销本次提交,参考版本穿梭,不过前提是没有推送到远程库。
分支管理
Git鼓励大量使用分支:
查看分支:git branch
创建分支:git branch <name>
切换分支:git checkout <name>
创建+切换分支:git checkout -b <name>
合并某分支到当前分支:git merge <name>
删除分支:git branch -d <name>
注意使用:
$ git merge --no-ff <name>
合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
分支策略
在实际开发中,我们应该按照几个基本原则进行分支管理:
首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
所以,团队合作的分支看起来就像这样:
另外:忽略某些文件时,需要编写.gitignore