故事的开端在某个目录下:
$ git init
推送修改到暂存区(从工作区到暂存区):
$ git add <file1 file2>
提交修改到当前分支(从暂存区到分支):
$git commit -m "introduction"
提交说明应该写的简洁明了,参见Angular 规范,或者这里。Head提要如下:
type(必需)、scope(可选)和subject(必需)
type用于说明 commit 的类别,只允许使用:feat:新功能(feature)、fix:修补bug、docs:文档(documentation)、style: 格式(不影响代码运行的变动)、refactor:重构(即不是新增功能,也不是修改bug的代码变动)、test:增加测试、chore:构建过程或辅助工具的变动
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同
subject是 commit 目的的简短描述,不超过50个字符。以动词开头,使用第一人称现在时。第一个字母小写。结尾不加句号(.)
查看库状态:
$git status
查看文件改动:
$ git diff
查看改动日志(--pretty=oneline 可以使显示更简洁):
$ git log
带参数$ git log --graph --pretty=oneline --abbrev-commit。
查看所有commit id:
$ git reflog
改变当前版本指针(HEAD是当前位置,加一个^表示上一个,HEAD~100表示前100个,也可以直接接commit ID):
$ git reset --hard HEAD^
版本库里的版本替换工作区的版本:
$ git checkout -- file
从版本库中删除该文件,git rm删掉,并且git commit。
把本地库的所有内容推送到远程库上:
$ git push -u origin master
$git checkout master仅切换分支,git checkout命令加上-b($git checkout -b)参数表示创建并切换分支。用git branch命令查看当前分支。合并某分支到当前分支$git merge <name>。$git branch -d 删除分支。
$git merge --no-ff -m"merge with no-ff" 保存合并记录的分支合并方式。
$git stash 保存当前工作现场。$git stash list查看保存的工作。$git stash apply恢复,但是恢复后,stash内容并不删除,你需要用git stash drop来删除。或者直接git stash pop,恢复的同时把stash内容也删了。
敲命令git tag 可以打一个新标签。
可以用git show <tagname>查看标签信息。