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

邮差的信 提交于 2020-04-26 05:45:55

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

文章内容或许有些疏漏之处还望各位大佬见谅,如果构成侵权或出现其他问题,请联系我邮箱:zhaozijiang_yjt@163.com,如果需要更全的知识请移步廖老师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@example.com"

因为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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!