• 再谈git和github-深入理解-3


    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上操作跟简便.
      修改详情页, 可以显示 增加(+表示)和删除(用-表示) 的行

  • 相关阅读:
    Android 实现Path2.0中绚丽的的旋转菜单
    Android SQLite数据库增删改查操作
    Android addRule()
    Android 实现全屏、无标题栏
    微信公众号开发教程
    HEAP CORRUPTION DETECTED
    Introduction to gaussian filter 高斯滤波器
    Windows 7硬盘安装CentOS 6.4 双系统 (WIN7硬盘安装Linux(Fedora 16,CentOS 6.2,Ubuntu 12.04))
    使用Scala操作Mongodb
    数字三角——递归、递归、内存搜索
  • 原文地址:https://www.cnblogs.com/bkylee/p/9289765.html
Copyright © 2020-2023  润新知