廖雪峰Git教程学习笔记(一)

作者及其背景:仔姜,大三学生,幼儿园英语水平,熟系Linux文件基本操作(最基础的)

文章内容或许有些疏漏之处还望各位大佬见谅,如果构成侵权或出现其他问题,请联系我邮箱:[email protected],如果需要更全的知识请移步廖老师Git教程

学习内容来源:廖雪峰Git教程:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000

感谢廖雪峰老师提供的教程

正文开始:

Git简介

什么是Git?

Git是目前世界上最先进的分布式版本控制系统(就是一个版本控制系统=_=)

Git的诞生

因为BitMover公司的原因,导致了Linus花费了两星期时间写出了Git。

集中式VS分布式

集中式:版本库集中存放在中央服务器,而工作时,需要使用的是自己的电脑,从中央服务器取得最新的版本,然后工作才能展开,工作完成后,又需要将自己的修改推送至中央服务器。

集中式版本控制系统最大的特点是必须联网才能工作。

分布式:没有中央服务器,每一台电脑就是一个完整的版本库,工作时不需要联网,多人协作时,只需要把各自的修改推送给对方,就可以互相看到对方的修改。

分布式版本控制特点:安全性更高,发生意外时无须太过担心,可以从其他电脑复制过来,开源免费(划重点)

安装Git

(这里只介绍Linux与Windows平台,对于其他平台没有接触,不好意思写)

Linux平台

$sudo apt-get install git 或 $git apt install git

Windows平台

从Git官网直接下载安装程序,或选择国内镜像,然后使用默认设置,一直next即可

安装成功后,在开始菜单找到“Git”-->"Git Bash",蹦出一个类似命令提示符的窗口,说明Git安装成功!

安装完成后还需进行最后一步设置,在Bash中输入;

$git config --global user.name"YourName"

$git config --global user.email"[email protected]"

因为Git是分布式版本控制系统,所以每一个机器都必须拥有身份:你的名字与email地址。

创建版本库

1、创建一个空目录

$mkdir learngit

$cd learngit

$pwd

2、将该目录变为Git可管理的仓库

$git init

把文件添加至版本库

所有版本控制系统其实只能跟踪文本文件的改动,Git也不例外,eg:.txt、.html、.exe,建议使用UTF-8进行编码

1、将文件添加至仓库:

$git add readme.txt

2、把文件提交至仓库:

$git commit -m "wrote a readmefile"

注:双引号("")里的内容可以自己定义

时光机穿梭

readme.txt文件修改后,查看仓库当前状态:

$git status

查看具体的修改内容:

$git diff “readme.txt”

$git add "readme.txt"

$git status  #查看是否包含修改后的文件

$git commit -m "add distributed"

$git status  #查看仓库当前状态

注:Linux文件中“#”代表着注释,所以这里读者只需将“#”看为“//”就好了

版本回退

查看提交日志:

$git log 或

$git log --pretty=oneline  #查看版本号(日志)

回退上一个版本:

$git reset --hard HEAD^

回退上100个版本:

$git reset --hard HEAD~100

查看文件内容:

$cat "readme.txt"

回退之后查看日志:

$git log  #无法发现最新的版本

#查看上面的命令行获取commit id(没被关闭才可看到)

回到最新版本:

$git reset --hard "commit id"

注:双引号("")里的内容请根据命令行显示的字符进行输入

查看文件内容:

$cat "readme.txt"

找不到新版本的commit id:

$git reflog  #查看Git所记录使用者的每一次命令

$git reset --hard "commit id"

$cat "readme.txt"

工作区与暂存区

工作区即电脑中可随意查看的目录

版本库即工作区的一个隐藏目录——.git目录

暂存区即版本库中被称为“stage”(或“index”)的文件

将文件往Git版本库添加:

$git add "readme.txt"将文件添加到暂存区;

$git commit "XXX"把暂存区所有内容提交到当前分支,即将需要提交的文件修改全部放至暂存区,一次性提交暂存区修改至分支。

管理修改

查看工作区版本库最新版本区别:

$git diff HEAD --"readme.txt"

再添加,提交

撤销修改

方法一:修改了文件未提交至暂存区:

删除修改,手动恢复至上一版本状态。

$git status  #查看

$git checkout --"readme.txt"  #丢弃工作区修改

注意:①"readme.txt"修改后未添加至暂存区,撤销修改就回到和版本库一模一样的状态。

   ②"readme.txt"已添加至暂存区后,又作了修改,撤销修改后就回到添加到暂存区后的状态。

   总而言之,就是让readme.txt回到最近一次的git commit或git add时的状态。

注:git checkout --reademe.txt中的“--”很重要,如果没有“--”,就变成了”切换到另一个分区”的命令。

方法二:已将“readme.txt”git add至暂存区:

$git status

$git reset HEAD "readme.txt"

$git status

$git checkout --"readme.txt"

方法三:已经提交修改至版本库还未推送至远程:

$git log 或

$git log --pretty=oneline

$git reset --hard HEAD^ 或

$git reset --hard HEAD~"number"  #参考版本回退

删除文件

前置背景:

$vi test.txt

$git add test.txt

$git commit -m "add test.txt"

$rm test.txt

回到现在:

$git status

两个选择:

①确认删除

$git rm test.txt

$git commit -m "remove test.txt"

②误删文件,恢复至最新版本

$git checkout --test.txt

注:由于只恢复至最新版本,使用者会丢失最近一次提交后修改的内容

原文地址:https://www.cnblogs.com/shineZiJiang/p/8948116.html

时间: 2024-10-14 15:49:38

廖雪峰Git教程学习笔记(一)的相关文章

廖雪峰Git教程学习笔记

廖雪峰git简单教程学习笔记 教程地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0001.可以这样设计目录,在d:\reposisoty\ 在这个目录下面有很多的仓库.mkdir learngitcd learngit>>git init          #这样就把learngit 初始化成了一个仓库>>git status        #说明当前仓库的状态并

[k]廖雪峰Git教程-笔记

-------------------------- 廖雪峰Git教程-------------------------- 01:安装Git在Windows上安装Git,官网下载,然后按默认选项安装即可;右键菜单->“Git Bash”->弹出一个命令窗口;安装完成后,还需要最后一步设置,在命令行输入:$ git config --global user.name "Your Name"$ git config --global user.email "[emai

廖雪峰js教程学习——操作表单

# 廖雪峰js教程学习记录——操作表单 # 用JavaScript操作表单和操作DOM是类似的,因为表单本身也是DOM树. 用JavaScript来操作表单,可以获得用户输入的内容,或者对一个输入框设置新的内容. HTML表单的输入控件主要有以下几种: - 文本框,对应的`<input type="text">`,用于输入文本: - 口令框,对应的`<input type="password">`,用于输入口令: - 单选框,对应的`<

《廖雪峰Git教程》学习笔记

原文链接 一.创建版本库 ①初始化一个Git仓库:git init ②添加文件到Git仓库:1.git add<file> ;  2.git commit 二.时光机穿梭 ①查看工作区状态,文件是否被修改过:git status ②查看修改的内容:git diff 1.版本回退 ①HEAD:当前版本 ②HEAD^:上个版本 ③定位版本:git reset --hard commit_id ④git log:穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本 ⑤git reflo

廖雪峰JS教程学习记---数组和对象

$数组和对象 数组 JavaScript的数组可以包括任意数据类型.例如: [1, 2, 3.14, 'Hello', null, true]; 数组用[]表示,元素之间用,分隔. 另一种创建数组的方法是通过Array()函数实现: new Array(1, 2, 3); // 创建了数组[1, 2, 3] 然而,出于代码的可读性考虑,强烈建议直接使用[]. 数组的元素可以通过索引来访问.请注意,索引的起始值为0: var arr = [1, 2, 3.14, 'Hello', null, tr

廖雪峰javascript教程学习记录

$1.数据类型和变量 1.不区分整数和浮点数,统一用Number 2.字符串String 3.布尔值 注意: (1) 实际上,JavaScript允许对任意数据类型做比较; 要特别注意相等运算符==. 第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较. 由于JavaScript这个设计缺陷,不要使用==比较,始终坚持使用===比较. (2) 另一个例外是NaN这个特殊的Number与所有其他值都不相等,包括它自己: NaN === NaN; //

廖雪峰JS教程学习记录---字符串

1.由于多行字符串用\n写起来比较费事,所以最新的ES6标准新增了一种多行字符串的表示方法,用'...'表示`这是一个 多行 字符串`; 2.字符串常见的操作如下: s.length; // 13 要获取字符串某个指定位置的字符,使用类似Array的下标操作,索引号从0开始: s[12]; // '!' s[13]; // undefined 超出范围的索引不会报错,但一律返回undefined 3.需要特别注意的是,字符串是不可变的,如果对字符串的某个索引赋值,不会有任何错误,但是,也没有任何

GIT & GitHub 学习笔记

SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活, 干完后,需要把自己做完的活推送到中央服务器.集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网 速慢的话,就纳闷了. Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑 上.既然每个人的电脑都有一个完整的版本库

git教程学习集合

客户端集合: GitHub for Windows使用教程(一) GitHub for Windows使用教程(二) GitHub for windows使用教程(三) GitHub for Windows使用教程(四) 廖雪峰git命令行: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000