Git基础学习

# Git

版本控制#

简单来说就是用于管理多人协同开发项目的技术

不明白版本控制的话,如果你写过简书,那么你的每一篇简书的设置里都有历史版本的选项,里面记录了你更新简书的每一个版本,并且能够回调到那个版本

没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,例如:软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性以及软件整合问题等等

版本控制的作用#

版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术

  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工程工作量
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,同时降低人为错误

常用的版本控制工具#

  • Git
  • SVN
  • CVS
  • VSS
  • TFS

版本控制分类#

  1. 本地版本控制RCS#

    记录文件每次的更新,可以对每个版本做一个快照,或者记录补丁文件,使用个人,例如RCS

  2. 集中版本控制SVN#

    所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或更新自己的代码

    image-20220330082618017

  3. 分布式版本控制Git#

    每个人都拥有全部的代码,虽然这样增大了安全隐患,不会因为服务器的问题导致代码的丢失

Git历史#

同生活中的许多伟大事物一样,Git 诞生于一个极富纷争大举创新的年代。

Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。

Linux社区中存在很多的大佬!破解研究 BitKeeper !

到了 2005 年,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了 Linux 内核社区免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds)基于使用 BitKeeper 时的经验教训,开发出自己的版本系统。(2周左右!) 也就是后来的 Git!

Git环境配置#

打开 [git官网] https://git-scm.com/,下载git对应操作系统的版本。

所有东西下载慢的话就可以去找镜像!

官网下载太慢,我们可以使用淘宝镜像下载:http://npm.taobao.org/mirrors/git-for-windows/

Git Bash:Unix与Linux风格的命令行,使用最多

Git CMD:Windows风格命令行

Git GUI:图形界面的Git

命令 作用
cd 回到根目录
cd .. cd和..之间有个空格,用于返回上级目录
pwd 显示当前所在目录的绝对路径
ls 列出当前目录的所有文件
ll 列出当前目录的所有文件,其内容更为详细
touch 新建一个文件,其名称为全名称,包含文件类型描述
rm 删除一个文件
mkdir 新建一个目录,也就是新建一个文件夹
rm -r rm和-r中有空格,用于删除一个文件夹
mv A B 将A文件或者文件夹移动到B文件夹内
reset 重新初始化终端
clear 清屏
history 查看指令历史
exit 退出

如同我的世界输入指令一般,按TAB键可以快速补全指令

Git配置#

git和Java一样,如果想要在任何地方都能用git,那么需要设置环境变量,但是我们右键有git bash here,所以配置环境变量是用来兜底的,其实自动配好的

git config - 查看git配置
git config --system --list 查看系统config
git config --global --list 查看当前用户配置

在Git安装文件目录下有gitconfig配置文件,对应的是系统config,全局配置

在用户文件目录下有另一个gitconfig配置文件,对应的是用户配置,有名称和邮箱……

设置用户名与邮箱(用于标识)#

git config --global user.name "name" 用于设置用户的信息,name也可以换成其他的信息类别,像:email,address等等

Git基本理论#

工作区域#

Git本地有三个工作区域:工作目录、暂存区、资源库

Git云还有一个工作区域:远程git仓库

其中文件在这四个工作区的转换关系如下:

图片

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
git push\git commit\git add files\git pull\git reset\git checkout是将文件移入指定工作区的方法

Git项目搭建#

可以使用两种方式建立一个git项目

  1. 新建一个本地目录,然后git hash here中用git init指令初始化git项目
  2. 从远程仓库克隆一个git项目,git clone 项目链接

Git文件操作#

文件的四种状态:#

  • Untracked:未跟踪状态,不参与版本控制,可通过git add将状态改为Staged
  • Unmodify:文件入库但未修改的状态,如果文件被修改则文件状态改为Modified,如果使用git rm移出版本库,则成为Untracked状态
  • Modified:文件已经修改,可通过git add进入暂存staged状态,使用git checkout则丢弃修改,返回unmodify状态,这个git checkout即将文件移出库!!
  • Staged:暂存状态,执行git commit则将修改同步到库,此时库文件和本地文件一致,文件未Unmodify状态,执行git reset HEAD filename取消暂存,文件状态未Modified
git status [filename] 查看指定文件状态
git status 查看所有文件的状态
git add . 添加所有文件到暂存区
git commit -m 提交暂存区中的内容到本地仓库 -m指提交信息

文件的选择提交#

通配符代码 作用
*.文件类型 忽略此文件类型的所有文件,例如*.txt即将所有的txt文件忽略
!文件名.文件属性 忽略此文件
/文件夹名称 向前忽略根目录下的TODO文件,不包括此目录
文件夹名称/ 忽略此文件夹下的所有文件
文件夹名称/*.文件类型 忽略此文件夹下的此种类型的文件,对其他文件夹下的此种文件无影响

使用码云#

也可以使用GitHub,但是速度较慢,国内的Gitee就可以

  1. 注册账号
  2. 完善信息
  3. 配置SSH公钥
  4. 创建远程仓库

IDEA中集成Git#

简单来说就是IDEA会发现项目文件中的Git配置文件并自动连接到远程仓库,我们要做的是在项目中初始化Git配置文件或者在IDEA创建好项目之后从远程仓库中克隆过来,此时我们会发现,IDEA右上角将会出现Git的快捷键,右下角的Version Control点开后可以查看版本以及执行代码。

image-20220331145131029

image-20220331145349516

Git分支#

两张图就可以理解

图片

图片

关于git分支的指令#

指令 作用
git branch 列出所有本地分支
git branch -r 列出所有远程分支
git branch [branch name] 新建一个分支,但位置不变
git checkout -b [branch] 新建一个分支,并跳转到新分支里
git merge [branch] 合并指定分支到当前分支
git branch -d [branch name] 删除分支
git push origin --delete[branch name] 删除远程库里的分支
git branch -dr [remove/branch] 删除远程分支

补充文档:#

  1. 狂神说Git文档
  2. 狂神说Git视频
  3. Git命令学习
posted @   Pilo-pillow  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示
主题色彩