阅读廖雪峰老师git教程笔记
1、首先git是目前世界上最先进的分布式版本控制系统之一。所谓版本控制是针对工作中一些普遍的现象的。
比如,你写一份文档,期间,不断的改善,每次修改都会进行备份,久而久之,会有很多版本的同一份文档,但是,某个时候又突然想查看之前写的内容,又发现不知道在哪一版的,这让人很头疼,还有诸如此类的很多问题。反正就是没有一个统一管理管理版本的有力的工具。
2、集中式版本管理和分布式版本管理的区别
集中式版本管理控制系统,版本库是集中存放在中央服务器上的,干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,活做完了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。而且集中式需要联网,对带宽也有要求。如下图。
分布式版本控制系统根本没有“”中央服务器“”,每个人的电脑上都是一个完整的版本库,这样,工作的时候,就不需要联网了,因为版本库就在自己电脑上,那么怎么多个人合作,互相把修改推送给对方呢?通常,分布式版本控制系统通常有一台充当“中央服务器”的电脑,但是这台电脑的作用仅仅是用来方便大家“交换”大家的修改,没有也一样干活,知识交换修改 不方便而已。如下图
3、在windows上安装git
下载msysgit只需要单独下载一个exe安装程序,其他的都不用装。下载地址https://git-for-windows.github.io。安装完成后,在开始菜单里面找到“git”->"git bash",弹出如下所示类似于命令行窗口的东西,就说明git安装成功
安装完成之后,还需要最后一步设置,在命令行输入:
$git config --global user.name "your name"
$git config --global user.email "email@example.com"
4创建版本库
版本库又名仓库,英文名repository,可以简单理解成一个目录,这个目录里面所有文件都可以被git管理起来,每个文件的修改、删除,git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻可以“还原”
创建版本库非常简单,首先,选择一个合适的地方,创建一个空目录,如下命令:
$mkdir learngit
$cd learnggit
$pwd
/Users/michael/learngit
第二步,通过git init命令把这个目录变成git可以管理的仓库
$git init
Initialized empty Git repository in /User/michael/learngit/git/
注意,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,git也是,像图片、视频这些二进制文件,虽然也能有由版本控制系统管理,但是没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100kb,变成了120kb,具体改了什么,版本控制系统不知道。
第三步添加文件到git仓库,分两步:
。。。第一步,使用命令git add <file>,注意,可反复多次使用,添加多个文件
。。。第二步,使用命令git commit,完成
5、要随时掌握工作区的状态,使用git status命令
如果git status 告诉你文件被修改过,用git diff可以查看修改内容,继续使用add和commit提交修改后的内容
6、HEAD指向的版本就是当前版本,因此,git允许我们在版本的历史之间穿梭,使用命令git reset --hard commit_id
穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。
要重返未来,用git reflog 查看命令历史,以便确定回到未来的哪个版本
7、git的工作区就是可以看得到,比如上面创建的learngit文件夹就是一个工作区。工作区有一个隐藏的.git,这个不算工作区,而是git的版本库。git的版本库里存了很多东西,其中最重要的就是称为stage的暂存区,还有git为我们自动创建的第一个分支,master,以及指向master的一个指针HEAD.
前面我们在将文件往git版本库里面添加的时候,第一步,git add就是把文件添加进去,实际上就是把文件修改添加到暂存区,第二步是用commit提交更改,实际上就是把暂存区的所有内容提交到当前分支
阅读廖雪峰老师git教程笔记的更多相关文章
- git常用命令总结--廖雪峰老师Git教程命令总结
学习了廖雪峰老师的Git教程之后的命令总结,重点关于git和远程仓库的东西. 如果没有学过,这是传送门 下面这个图很重要 一.git初始化本地仓库和配置 echo "想输入到文件的内容,一般 ...
- 廖雪峰老师Python教程读后笔记
廖老师网站:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 花几天时间看了廖老师的 ...
- 学习廖雪峰的git教程
地址:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 1.git add:添加文件 ...
- git 分支管理 (转自廖雪峰的git教程)
在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...
- 廖雪峰的git学习笔记
安装完后,每个机器都要自报家门 Config--配置 global--全局参数 配置全局用户名 $git config --global user.name “Your Name” 配置邮箱 ...
- 学习廖雪峰的Git教程4--继续学习分支管理
查看分支 git branch -a 查看远程分支 git branch 查看本地分支 创建分支 git checkout -b branch-name 在远程创建一个属于自己的分支 删除分支 删除本 ...
- 学习廖雪峰的Git教程3--从远程库克隆以及分支管理
一.远程库克隆 这个就比较简单了, git clone git@github.com:****/Cyber-security.git 远程库的地址可以在仓库里一个clone or download的绿 ...
- 学习廖雪峰的Git教程2--远程仓库
今天跳过之前版本管理,先来学习远程仓库内容: 1.创建ssh(这是为没有ssh key准备的,如果有就可以进行下一步: 敲入 $ ssh-keygen -t rsa -C "youremai ...
- 学习廖雪峰的Git教程1
我是在Ubuntu上学习的,所以配置之类的进行的很快. 一.创建版本库 mkdir learngit cd learngit git init 用git init变成git可以管理的库 二.git a ...
随机推荐
- 注册事件处理程序onclick和addEventListener、attachEvent
一.设置HTML标签属性为事件处理程序(注意和下面的设置javascript对象属性为事件处理程序是不同的) 用于设置文档元素事件处理程序属性也能化成对应的HTML标签的属性.如果这样做,属性值应该是 ...
- figure元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ural 1070. Local Time
1070. Local Time Time limit: 1.0 secondMemory limit: 64 MB Soon the USU team will go to Vancouver to ...
- BZOJ2679 : [Usaco2012 Open]Balanced Cow Subsets
考虑折半搜索,每个数的系数只能是-1,0,1之中的一个,因此可以先通过$O(3^\frac{n}{2})$的搜索分别搜索出两边每个状态的和以及数字的选择情况. 然后将后一半的状态按照和排序,$O(2^ ...
- BZOJ 1412 & 最小割
什么时候ZJ省选再现一次这么良心的题吧... 题意: 在一个染色的格子画分割线,使其不想连,求最少的线段 SOL: 裸裸的最小割.题目要求两种颜色不想连,我们把他分到两个集合,也就是把所有相连的边切断 ...
- Java 生产者模式 消费者模式
// The standard idiom for calling the wait synchronized(sharedObject) { while(condition){ sharedObje ...
- HDU 1693 Eat the Trees(插头DP)
题目链接 USACO 第6章,第一题是一个插头DP,无奈啊.从头看起,看了好久的陈丹琦的论文,表示木看懂... 大体知道思路之后,还是无法实现代码.. 此题是插头DP最最简单的一个,在一个n*m的棋盘 ...
- BZOJ4530: [Bjoi2014]大融合
Description 小强要在N个孤立的星球上建立起一套通信系统.这套通信系统就是连接N个点的一个树. 这个树的边是一条一条添加上去的.在某个时刻,一条边的负载就是它所在的当前能够 联通的树上路过它 ...
- iOS9 升级XCode7遇到的问题收集
开发环境运行 各位可能会觉得,笔者在此还要讲开发环境的运行,是不是多此一举.其实并非如此,综合笔者这几年iOS开发经验的总结,运行新版本,特别是测试版本的Xcode是一个需要格外小心的事情, ...
- php关于金额比较引发的问题(转)
做电子商务的时候一般会涉及到金额的比较,按正常的思路来看用><=这些个符号就可以了.可是要是到程序上来搞这个的话就出大事了.现在看下这段代码: $f = 0.07; var_dump($f ...