Git的一些基本概念

  • 设置自己的用户名和邮箱
    git config –global user.name "Your Name"git config –global user.email "you@example.com"
  • 修改到提交之间有一个缓存区
    • 提交到缓存区
      git add .
      当前所有修改提交到缓存区,也可以单独指定
    • git diff --cached
      查看缓存区和本地仓库里的差异
    • git diff HEAD
      查看已缓存和当前的区别
    • git diff
      查看当前未缓存的和本地仓库里的区别
    • git diff --stat
      显示摘要
  • 撤销缓存区里的一个更改,例如hello.rb
    git reset HEAD -- hello.rb
  • git rm file
    将file从文件缓存区、本地目录中移除
  • git rm file --cached
    只从缓存区移除,保存本地目录中的


分支操作

  • git branch
    列出可用的分支
  • git branch jser.me
    创建jser.me分支
  • git checkout -b jser.me
    检查jser.me分支是否存在,不存在就创建,并且切换过去
  • git branch -d jser.me
    删除分支jser.me
  • git merge
    其它分支合并到当前分支
  • git checkout -b gh-pages origin/gh-pages
    检出并且设置当前分支为远程分支gh-pages


Log查看

  • git log --oneline
    紧凑查看
  • git log --graph
    图形显示
  • git log erlang ^master
    查看只在erlang分支里的修改
  • git log --grep
    正则取一个log
  • git shortlog master
    生成一个简报


里程碑

  • git tag -a v1.0
    打上v1.0


恢复删除的文件

  • git checkout commitid -- pathfile


与人分享

  • git remote
    列出远端的别名
  • git remote add remotename remotepath
    以remotename命名remotepath
  • git remote rm remotename
    删除别名为remotename的远程仓库
  • git fetch
    只下载
  • git pull
    下载并更新
  • git push remotename branch
    推送本地分支branch到远程仓库remotename的branch分支

一些原则新功能尽可能的开分支,但是定期合到master上来,不要把某一个分支长

时间的开发 使用git-flow

Git的几个关键知识点

  • 有三种状态:

    • 暂存 staged
    • 修改 modify
    • 已经提交
  • git status
    • 前面状态有两列,头一列是暂存区的改动情况,如果你commit,它会提交,第二列是当前共工作区的状态,它是不会被提交的

冲突之后的解决找到冲突的地方,手工解决,然后git add filename; git commite

只合并特定的分支特定文件

  • 使用命令
    git cherry-pick #commitid
  • checkout方法
    git checkout branch -- filename


查看和远程分支的对比

  • 先把远程分支搞到本地
    git fetch origin master:temp, 从远程的origin仓库的master分支下载到本地并新建一个分支temp
  • 比较分支
    git diff temp
  • 合并特定的文件,参考上面的
  • 删除无用的分支
    git branch -d temp


git diff

  • 只显示有对比的文件
    git diff 608e120 4abe32e --name-only
  • 配合搞成压缩文件
    git diff 608e120 4abe32e --name-only | xargs zip update.zip
  • 如果不是查看每个文件的详细差别,而是统计一下有哪些文件被改动,有多少行被改 动,就可以使用‘--stat' 参数。
  • diff指定的文件


查看今天的更改

  • git log --since=1.days
 
 

最新文章

  1. Boost学习笔记(二) 时间与日期
  2. <构建之法> 第四章 结对 读后感
  3. mysql-5.6.14-winx64免安装配置
  4. android 为组件添加contextMenu上下文菜单
  5. JwPlayer播放器【去除Logo、去除版本信息】
  6. JDK5什么是新的堵塞队列线程(四)
  7. API访问客户端
  8. XListview的下拉刷新、上拉加载、用Pull解析XML
  9. freemarker常见语法大全
  10. paypal的IPN机制
  11. jvm比较详尽的内存结构
  12. 【转载】Session的生命周期
  13. poj 1228
  14. Python学习之旅(十)
  15. BMC 安装操作系统以及 驱动的处理
  16. Spring的几种注入bean的方式
  17. pytest启动浏览器,失败用例截图
  18. Java基础-处理json字符串解析案例
  19. ios中自定义图层的2种方法
  20. 互斥锁pthread_mutex_init()函数

热门文章

  1. LogstashL reference 重要章节
  2. spring整合quartz实现定时任务
  3. 类型转换(CCstring int string char UTF-8互转)
  4. Python(2.7.6) 特殊方法
  5. JS 日期工具类-基于yDate
  6. Android 调用webService(.net平台)
  7. 自定义popupmenu菜单背景色
  8. MBR与分区表备份与恢复
  9. Markdown 生成目录
  10. JavaScript学习笔记(5)——JavaScript语法之数据类型