git学习资源
 
  • star 的作用是收藏,目的是方便以后查找。
  • watch 的作用是关注,目的是等作者更新的时候,你可以收到通知。
  • fork 的作用是参与,目的是你可以增加新的内容,然后 Pull Request,把你的修改和主仓库原来的内容合并。

fork可以将别人的工程复制到自己账号下。但有一个缺点是:当源项目更新后,你fork的分支并不会一起更新,需要自己手动去更新。

fork之后,一般可以看到一个带有自己git名称的ssh或者https访问的地址。例如:
git@github.com:fuleying/parrots.git       可以ssh无密码git push!!
参与别人的开源项目,只需访问它的项目主页,点“Fork”就在自己的账号下克隆了一个仓库,
然后从自己的账号下使用SSH URL进行clone,因为只有SSH URL 链接的仓库才能推送修改。
开发完成后要往自己的仓库推送。如果你希望你fork的官方库能接受你的修改,你就在GitHub上发起一个pull request。
 

  1. 首先在github上新建一个远程仓库git-learn,此时会看到一个带有自己git名称的ssh或者https访问的地址。
    https://github.com/fuleying/git-learn.git
    git@github.com:fuleying/git-learn.git
  2. 在本地建立一个相同名称的文件夹git-learn,并进入该文件夹目录
  3. git init 初始化空仓库
  4. 创建一些文件,git add,将文件纳入版本控制,可以将多个文件多步纳入
  5. git commit -m "first commit" 进行离线提交,完成纳入操作
  6. 添加远程仓库origin,即用字符串 origin指代对应的仓库地址,origin即远程仓库在本地的简称
    git remote add origin git@github.com:fuleying/git-learn.git
  7. 将本地的master分支push到远程仓库origin上  git push origin  master
git remote       查看当前配置有哪些远程仓库
git remote -v  --verbose的简写,显示远程仓库对应的克隆地址

 
git快照
git会把出现变更的文件直接拷贝,形成新的blob类型的快照,而非与上一个版本的diff。而不是在每个版本中记录着各个文件的具体差异。
所以一旦需要查看某版本直接load即可,而其他差异版本控制需要做merge,所以快。空间换时间。
并非每个当前版本都需要做备份,为提高性能,若文件没有变化,Git不会再次保存,而只对上次保存的快照作一链接。
git会在隐藏目录.git里存在object里,定期会优化,保证快照空间,和读取时间的平衡。

Git的四种基本类型

  • BLOB:每个blob代表一个(版本的)文件,blob只包含文件的数据,而忽略文件的其他元数据,如名字、路径、格式等。

  • TREE:每个tree代表了一个目录的信息,包含了此目录下的blobs,子目录(对应于子trees),文件名、路径等元数据。因此,对于有子目录的目录,git相当于存储了嵌套的trees。

  • COMMIT:每个commit记录了提交一个更新的所有元数据,如指向的tree,父commit,作者、提交者、提交日期、提交日志等。每次提交都指向一个tree对象,记录了当次提交时的目录信息。一个commit可以有多个(至少一个)父commits。

  • TAG:tag用于给某个上述类型的对象指配一个便于开发者记忆的名字, 通常用于某次commit。

 

 
Git 专用名词
  • Workspace:工作区,从Git目录中的压缩对象数据库中提取出某个版本的所有文件和目录,用以开始后续工作的叫做工作目录。
  • Index / Stage:暂存区,一般都放在 Git 目录中。有时候人们会把这个文件叫做索引文件,不过标准说法还是叫暂存区域。
  • Repository:仓库区(或本地仓库),即本地的.git 目录。
  • Remote:远程仓库

基本的 Git 工作流程如下:

  1. 在工作目录中修改某些文件。
  2. 对修改后的文件进行快照,然后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
git fetch到远程仓库中拉取从你上次克隆以来别人上传到此远程仓库中的所有更新(或是上次 fetch 以来别人提交的更新)。fetch命令只是将远端的数据拉到本地仓库,并不自动合并到当前工作分支,只有当你确实准备好了,才能手工合并。
git fetch origin来同步远程服务器上的数据到本地。该命令首先找到origin是哪个服务器,然后从上面获取你尚未拥有的数据,更新你本地的数据库,然后把origin/master的指针移到它最新的位置上。

git clone自动创建本地的 master 分支用于跟踪远程仓库中的 master 分支。

git pull从原始克隆的远端仓库中抓取数据后,合并到工作目录中的当前分支。

Git入门指南的更多相关文章

  1. Git入门指南十一:Git branch 分支与合并分支

    十五. Git branch 分支 查看当前有哪些branch bixiaopeng@bixiaopengtekiMacBook-Pro xmrobotium$ git branch * master ...

  2. Git入门指南九:远程仓库的使用【转】

    转自:http://blog.csdn.net/wirelessqa/article/details/20152651 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 十三 ...

  3. 【翻译】Fluent NHibernate介绍和入门指南

    英文原文地址:https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started 翻译原文地址:http://www.cnblogs ...

  4. Flume NG Getting Started(Flume NG 新手入门指南)

    Flume NG Getting Started(Flume NG 新手入门指南)翻译 新手入门 Flume NG是什么? 有什么改变? 获得Flume NG 从源码构建 配置 flume-ng全局选 ...

  5. 【转】git - 简明指南

    git - 简明指南 助你入门 git 的简明指南,木有高深内容 ;) 作者:罗杰·杜德勒 感谢:@tfnico, @fhd 和 Namics其他语言 english, deutsch, españo ...

  6. Git入门简介

    ​1. Git 背景 Git 最初由Linus Torvalds编写,用于 Linux 内核开发的版本控制工具. Git 与常用的版本控制工具 CVS.Subversion 等不同,它采用了分布式版本 ...

  7. Office 365 机器人(Bot)开发入门指南 (新篇)

    最近在整理书稿时,发现我在2017年7月份写的这篇 Office 365 机器人(Bot)开发入门 的内容,因为相关平台的升级,已经完全不能体现当前的开发过程,所以我再专门写一篇新的开发入门指南给有兴 ...

  8. Docker 入门指南——常用命令

    前面已经介绍了 Docker 的安装方式,本文总结一下使用 Docker 的基本概念和常用命令. 基本概念 镜像 Image 镜像是一些打包好的已有的环境,可以被用来启动和创建容器 容器 Contai ...

  9. Maven 入门指南

    为什么要用 Maven? Maven 主要帮助用户完成以下 3 个方面的工作: 生命周期管理,便捷的构建过程: 依赖管理,方便引入所需依赖 Jar 包: 仓库管理,提供统一管理所有 Jar 包的工具: ...

随机推荐

  1. linux-ubuntu常用命令(深圳文鹏)

    系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...

  2. redis主从配置+sentinel哨兵

    redis主从配置+sentinel哨兵 1:编译环境准备 1.1环境确认 Redis是一个开源.支持网络.基于内存.键值对存储数据库,使用ANSI C编写.所以在搭建Redis服务器时需要C语言的编 ...

  3. 【转】: 塞尔达组在GDC2017演讲的文字翻译:创新的勇气

    大家好,我是藤林秀麿,以导演的身份参与<荒野之息>的制作,感谢大家的出席.我曾经作为设计者和导演制作了诸多塞尔达游戏(大地与时空之章.缩小帽.四支剑.幻影沙漏.天空之剑),回首望去,我已经 ...

  4. 树形dp入门两题

    题目描述 小明对数学饱有兴趣,并且是个勤奋好学的学生,总是在课后留在教室向老师请教一些问题.一天他早晨骑车去上课,路上见到一个老伯正在修剪花花草草,顿时想到了一个有关修剪花卉的问题.于是当日课后,小明 ...

  5. sqlmap+tor解决ip黑名单限制

    1.安装tor浏览器(8.0.8)并配置好 旧版tor是需要Vidalia配合的,新版貌似集成了?还是怎样的,反正不需要了 2.启动tor浏览器 3.启动sqlmap python sqlmap.py ...

  6. 用vsstudio 设计Winform 高分屏上布局错乱的问题

    在使用win10高分辨率150%,200%系统进行winform开发时, 会有布局错乱的现象,比如之前定义的300px的宽度,往往被设置成600px (200%分辨率下). 这个问题vs2015的解决 ...

  7. 实现属于自己的TensorFlow(一) - 计算图与前向传播

    前段时间因为课题需要使用了一段时间TensorFlow,感觉这种框架很有意思,除了可以搭建复杂的神经网络,也可以优化其他自己需要的计算模型,所以一直想自己学习一下写一个类似的图计算框架.前几天组会开完 ...

  8. mysql 性能优化 20 条建议

    MySQL性能优化的最佳20+条经验 2009年11月27日陈皓发表评论阅读评论100,946 人阅读   今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数据库的性 ...

  9. phpquery 学习笔记

    phpQuery是一个基于PHP的服务端开源项目,它可以让PHP开发人员轻松处理DOM文档内容,比如获取某新闻网站的头条信息.更有意思的是,它采用了jQuery的思想,你可以像使用jQuery一样处理 ...

  10. 2017软工 — 每周PSP

    1. PSP表格 2. PSP饼图 3. 本周进度条 4. 累计折线图