git tag -a 和 -m的区别?
-a是 注解 是单词 "annotate"的意思 , 表示 "给标签一个名字, 标签名
-m 是创建标签时的消息备注
git tag -a 'V1.0' -m '创建1.0版本

tag是对应着某一个commit ID, 是对commit 的简短/易记 表示.

git 要删除 远程仓库上的内容, 包括 远程分支 远程标签 是在git push命令中的远程仓库 origin的后面 加上 冒号: git push origin : branch_name; git push origin : refs/tags/v1.0


git中的对象?
git中的数据结构分为两类, 一类是对象[库], 一类是索引index(对象的索引???) 其中对象objects有四种: (Blob)块,(Tree)树和commit和 标签tag. 由这四种对象构成 git高层数据结构.
所有的版本库数据存放在工作目录下一个名为 .git的隐藏 子目录中.

  • 所有存放到Objects下的 文件 都会被计算SHA1值, 然后以该SHA1值作为文件名. 而它原来本身的(human readable)文件名则被放到Tree里面
    为什么要用sha1值来命名? 因为这些文件会被反复修改, 每修改一次就要被重新命名一次, 会被存储为一个新的节点, 那么如何命名呢? 总不能像日常中文件较少的时候, 用-1, -2等的方式, 所以用sha1是合适的.
  • git的目录树, 就是每一次提交时, 对整个目录树的一个快照. 因为目录树包含了其中的所有文件的修改, 因为被修改的文件可能分布在不同的目录中, 所以要重新保存一下整个目录的目录树, git的管理那么多功能, "智能" 就是通过分析目录树而得出的.

==========================

there was evidence of bias against black applicants 有证据表明对黑人申请者有偏见.
bias [bai2s] , 偏见;偏袒; 偏心(球)
applicant: 申请人.

关于git的一些用法

  • 如果git设置了全局用户信息, 那么多个账号(即多个仓库下)下面的提交用户会是一个人, 所以如果要单独设置每个仓库的提交者 需要: 第一, 删除原来的全局配置信息 git config --global --unset user.name/user.email 然后在每一个repo仓库下, 分别配置 git config --local user.name 'name' /// git config --local user.email 'name@email.com '

  • git tag 的一些操作: 就是通用的/常用的标签操作, 包括标签的创建/标签的列表显示/标签的删除等. git tag 'tag_name', git tag -l; git tag -d '...', 手动推送标签 git push origin 'tag_name' 必须手动/单独的推送标签.

  • git remote ... , 是对 远程仓库的的相关操作, 比如 git remote 是查看/列表显示有哪些远程仓库, git remote -v 是详细显示有哪些远程仓库
    添加远程仓库: git remote add '新增的远程仓库的简洁的别名alias' '新增仓库的地址'
    只有origin仓库 可以通过ssh 模拟终端(secure shell)从本地提交

  • git branch 只显示本地分支, 而 git branch -a 则可以 获取到 所有的分支: 包括本地分支和远程仓库上的分支
    要将本地分支 上传 到远程仓库, 使用 git push origin branch_name

  • 如果本地仓库和远程仓库的 同一个名称的 文件有冲突, 使用 git diff <冲突的文件名>

  • git reflog和git log的区别?
    git reflog 只是显示整个过程在 HEAD头 的变化情况, 而git log会显示所有各种各样的 变化情况.

  • git reset --hard <commitID | version_ID> 版本回滚, 可以使用 提交时的id, 这个id可以是4个或5个开头的字符, 没有确切的数字, 只有能够和其他commitID区别就可以了

=======================================

比较 特殊的后置定语? present 修饰定语放在后面??

  • 一些以a- 开头的形容词, 比如 the girl asleep soundly is my sister
  • 一些以-able -ible结尾表示强烈感情色彩的词, 比如 reliable等 he is the only person reliable
  • 形容词修饰不定代词, something strange;
  • 现在分词短语; 过去分词短语, 介词短语等修饰名词, 放在其之后
  • 还是就是一些 比较 特殊的/固定的 形容词, 这些是个别的特例, 只有记住了, 比如: present 主要有 两种意思, 表示"目前的, 当前的" 时, 放在名词前面, 比如: present situation; 而作为 "出席, 存在"等讲时, 就要放在 名词 的后面, 比如: untracked file present. "存在未跟踪的文件..."

git push是把 本地仓库的当前分支 推送到远程仓库上去. git push <是远程的哪一个仓库> <哪一个分支>, 比如 git push origin master 就是将 本地仓库的当前推送到 远程origin仓库的 master分支上.

  • 如果推送结果有冲突, 就需要 先把远程仓库的相应分支 pull到本地( 当然不能是当前仓库所在目录, 应该是 不同的 另一个工作目录中), 然后使用 git diff 查看冲突/ 比较冲突内容, 解决冲突(在两个冲突文件中, 留自己想要的内容), 然后再 add, commit 再push.

git和svn的比较

  • svn采用的是 增量式的保存, 因此每次保存的内容量要少些 但是各个版本之间相互关联/ 相互依赖; 而git保持的每次文件修改的 快照, 每个版本都有完整的代码, 不依赖最初的文件.
  • svn 没有"本地仓库" 的概念, 所以, 如果要 "入库" 提交的话 , 就需要联网提交(和远程服务器相连). 而git可以提交到 "本地仓库" "commit"操作不一定需要联网.

关于git的服务器, (远程服务器, 远程仓库), 你可以自己搭建一个git服务器, (不是太麻烦???不过git自己搭建的服务器也是命令行的, 跟apache的服务器差不多 , 配置和启停都是命令行的, 没有图形界面那么直观.) 也可以使用别人 已经搭建好的 git服务器, 其中github(或者说github的底层) 就是一个git服务器,而且具有可视化的界面.

  • 在github中, "编辑, 修改edit/ 删除delete 文件, 都算是一次 commit. 默认的msg是" update 1"
  • 在github上的这些操作, 其实就相当于 在命令行的一系列连贯操作: git的edit->add到暂存区-> commit到本地仓库-> push到远程仓库 所以很明显在github上操作跟简便.
    修改详情页, 可以显示 增加(+表示)和删除(用-表示) 的行

再谈git和github-深入理解-3的更多相关文章

  1. 再谈git和github-深入理解

    git中的 objects 和 refs 是什么? 目录objects是仓库的 "对象库" , 是包含 代码, 提交, 日志, 信息, 索引等信息的关键所在 refs是一些 sha ...

  2. 再谈git和github-深入理解-2

    github中的 sloc是什么意思? sloc: source lines of code: 代码行数, 源代码行. 要向仓库中 create file/upload file/edit file等 ...

  3. 再谈git的http服务-权限控制gitweb版(未成功)

    截至目前,对gitweb的掌握还没达到最终目标,仅仅实现了通过浏览器来浏览项目,通过git命令仍然未能clone项目.但仍然要记录下来,主要是因为打算暂时放弃这条路,而所收获的一些经验还是要记录下来. ...

  4. 再谈git的http服务-权限控制hooks版

    通过git-http-backend方法提供的http服务基本上可以做到认证用户才能使用,但只能控制到服务器路径访问,而且无法区分读写.经过不懈努力,找到了方法,相关脚本及配置见后. 基本思路就是利用 ...

  5. 再谈git的http服务

    因为git服务器搬迁,需要重新安装git服务器,在网上搜索了下,发现之前的方法太复杂,复杂到自己都没彻底弄明白.其实通过git自带的git-http-backend脚本配合apache2的http服务 ...

  6. 透过SourceTree再谈Git

    初出茅庐之基础篇 1. Download SourceTree from: https://www.sourcetreeapp.com/ 2.Complete the installation. 3. ...

  7. 谈对“Git”的认识与理解

    自诞生于2005年以来,Git日臻完善,在高度易用的同时,仍然保留着初期设定的目标.它的速度飞快,及其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求.接着说说 ...

  8. git和github入门指南(6)

    6.交作业的流程 以下内容是螺钉课堂在线就业班提交作业的要求,非螺钉课堂在线就业班学员不用学习 螺钉课堂作业全程采用git管理,希望在日常使用中,加深对git和github的理解 具体流程: 1.注册 ...

  9. git和github的关系以及简单易懂的理解

    git和github的关系   写在前面:我身边好多人问我git和github的区别,想必对于好多人没学过的大佬们恐怕也是一脸懵逼,但是不知道也是不行的,所以我今天就来讲一讲这二者的区别和联系. 用一 ...

随机推荐

  1. gym102007 E

    我计划预习五个小时离散,然后hmc补了这道他自认为非常的裸并且很傻逼自己可以一眼秒的简单题,然后给我讲了讲,然后我失去了一整晚的生命迹象. 首先我们可以发现一个神奇的现象,啊,先排个序,然后我们会发现 ...

  2. CF3A Shortest path of the king

    The king is left alone on the chessboard. In spite of this loneliness, he doesn't lose heart, becaus ...

  3. 爬虫IP代理中的http与https

    之前使用代理IP,构造的proxies一直都是http模式 proxies={"http": "http://{}".format(ip)} 但是今天遇到的网站 ...

  4. Python学习之旅(十)

    Python基础知识(9):函数(Ⅰ) Python中函数的定义:是逻辑结构和过程化的一种编程方法 定义方法: def test(x): #def:定义函数的关键字 test:函数名 x:形参,也可以 ...

  5. Kruskal和prime算法的类实现,图的遍历BFS算法。

    一.图的遍历 #include<iostream> #include<queue> #include<vector> using namespace std; in ...

  6. ES6语法(3)—— 用promise()对象优雅的解决异步操作

    Promise 是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大. 所谓Promise,简单说就是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果. ...

  7. 《Java程序设计》 第四周学习总结

    学号 20175313 <Java程序设计>第四周学习总结 教材学习内容总结 第五章主要内容 了解子类的继承性 子类和父类在同一包中的继承性(除private外其余都继承) 子类和父类不在 ...

  8. PHP Echarts Ajax Json柱形图示例

    <?php $server = '127.0.0.1'; $user = 'root'; $password = ''; $database = 'yiibaidb'; $conn = new ...

  9. 271A

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h& ...

  10. 【UML】NO.52.EBook.5.UML.1.012-【UML 大战需求分析】- 交互概览图(Interaction Overview Diagram)

    1.0.0 Summary Tittle:[UML]NO.52.EBook.1.UML.1.012-[UML 大战需求分析]- 交互概览图(Interaction Overview Diagram) ...