Git\GitHub\Gitee码云\GitLab
前言
本文为尚硅谷Git入门到精通全套教程学习笔记
一、Git概述
Git是一个免费的、开源的分布式版本控制系统。
1、何为版本控制
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,
方便版本切换。
2、为什么需要版本控制
个人开发过渡到团队协作。
3、版本控制工具
a.集中式版本控制工具
SVN等
劣势:单点故障
b.分布式版本控制工具
Git等
解决了集中式版本控制系统的缺陷:
服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
4、Git简史
Git为林纳斯开发
5、Git工作机制
Git工作机制简图
6、Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
局域网-》GitLab
互联网-》GitHub(外网)、Gitee码云(国内网站)
二、Git安装和客户端的使用
1、下载地址
# 下载git页面地址
https://git-scm.com/downloads
# 无脑下一步安装即可
2、安装成功验证
git --version
三、Git常用命令
1、设置用户签名
git config --global user.name zhangsan
git config --blobal user.email zhangsan@qq.com
说明:一般只在第一次安装设置一次,用于区分不同操作者身份,不设置则无法提交代码。
注意:此信息和代码托管中心无任何关联。
2、初始化本地库
a.基本命令
git init
b.生成的隐藏目录(.git)
-rw-r--r--@ 1 zhangsan staff 21 1 4 09:34 HEAD
-rw-r--r--@ 1 zhangsan staff 137 1 4 09:34 config
-rw-r--r--@ 1 zhangsan staff 73 1 4 09:34 description
drwxr-xr-x@ 15 zhangsan staff 480 1 4 09:34 hooks
drwxr-xr-x@ 3 zhangsan staff 96 1 4 09:34 info
drwxr-xr-x@ 4 zhangsan staff 128 1 4 09:34 objects
drwxr-xr-x@ 4 zhangsan staff 128 1 4 09:34 refs
3、查看本地库状态
git status
# 执行结果
On branch main # 目前分之
No commits yet # 没有提交记录
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
4、编辑文件
vi hello.txt
hello git!!
:wq
5、查看状态
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
hello.txt
6、添加暂存区
git add hello.txt
再次查看本地库状态
git status
# 执行结果
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: hello.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
7、删除暂存区文件
git rm --cached hello.txt
git status
# 执行结果
On branch main
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store
hello.txt
# 查看文件是否被删除
ls -l
-rw-r--r--@ 1 zhangsan staff 12 1 5 09:42 hello.txt
# 结论文件不被删除 只是被移除了暂存区
8、再次添加暂存区
git add hello.txt
# 查看本地库状态,发现再次被添加到暂存区
On branch main
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: hello.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
.DS_Store