参考资料整理
- 图形直观的:http://ndpsoftware.com/git-cheatsheet.html
- 官方doc:https://git-scm.com/doc
- 里面有很多参考资料的连接
- 图形:http://justinhileman.info/article/git-pretty/git-pretty.png
- 国内博客https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137402760310626208b4f695940a49e5348b689d095fc000
- 官方book: https://git-scm.com/book/zh/v2
重点内容
- 帮助
git log --help
orgit help log
- 配置git :
git config
,按照影响范围分三层- system层,针对所有用户配置。例如
git config --system log.date iso
,可在/etc/gitconfig中看到 - global层,针对当前用户。
git config --global log.date iso
,可在~/.gitconfig
中看到与改写 - local层,default ,针对当前repository。
git config log.date iso
,可在当前资源库的.git/config
看到与改写
- system层,针对所有用户配置。例如
- 分支的创建与合并
- 官方简单而清晰的demo例子
git branch test
创建test分支git checkout -b test
创建test分支并切换到此分支`git checkout test
切换分支到testgit branch --list
orgit branch
列出所有分支
- 合并
git merge hot_fix
,将hot_fix分支合并到当前分支- 有冲突时,运用工具软件合并 Use vimdiff as git mergetool - Ruslan Osipov
- Log 日志
- https://git-scm.com/docs/git-log/1.7.12.2
- https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%9F%A5%E7%9C%8B%E6%8F%90%E4%BA%A4%E5%8E%86%E5%8F%B2
- 最新 的几次log 提交
- log 本身就是按照从新至旧的顺序展示的。限制条数可以直接-3,就是显示最近3条
- 怎么按照某人+时间段查询
- 按照作者+时间段查询 :
git log --author='kaisa316' --since='2018-08-15 00:00:00' --until='2018--9-26'
- 显示log中的文件:
git log --name-only
orgit log name-status
- merge 之后,log中没有显示文件了。可以通过
-m
参数解决
- 按照作者+时间段查询 :
- 时间格式怎么本地化
git log.date --global iso
,格式类似Date: 2018-01-07 22:03:43 -0500
git config --global log.date format:'%Y-%m-%d %H:%M:%S'
git log --date=format:'%Y-%m-%d %H:%M:%S'
- –stat 统计
- -Syy 仅显示添加或删除yy关键字的记录
- 回撤(恢复到历史某个版本)
-
git checkout -- xxx.php
, 本地修改了,但还没有放到index暂存区,用checkout -git reset commit_id
,workspace 本地中的文件不会被更新,index会被更新。 -git reset --hard commit_id
, workspace 和index都会被更新成commit_id的内容 - diff ,文件不同对比
- 默认
git diff
是有个简单的文本比较,但不太方便。 git difftool
,这个可以使用vimdiff,推荐。可以通过使用别名,git config –global alias.df difftool进行简化.- diff可以指定commit号进行比较, for example:
git df 111b9d9 d112da3 .vimrc
- Difference between git HEAD and the current project state? - Stack Overflow
- 默认
- 暂存(stash)
- 忽略特殊文件
远程支持
- create a new repository on the command line
echo “# lumen_demo” » README.md git init git add README.md git commit -m “first commit” git remote add origin https://github.com/kaisa316/lumen_demo.git git push -u origin master
- push an existing repository from the command line git remote add origin https://github.com/kaisa316/lumen_demo.git git push -u origin master