Git学习

Reading time ~1 minute

参考资料整理

  • 图形直观的: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 or git 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看到与改写
  • 分支的创建与合并
    • 官方简单而清晰的demo例子
    • git branch test 创建test分支
    • git checkout -b test 创建test分支并切换到此分支`
    • git checkout test切换分支到test
    • git branch --list or git 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 or git 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

Hello World

## hello world,github+ china+ american```array_column('',$atrr);print($a);```… Continue reading

Post with a Background Image

Published on October 26, 2013

Syntax Highlighting Post

Published on August 16, 2013