Git学习笔记(持续更新)

目录

1、起步

1.1、关于版本控制

1.2、Git简史

1.3、什么是Git?

1.4、命令行

1.5、安装Git

1.6、初次运行Git前的配置

1.7、获取帮助

2、Git基础

2.1获取 Git 仓库

2.2记录每次更新到仓库

2.3查看提交历史



1、起步

1.1、关于版本控制

Q:什么是“版本控制”?

A:版本控制是记录文件内容变化,以便将来查阅特定版本修订情况的系统,常用于源代码的文件。

Q:我为什么要关心它呢?

A:项目做了一段时间,突然心血来潮,决定使用Git来进行版本控制,同时也是为了学习Git的使用。

1.2、Git简史

引用链接:https://www.git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-Git-%E7%AE%80%E5%8F%B2

Git学习笔记(持续更新)_第1张图片

1.3、什么是Git?

特点:

(1)直接记录快照,而非差异比较

(2)近乎所有操作都是本地执行

(3)保证完整性

(4)一般只添加数据

三种状态:

已提交(committed):已修改表示修改了文件,但还没保存到数据库中。

已修改(modified):已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

已暂存(staged):已提交表示数据已经安全地保存在本地数据库中。

工作流程:

(1)在工作区中修改文件。

(2)将你想要下次提交的更改选择性地暂存,这样只会将更改的部分添加到暂存区。

(3)提交更新,找到暂存区的文件,将快照永久性存储到 Git 目录。

1.4、命令行

可选:

--原生的命令行模式

--GUI 模式

由于只有在命令行模式下才能执行 Git 的 所有命令,因此从命令行开始学习~

1.5、安装Git

Linux:

sudo dnf install git-all

或者

sudo apt install git-all

Windows:

下载Git-2.26.0-rc0-64-bit.exe,安装。

1.6、初次运行Git前的配置

安装完 Git 之后的第一件事:设置用户名和邮件地址

git config --global user.name "John Doe"
git config --global user.email [email protected]

安装完 Git 之后的第二件事:检查配置信息

C:\Users\ASUS>git config --list
diff.astextplain.textconv=astextplain
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
http.sslbackend=openssl
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
core.autocrlf=true
core.fscache=true
core.symlinks=false
core.editor="C:\\Program Files\\Notepad++\\notepad++.exe" -multiInst -notabbar -nosession -noPlugin
credential.helper=manager
filter.lfs.clean=git-lfs clean -- %f
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
user.name=<91><86>
[email protected]

1.7、获取帮助

找到Git命令综合手册的三种等价方法:

git help 
git  --help
man git-

例如,要想获得 git config 命令的手册,执行:

git help config

此外,如果你不需要全面的手册,只需要可用选项的快速参考

git add -h

 

2、Git基础

2.1获取 Git 仓库

通常有两种获取 Git 项目仓库的方式:

--在已存在目录中初始化仓库

cd /c/user/my_project
git init
git add *.py
git commit -m 'initial project version'

--克隆现有的仓库

git clone 

2.2记录每次更新到仓库

--检查当前文件状态

git status

--跟踪新文件

git add 

--暂存已修改的文件

git add 
//运行了 git add 之后又作了修订的文件,需要重新运行 git add 把最新版本重新暂存起来

--忽略文件

例如创建一个名为 .gitignore 的文件,列出要忽略的文件的模式

$ cat .gitignore
# 忽略所有的 .a 文件
*.a

# 但跟踪所有的 lib.a,即便你在前面忽略了 .a 文件
!lib.a

# 只忽略当前目录下的 TODO 文件,而不忽略 subdir/TODO
/TODO

# 忽略任何目录下名为 build 的文件夹
build/

# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt

# 忽略 doc/ 目录及其所有子目录下的 .pdf 文件
doc/**/*.pdf

针对不同语言的gitignore文件列表:https://github.com/github/gitignore

--查看已暂存和未暂存的修改

git diff

此命令比较的是工作目录中当前文件和暂存区域快照之间的差异。 也就是修改之后还没有暂存起来的变化内容。

若要查看已暂存的将要添加到下次提交里的内容,可以用 git diff --staged 命令。

--提交更新

git commit -m "提交说明"

--跳过使用暂存区域

git commit -a -m '提交说明'

--移除文件

//从暂存区域移除
git rm 
//删除之前修改过或已经放到暂存区的文件
git rm -f 
//从暂存区域移除,但不删除该文件
git rm --cached 

--移动文件

Git 并不显式跟踪文件移动操作,如果在 Git 中重命名了某个文件,仓库中存储的元数据并不会体现出这是一次改名操作。

git mv file_from file_to

2.3查看提交历史

 

你可能感兴趣的:(Git)