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. canvas里设置width和css里设置width和js里设置width的区别

    canvas.width 和 它的style.width是不一样的: canvas是个画布,有他自己的宽和高(默认是没有单位的纯数字),就是canvas.width和canvas.height的宽和高 ...

  2. CString比较不区分大小写

    第一种:都变为大写 或者都变成小写. str1.MakeUpper();str2.MakeUpper();or:str1.MakeLower();str2.MakeLower(); if(str1== ...

  3. HTML02单词

    form:表单action:行动(提交的路径)method:方法(提交的方式)input:输入type:类型text:文本(文本输入项)password:密码radio:单选按钮checkbox:复选 ...

  4. vivado/FPGA 使用小纪

    1.使用FPGA做为外部控制器的总线译码时,将总线时钟接在全局时钟脚上(MRCC),就算接在了局部时钟(SRCC)上,也要通过BUFG转为全局时钟走线,否则会因为local clk到各部分的时延较大引 ...

  5. python文件派生

    import time class Foo: x = 1 def __init__(self, y): self.y = y def __getattr__(self, item): # 没有的情况下 ...

  6. qt 操作注册表,设置ie代理

    void SetIEProxy(QString proxy) { QSettings settings("HKEY_CURRENT_USER\\Software\\Microsoft\\Wi ...

  7. hash 位运算 练习

    hash  位运算 [以下代码仅做位运算的练习,算法本身不合理  php转译python] 从头到尾彻底解析Hash表算法_知识库_博客园 https://kb.cnblogs.com/page/18 ...

  8. python2,python3同时安装时,python3可以安装并升级pip库,python2报错的解决办法

    最近在使用pip安装包的的时候出现下面错误 UnicodeEncodeError: 'ascii' codec can't encode character u'\u258f' 查询资料后发现原因是p ...

  9. ng2-table

    [转]https://github.com/valor-software/ng2-table  demo:http://valor-software.com/ng2-table/ ng2-table ...

  10. Spring之IOC注入

    注入 spring依赖注入 set方法: <property name="属性名" values ="值">--ref="对象名" ...