阅读廖雪峰老师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 ...
随机推荐
- 看Ue4角色代码——跳跃与实现二段跳
看了一下终于发现了跳跃的关键代码 bool UCharacterMovementComponent::DoJump(bool bReplayingMoves) { if ( CharacterOwne ...
- java基础-操作符
浏览以下内容前,请点击并阅读 声明 定义:操作符是一种能够对一个,两个或三个操作对象执行特定的操作,并返回一个结果的特定符号. java中操作符的种类和优先级如下表所示,除了赋值运算,所有二元操作符运 ...
- jQuery的封装和扩展方式
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- HDU 3072 (强连通分量)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3072 题目大意:为一个有向连通图加边.使得整个图全连通,有重边出现. 解题思路: 先用Tarjan把 ...
- 安装lua_zlib让OpenResy可以接收gzip请求
1.下载和安装lua_zlib wget https://github.com/brimworks/lua-zlib/archive/master.zip unzip master.zip cd lu ...
- 彻底弄明白之数据结构中的排序七大算法-java实现
package ds; /* * author : codinglion * contact: chenyakun@foxmail.com */ import java.util.Random; pu ...
- 闲扯淡json格式与对象
在这里推荐使用http://json.tongxiehui.net/ 这个在线解析jso格式 JSON 语法是 JavaScript 对象表示语法的子集. 数据在名称/值对中 数据由逗号分隔 花括号保 ...
- Selenium_Selenium WebDriver 中鼠标和键盘事件分析及扩展
在使用 Selenium WebDriver 做自动化测试的时候,会经常模拟鼠标和键盘的一些行为.比如使用鼠标单击.双击.右击.拖拽等动作:或者键盘输入.快捷键使用.组合键使用等模拟键盘的操作.在 W ...
- signal(SIGPIPE, SIG_IGN)
文章来源:http://blog.163.com/niuxiangshan@126/blog/static/170596595201221942952676/ 当服务器close一个连接时,若cl ...
- hdu1241 dfs
链接改天再补 杭电又崩了... 题意:求“@”组成了多少个联通区域,每个点的8个方向都认为是相连的 思路:对每一个点进行搜索 当Map == @ && vis == 0 时 可进入搜索 ...