Git入门指南

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的简写,显示远程仓库对应的克隆地址--verbose

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


Git的四种基本类型html

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

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

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

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

图片4
 

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

基本的 Git 工做流程以下:ssh

  1. 在工做目录中修改某些文件。
  2. 对修改后的文件进行快照,而后保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照永久转储到 Git 目录中。
git fetch到远程仓库中拉取从你上次克隆以来别人上传到此远程仓库中的全部更新(或是上次 fetch 以来别人提交的更新)。fetch命令只是将远端的数据拉到本地仓库,并不自动合并到当前工做分支,只有当你确实准备好了,才能手工合并。
git fetch origin来同步远程服务器上的数据到本地。该命令首先找到origin是哪一个服务器,而后从上面获取你还没有拥有的数据,更新你本地的数据库,而后把origin/master的指针移到它最新的位置上。git fetch originoriginorigin/master
git clone自动建立本地的 master 分支用于跟踪远程仓库中的 master 分支。
git pull从原始克隆的远端仓库中抓取数据后,合并到工做目录中的当前分支。
相关文章
相关标签/搜索