阅读廖雪峰老师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 ...
随机推荐
- HDU5853 Jong Hyok and String(二分 + 后缀数组)
题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5853 Description Jong Hyok loves strings. One da ...
- ural 1338. Automobiles
1338. Automobiles Time limit: 3.0 secondMemory limit: 64 MB Everyone knows what traffic congestion i ...
- Visual Studio 2010: 调试引用的dll的代码?
right click the solution in the Solution Explorer-> Properties-> Debug ->Enable Debuggers- ...
- BZOJ4383 : [POI2015]Pustynia
设$a$到$b$的边权为$c$的有向边的含义为$b\geq a+c$,则可以根据题意构造出一张有向图. 设$f[x]$为$x$点可行的最小值,$a[x]$为$x$位置已知的值,则$f[x]=\max( ...
- phpstorm 10 修改背景图片和字体
修改menu:File ~ Settings ~ Appearance & Behavior ~ Appearance ~ Theme 改成 Darcula即成黑色背景 menu字体大小: 编 ...
- (转)MySQL提示“too many connections”的解决办法
link:http://www.cfp8.com/mysql-prompt-too-many-connections-solution.html 今天生产服务器上的MySQL出现了一个不算太陌生的错误 ...
- node.js 调用天气webservice接口
首先安装soap模块 npm install soap 1 2 3 4 5 6 7 8 9 10 var soap = require('soap'); var url = 'http://w ...
- ACM 对决
对决 时间限制:1000 ms | 内存限制:65535 KB 难度:0 描述 Topcoder要招进来了 n 个新同学,Yougth计划把这个n个同学分成两组,要求每组中每个人必须跟另一组中 ...
- Code[VS] 1332 题解 【Kosaraju】【Tarjan】
Code[VS] 1332 上白泽慧音题解 Tarjan Algorithm Kosaraju Algorithm 题目传送门:http://codevs.cn/problem/1332/ 题目描 ...
- iOS 三种收起键盘的方法
- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typica ...