版本控制
- 提交文件
git add <file>
git commit -m <description>
- 版本回溯
HEAD^^
表示之前第2个版本,HEAD~10
表示之前第10个版本
回到上一个版本
git reset --hard HEAD^
指定回到某个版本(版本id可以缩写)
git reset --hard 1094a
- 查看当前版本的状态
git status
分支
- 查看当前分支,
*
表示当前选择的分支
例:
$ git branch
* dev
master
- 切换/新建/删除分支,
-b
表示创建新的分支
切换分支: git checkout <branchname>
新建分支: git branch <branchname>
删除分支: git branch -d <branchname>
例:
$ git checkout master
Switched to branch 'master'
$ git checkout -b dev1
Switched to a new branch 'dev1'
$ git branch -d dev1
Deleted branch dev1 (was c300077).
- 合并分支
git merge <branchname> 合并指定分支到当前分支
git merge --no-ff -m <message> <branchname> 不使用
例:
$ git merge dev
Updating 098361e..d94264e
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)
$ git merge --no-ff -m "merge with no-ff" dev
Already up to date.
远程库
- 查看远程库的信息
例:
$ git remote
origin
$ git remote -v
origin https://github.com/zhuat/testdemo.git (fetch)
origin https://github.com/zhuat/testdemo.git (push)
remote -v
显示的是可以抓取和推送的origin
的地址
- 推送分支到远程仓库
git push <remotename> <branchname>
git push -u <remotename> <branchname> -f
指定本地分支dev
与远程分支origin/dev
的链接,-u
指定默认的主机,以后可以不加任何参数使用git push
。-f
本地分支覆盖远程分支
git branch --set-upstream-to=origin/dev dev
手动建立origin/dev
和dev
追踪关系
- 抓取分支
git pull <远程主机名> <远程分支名>:<本地分支名>
如果远程分支(next)要与当前分支合并,则冒号后面的部分可以省略。
git pull <远程主机名> <远程分支名>
日志
- 显示提交日志信息
git log
--mergs
- 查看所有合并过的提交历史记录
--no-merges
- 查看所有未被合并过的提交信息
--author=someonet
- 查询指定作者的提交记录
--graph
- 查看提交记录点线图
$ git log --author=maxsu
--since
,--affter
- 仅显示指定时间之后的提交(不包含当前日期)
--until
,--before
- 仅显示指定时间之前的提交(包含当前日期)
$ git log --before={3,weeks,ago} --after={2018-04-18}
日志一行显示,并缩写commit id
git log --pretty=oneline --abbrev-commit
显示输入命令的记录
git reflog
标签
- 查看标签,按字母排序列出
git tag
查看标签详细信息
git show <tagname>
- 创建标签
当前分支版本创建标签
git tag <name>
当前分支的指定版本创建标签
git tag <name> <commit id>
创建并指定标签信息
git tag -a <name> -m <description>
- 删除标签
git tag -d <tagname>
删除远程标签
git push <remotename> :refs/tags/<tagname>
- 推送标签到远程
git push <remotename> <tagname>
一次性推送全部尚未推送到远程的本地标签
git push <remotename> --tags