再谈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上操作跟简便.
修改详情页, 可以显示 增加(+表示)和删除(用-表示) 的行
再谈git和github-深入理解-3的更多相关文章
- 再谈git和github-深入理解
git中的 objects 和 refs 是什么? 目录objects是仓库的 "对象库" , 是包含 代码, 提交, 日志, 信息, 索引等信息的关键所在 refs是一些 sha ...
- 再谈git和github-深入理解-2
github中的 sloc是什么意思? sloc: source lines of code: 代码行数, 源代码行. 要向仓库中 create file/upload file/edit file等 ...
- 再谈git的http服务-权限控制gitweb版(未成功)
截至目前,对gitweb的掌握还没达到最终目标,仅仅实现了通过浏览器来浏览项目,通过git命令仍然未能clone项目.但仍然要记录下来,主要是因为打算暂时放弃这条路,而所收获的一些经验还是要记录下来. ...
- 再谈git的http服务-权限控制hooks版
通过git-http-backend方法提供的http服务基本上可以做到认证用户才能使用,但只能控制到服务器路径访问,而且无法区分读写.经过不懈努力,找到了方法,相关脚本及配置见后. 基本思路就是利用 ...
- 再谈git的http服务
因为git服务器搬迁,需要重新安装git服务器,在网上搜索了下,发现之前的方法太复杂,复杂到自己都没彻底弄明白.其实通过git自带的git-http-backend脚本配合apache2的http服务 ...
- 透过SourceTree再谈Git
初出茅庐之基础篇 1. Download SourceTree from: https://www.sourcetreeapp.com/ 2.Complete the installation. 3. ...
- 谈对“Git”的认识与理解
自诞生于2005年以来,Git日臻完善,在高度易用的同时,仍然保留着初期设定的目标.它的速度飞快,及其适合管理大项目,它还有着令人难以置信的非线性分支管理系统,可以应付各种复杂的项目开发需求.接着说说 ...
- git和github入门指南(6)
6.交作业的流程 以下内容是螺钉课堂在线就业班提交作业的要求,非螺钉课堂在线就业班学员不用学习 螺钉课堂作业全程采用git管理,希望在日常使用中,加深对git和github的理解 具体流程: 1.注册 ...
- git和github的关系以及简单易懂的理解
git和github的关系 写在前面:我身边好多人问我git和github的区别,想必对于好多人没学过的大佬们恐怕也是一脸懵逼,但是不知道也是不行的,所以我今天就来讲一讲这二者的区别和联系. 用一 ...
随机推荐
- Java之JVM监控工具分享
Java之JVM监控工具分享 JVM的基本知识常用的也就是类加载机制,内存区域.分配.OOM,GC,JVM参数调优 几个链接自己看: 内存区域&类加载机制 分配策略&垃圾回收算法.收集 ...
- 3 Oracle 32位客户端安装及arcgis连接
关于Oracle服务器端安装及配置的过程详见第2篇文章,链接如下:http://www.cnblogs.com/gistrd/p/8494292.html,本篇介绍客户端安装配置及连接arcgis过程 ...
- 动态HTMl处理
后续爬虫代码的建议 尽量减少请求次数 1. 能抓列表页就不抓详情页 2. 保存获取的html页面,供差错和重复请求使用 关注网站的所有类型的页面 1. wap页面,触屏版页面 2. H5页面 3. A ...
- java学习之路--String类的基本方法
String类常见的功能 获取 1.1 字符串中包含的字符数,也就是获取字符串的长度:int length(); 1.2 根据位置获取某个位置上的字符:char charAt(int index) 1 ...
- 关于vue-cli创建项目(小白)(2)mock数据
mock数据,好处,前后端分离,不用等后端的真实接口,就可以用axios(ek sju s 好像这么读,原谅本人总是根据读音写单词)请求数据了. 一,安装所需插件 根据不同需求选择安装环境,mockj ...
- mysql数据库数据的 备份以及还原
数据库备份的3种方式: 例如:mysqldump -uzx_root -p test>/root/test1.sql
- yum安装openjdk
含有的命令:yum,java -version,javac,source,vim [root@ycj ~]# yum -y install java-1.8.0-openjdk-devel //安装j ...
- linux--- python3环境部署篇
环境部署 我们在pycharm上都是自己设置的python3解释器的环境变量,使得代码能够正常执行!可是怎么能让我们的python代码在LINUX上跑起来呢? linux是内置python,可是内置的 ...
- PHP计算年龄
<?php $birthday = strtotime('1992-10-03'); $time = time();//2019-03-14; function datediffage($bir ...
- C/S和B/S的应用的区别
C/S: C是指Client,S是指Server.C/S模式就是指客户端/服务器模式.通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销. ...