Git,版本控制工具

1. 版本控制

版本控制是Git的一个主要关键词,git可以在开发中管理我们的文件,方便地查看记录,备份之前的版本。

1.1 Git可以解决以下问题

  • 多人协同开发

  • 追踪一个文件的历史记录

  • 提高工作效率

  • 记录开发过程

  • 统计工作量

1.2 常见的版本控制器

  • Git

  • SVN(Subversion)

  • CVS(Concurrent Version System)

  • VSS(Micorosoft Visual SourceSafe)

  • TFS(Team Foundation Server)

  • Visual Studio Online

但影响力最大、使用最广泛的还是Git

1.3 版本控制分类

版本控制主要分为以下三个

  • 本地版本控制

  • 集中版本控制(如,SVN)

  • 分布式版本控制(如,Git)

1.3.1 本地版本控制

用于记录文件的每次更新,可以对每个版本做一个快照,适合个人用。

1.3.2 集中版本控制

所以的版本数据都保持到服务器上,开发者从服务器上同步更新或上传自己的修改。不联网就看不到历史数据。但所有数据都保存在单一服务器上,发现风险过大。

1.3.3 分布式版本控制

所有的版本信息都同步到本地的每个用户,这样可以在本地查看所有版本历史,可以离线在本地提交,只需在联网时push到相应的服务器或其他用户那里。只要有一个用户的设备没有问题,就可以恢复所有的数据。但这增加了本地存储空间的占用。

2. Git历史

Git的诞生起源于Linux,Linux的创造者Lnus就是早期要维护众多开发者的不同版本,花费了大量的时间,绝大多数时间都花在了提交补丁和保存归档的繁琐事务上。知道2002年Linux项目组启用了一个分布式版本控制工具BitKeeper来管理和维护代码。2005年,BitKeep与Linux停止合作,Linus通过总结使用BitKeeper时的经验和教训,开发出了自己的分布式版本控制工具,Git。

Git是免费的、开源的,最初Git是为辅助Linux内核开发的,来取代BitKeeper。

Git是目前世界上最先进的分布式版本控制系统

3. Git环境配置

进入官网下载Git,安装无脑下一步就可。

安装成功后会有三个

  • Git Bash(Linux风格√)

  • Git CMD(Windows风格)

  • Git GUI(图形界面)

3.1Git命令

  • git config -l(查看配置)

  • git config --system --list (查看本地系统配置,在Git\etc\gitconfig目录下)

  • git config --global --list(查看全局配置,在C:\Users\root.gitconfig目录下)

3.2 设置用户名和邮箱

  • git config --global user.name "sangui"(设置用户名)

  • git config --global user.eamil "shouhaoze@stu.sjzu.edu.cn"(设置邮箱)

4. Git基本理论

4.1 工作区域

Git本地有三个工作区域,一个远程仓库

  • 工作目录(Working Directory,平时存放代码的地方)

  • 暂存区(Stage/Index,本质上只是个文件,保存即将提交到到文件列表信息)

  • 仓库区或者本地仓库(Repository或Git Directory,就是安全存放数据的位置,这里有你提交到所有版本的数据。其中Head指向最新放入仓库的版本)

  • 远程的Git仓库(Remote Directory,可以简单的认为是你项目组中的一台电脑用于远程交换)

  • image-20250421092742277.png


4.2 工作流程

  1. 在工作目录中添加、修改代码

  2. 将需要进行版本管理的文件放入暂存区域

  3. 将暂存区域的文件提交到Git仓库

因此,Git管理的文件有三种状态:已修改(modified)已暂存(staged)已提交(committed)

5. Git项目搭建

5.1 创建工作目录与常用指令

工作目录(WorkSpace)一般就是你希望Git帮助管理的文件夹,可以是你项目的目录,也可以是一个空的目录,

image-20250421154604811.png


5.2 本地仓库搭建

5.2.1 创建全新的仓库

需要在GIT管理的项目的根目录执行:

git init

5.2.2 克隆远程仓库

将远程服务器上的仓库完全镜像一份到本地:

git clone [url]

6. Git文件操作

6.1 文件4种状态

  • Untracked未跟踪。此文件在文件夹中,但并没有加入到Git库,不参与版本控制。使用git add命令,状态变成Staged

  • Unmodify文件已经入库,未修改。即版本库中的文件快照内容与文件夹中完全一致。修改文件,状态变为Modified。使用git rm命令移出版本库,状态变成Untracked

  • Modified文件已修改,仅仅是修改,并没有进行其他操作。使用git add命令,状态变为staged。使用git checkout,则放弃修改,状态变成Unmodify

  • Staged暂存状态。执行git commit命令将修改同步到库里,这时库中的文件和本地文件又变为一致,文件为Unmodify状态。执行git reset HEAD filename命令取消暂存,文件状态变为Modified

6.2 查看文件状态

6.2.1 查看指定文件状态

git status [filename]

6.2.2 查看所有文件状态

git status

6.3 提交文件

6.3.1 添加文件到暂存区

git add .

6.3.2 提交暂存区的文件(提交到本地仓库)

git commit -m "消息内容"

6.4 忽略文件

有时候不想把某些文件提交,或有些文件没必要提交的,可以在主目录下建立“.gitignore”文件,

  • *.txt:忽略所有.txt结尾的文件

  • !lib.txt:但lib.txt除外

  • /temp:忽略所有文件,但不忽略temp目录里的文件

  • build/:忽略build目录里的所有文件

  • doc/*.txt:忽略doc目录下的所有txt文件,但不忽略doc子目录里的txt文件

7.使用Github

设置本机绑定SSH公钥,实现免密码登录。Github是远程仓库,我们平时工作在本地仓库

在主目录下新建文件夹.ssh。在此处输入bash命令,ssh-keygen -t rsa,输入之后会生成两个文件:

  • id_rsa.pub

  • id_rsa

将公钥信息public key添加到Github账户中就行了。

在Github中新建仓库就可以


通过学习整理 狂神说 公开视频总结

  • 微信
  • 赶快加我聊天吧
  • QQ
  • 赶快加我聊天吧
  • weinxin
三桂

发表评论 取消回复 您未登录,登录后才能评论,前往登录