GIT 入门详解指南

news/2024/11/18 9:29:55/

一 、git的安装

使用git之前必须完成git的安装

Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行

git 安装教程


二、git 的基本概念

2.0 git基础命令讲解

git 指令使用前准备先使用git命令配置用户的名字和用户的邮箱

//git指令配置用户名
git config --global user.name "userName"// git 指令配置用户的邮箱地址
git config --global user.email "email.com"

 参数含义:

Local 表示配置到本地,此处做出省略【本地配置,只对本地仓库有效 】

--global : 全局配置,所有仓库生效

--system :系统配置,对所有用户生效

注:这两个指令只需要执行一次

使用git 指令保存用户的用户名和密码

git config --global credential.helper store

查看git的配置信息

git config --global --list

三、如何新建版本库

新建版本库的目的是更好的对本地的仓库进行管理

git 仓库分为两种,一种是本地仓库,一种是远程仓库

git init ----------------> 在自己电脑的本地创建一个仓库

注:使用git init 指令进入对应的目录,可以将本地的文件初始化为一个本地仓库

创建本地仓库的步骤:

1.0 mkdir learn-git       // 创建一个名字为learn-git的文件夹2.0 cd learn-git          // 进入刚刚创建的文件夹3.0 git init              // 初始化文件夹为本地仓库

实际操作:


四、创建远程仓库

使用 git clone  “storeName”  远程克隆一个仓库

git clone "远程仓库的地址"
4.1 工作区域和文件状态

如何理解git的工作区和文件的状态:

git的工作区:工作区可以理解为我们本地的目录,也就是我们电脑可以看到的目录

git的暂存区:可以理解为临时存储文件的地方【或者文件的中转站】

git的本地仓库:可以理解为git的版本库里面有一个.git的目录

注:版本控制系统中保存文件的方式就称之为提交

4.2 git中文件的工作状态

 各个文件不同状态讲解

4.3 如何将文件添加到仓库
git init        创建仓库git status      查看仓库的状态git add         将仓库文件添加到暂存区git commit      将暂存区中的文件添加到本地仓库

 实际操作:

git status     // 显示文件的状态

表明文件处于一个未被管理的状态

git add .        // 将当前所有文件添加到暂存区git add fileNamw // 将指定文件添加到暂存区

git commit -m "这是提交文件的信息"   // 将文件提交到本地仓库

git 文件的提交,将文件提交到本地的仓库,在将文件提交到本地仓库的同时需要使用-m指令将文件提交的信息同时提交大本地仓库中

注:以下有详细的解释

注 :

git commit 只会提交暂存区中的文件而不会提交本地中的文件

在使用git commit 这个命令的时候需要加上 -m 来显示提交的信息


4.4 git 如何使用通配符

通配符的定义

通配符是用于在文件系统中匹配文件名或文本模式的特殊字符。它们在很多操作系统、命令行工具和编程语言中都有应用

通配符的使用

【星号】:   *          表示匹配 “零” 个或者 “多个” 字符,如:*.txt 表示匹配以txt结尾的所有文件

【问号】:     ?           表示匹配单个字符,如:file?.txt 表示匹配 file1.txt 或者 file2.txt等文件

【方括号】:  [ ]         表示匹配方括号内列出的任何一个字符。例如,file1[123].txt可以匹配    file1.txt、file2.txt 或 file3.txt

【大括号】:{ }        用于创建模式组合如 {*.jpg, *.png} 可以匹配所有以 .jpg.png 结尾的文 件名。


4.5 git 中通配符的使用

使用git add *.txt 将所有以txt结尾的文件添加到暂存区中  

注:git add . 可以将当前文件夹中的所有文件添加到暂存区中


在 git 中可以使用git log 指令查看提交的信息

git 仓库中指令总结


4.6 git reset 指令

git reset命令有三种不同的用法,后面可以跟着不同的参数:分别代表的含义是软的,硬的,混合的。

git reset --soft 表示的是回退到某一个版本,并且保存工作区和暂存区的修改

git reset --hard 表示的是回退到之前的某一个版本,并且丢弃掉工作区和暂存区的修改

git reset --mixed 回退到某一个版本,只保留工作区的修改内容,丢弃暂存区的修改内容

实际演示

git diff 查看工作区,暂存区,本地仓库之间的差异

git diff后面什么文件都不加的话显示的是工作区和暂存区的内容

比较工作区和暂存区之间的差异 git diff

比较工作区和版本库之间的差异 git diff HEAD

比较暂存区和版本库之间的差异 git diff --cached

git commit -m "commit4"


4.7 git 中HEAD的含义

head含义表示的是指向当前最新的提交节点

git diff HEAD~ HEAD -------> 比较当前版本和上一个版本的区别

git diff HEAD^ HEAD -------> 也是比较当前版本和上一个版本的区别

git diff HEAD~3 HEAD --------> 表示比较当前版本和前面三个版本的区别

git diff HEAD~3 HEAD file3.txt ---------> 查看file3的差异内容

git diff 还可以查看两个分支之间的差异【这个时候直接加上两个分支的名字即可】


4.8 如何从版本库 中提交文件

如何删除本地仓库中的内容,使用 rm 指令删除指令中的内容

rm flie1.txt         // 删除文件

查看当前目录下的文件

ls                  查看当前目录下的文件

git add file.txt  表示将这个文件从暂存区中删除掉

如何使用git rm 这个命令删除我们不需要的版本库

git rm file2.txt 将程序从咱们的版本库中删除,同时暂存区中也删除

4.9 gitignore的作用

gitignore 的作用忽视省略不提交相关文件

...


五、推送到远程仓库

常见的代码托管平台

github 代码托管平台

github注册指南:windows安装git(全网最详细,保姆教程)-CSDN博客

gitee 代码托管平台

gitee 注册指南 :10、Git之国内项目托管平台(Gitee码云) - Javaer1995 - 博客园

如何注册 github

...


5.1 创建github仓库

 注:由于github是一个外国的网站访问的时候需要挂梯子

第一步:登录github创建自己的仓库

 第二步:创建远程仓库

第三步:将本地仓库和远程仓库关联起来


5.2 克隆远程仓库

注:使用git clone 指令克隆远程仓库

git clone “远程仓库的地址”

访问远程仓库有两种方式一种是https的方式,一种是ssh方式

https 的方式需要在拉取远程仓库的时候提供自己的用户名和密码

ssh 的方式不需要在拉取的时候提供自己的用户名和密码,但是需要配置ssh秘钥


5.3 配置ssh秘钥
1.0  cd ~   进入用户的根目录2.0  cd .ssh 进入用户的ssh目录3.0 ssh-keygen -t rsa -b 4096 生成咱们的ssh秘钥远程仓库生成秘钥之后需要进入公钥将里面的钥匙放进远程仓库

注:当指定一个新文件名的时候需要进行这一步操作

tail  -5   config

将以下的5行内容添加到github里面,这个文件的意思是当我们访问github.com的时候指定使用ssh下的test这个秘钥

注:当前面的步骤指定新的文件名的时候需要使用这个步骤,否则不需要进行这个步骤


5.4 克隆远程数据库

定义:使用克隆命令将远程创建的仓库克隆到本地


5.5 git 简介

git 是一种分布式的版本控制系统,本地仓库和远程仓库是2个仓库它们之间是相互独立的,本地仓库的修改不会影响到远程的仓库,远程仓库的修改也不会影响到本地的仓库

这个时候我们需要一种机制来同步远程仓库和本地仓库的修改内容,让本地仓库和远程仓库的状态保持一致

git push 将本地仓库的内容推送到远程仓库

使用我们的推送命令将本地仓库的内容推送到远程仓库成功,查看远程仓库进行验证

 


本地已经有一个仓库的情况下如何将程序放到远程仓库?

在github上新创建一个仓库回到命令行将本地的仓库推送到远程

使用 git remote add origin 远程仓库的地址

执行完成之后使用 git remote -v 查看我们当前仓库对应的远程仓库别名和地址

执行完以上两个命令之后本地仓库就已经被推送到我们的远程仓库了,这个origin表示的是远程仓库的地址名。


git branch -M main   这一行代码的意思是指定分支的名称为main

(注:如果本地仓库和远程仓库的别名不同需要将本地仓库的地址切换到远程仓库)

git push -u origin main 这一行代码的含义是把本地的main分支和远程的origin仓库的main分支关联起来,实际上补全的写法是git push -u origin main:main。


如果我们在远程仓库修改了部分的内容,那么我们需要将远程仓库的内容拉取到本地

github上的文件是可以直接编辑的


【演示----> 在github上的修改模拟远程仓库的修改和拉取,通常远程仓库的内容是程序员在本地修改之后推送到远程仓库的,我们需要将远程仓库上修改的内容推送到本地】

这个时候远程仓库已经有了一个新的文件,但是我们本地仓库还有一个文件的内容没有被获取,这个时候我们需要使用pull 命令将远程仓库的内容拉取到本地仓库。


git pull命令详解

git pull <远程仓库名> <远程分支名>:<本地分支名>

可以直接使用 git pull 进行拉取省略远程仓库名,远程分支名【这个时候默认拉取的就是远程仓库中名字为origin的分支】。

如果不省略的话拉取的就是指定仓库的指定分支名。

使用 ls 命令查看咱们本地的文件仓库目录显示远程目录中的内容已经同步到本地仓库了


注:在我们从远程仓库拉取代码的同时,本地本地仓库中的内容会自动的和远程仓库中的内容做比对,如果本地仓库的内容和远程仓库的内容有冲突是不会进行合并操作的。

从远程仓库获取内容还可以使用fetch命令,区别在于fetch命令只是获取远程仓库的修改,但是并不会自动合并到本地仓库中,需要我们手动的将文件合并到本地仓库中

总结:


六、国内代码托管平台

如何使用国内的平台托管我们的仓库

一个是使用咱们国内的代码托管平台gitee 和 gitLab

gitLab的使用

GitLab代码管理_源代码管理工具_代码仓库_代码托管平台_代码安全审计-极狐GitLab

私有化部署表示的是我们可以在自己的服务器上部署一个自己的代码托管服务

部署的过程可以参考gitLab的官方文档

..................


如何使用GUI工具和IDE如何使用git

了解市面上常见的GUI工具【后续补充】


如何在VSCode中使用git

如何在VSCode中使用git------重要-----


git 中的分支介绍

分支的使用场景适用于协同开发的场景

【git 中分支的基本操作】**

mkdir branch-demo         创建一个branch-demo文件夹

cd branch-demo               进入branch-demo文件夹

git init                              初始化本地仓库       


分支的命名方式

git 中分支的基本操作,使用分支名加序号的方式来命名文件,分支名加冒号加序号的方式来编写提交记录

在此次的git文件命令中使用


echo mian1 > main1.txt 创建一个文件

git add . 将文件添加到暂存区

git commit -m "描述" 将文件添加到本地仓库


echo mian2 > main2.txt 创建一个文件

git add . 将文件添加到暂存区

git commit -m "描述" 将文件添加到本地仓库


echo mian3 > main3.txt 创建一个文件

git add . 将文件添加到暂存区

git commit -m "描述" 将文件添加到本地仓库


如何创建一个新的分支 git branch "branch-name" 创建一个新的分支

使用git branch “branch-name”  ----------------创建一个新的分支

git branch dev

【注:使用git checkout切换分支的时候可能会存在一些潜在的问题】

git checkout 命令不仅仅可以用来切换分支还可以用来修改之前的一些相关文件,为了解决这个问题git官方还为我们提供了一个解决问题的方案,就是使用swtich指令切换分支


git switch 切换分支的名称

如何将代码分钟中的功能合并到主线,可以使用git merge功能将分支中的代码合并到主线

git merge dev 【注:merge 后面的分支名称是将要被合并的分支,当前所在的分支是合并后的目标分支】

如果我们要把dev 分支合并到main分支的话就需要首先切换到main分支中,然后执行git merge dev命令

将分支中的内容合并到主干分支

在命令行中可以通过git log 查看我们的分支图

git log --graph --oneline

查看git的提交树

git log --graph --oneline --decorate --all

如何使用分支图查看分支的提交过程

......


http://www.ppmy.cn/news/1547952.html

相关文章

MySQL数据库(四)----查询相关操作(单表)

准备四张表&#xff1a; dept(部门表),emp(员工表),salgrade(薪资等级表),bonus(奖金表) 建表语句&#xff1a; create table DEPT( DEPTNO int(2) not null, DNAME VARCHAR(14), LOC VARCHAR(13) ); alter table DEPT add constraint PK_DEPT primary key (DEP…

Qt 项目架构设计

在开发一个 Qt 项目时&#xff0c;合理的文件夹结构和清晰的构建流程是非常重要的。Qt 项目通常需要管理源代码、UI 文件、资源文件、构建脚本等。下面我会给出一个详细的文件夹结构示例&#xff0c;并解释每个部分的作用及如何设计 Makefile 或使用 Qt 的 qmake 来自动化构建过…

微信小程序:vant组件库安装步骤

前言&#xff1a;在微信小程序中引用vant组件报错&#xff0c;提示路径不存在&#xff0c;这很有可能是因为没有安装构建vant组件库导致。下面是我整理的安装vant组件库的步骤: 第一步&#xff1a;安装node.js(执行完第一步请重启小程序) 具体步骤请看链接&#xff1a;node.js…

详解八大排序(一)------(插入排序,选择排序,冒泡排序,希尔排序)

文章目录 前言1.插入排序&#xff08;InsertSort&#xff09;1.1 核心思路1.2 实现代码 2.选择排序&#xff08;SelectSort&#xff09;2.1 核心思路2.2 实现代码 3.冒泡排序&#xff08;BubbleSort&#xff09;3.1 核心思路3.2 实现代码 4.希尔排序&#xff08;ShellSort&…

C++11标准模板(STL)- 算法 - 对一个范围内的拥有一定未指定类型的元素排序(qsort, qsort_s)

定义于头文件 <stdlib.h> 算法库提供大量用途的函数&#xff08;例如查找、排序、计数、操作&#xff09;&#xff0c;它们在元素范围上操作。注意范围定义为 [first, last) &#xff0c;其中 last 指代要查询或修改的最后元素的后一个元素。 对一个范围内的拥有一定未指…

手机版产品目录如何制作?

随着互联网的快速发展&#xff0c;手机已经成为人们日常生活中不可或缺的一部分。许多企业都开始重视手机端的产品展示&#xff0c;而手机版产品目录的制作就显得尤为重要。现在由我来教大家手机版产品目录制作的步骤、技巧&#xff0c;轻松打造一款高颜值、易操作的移动端产品…

软件测试之测试用例扩展

软件测试之测试用例扩展 1. 测试用例覆盖2. UI布局覆盖3. 兼容性覆盖4. 测试用例条数 1. 测试用例覆盖 规则覆盖UI布局兼容性 2. UI布局覆盖 2条用例即可 布局, 颜色与原型图一致图片和文字描述无误 3. 兼容性覆盖 测试5大浏览器 火狐谷歌ieEge苹果 4. 测试用例条数 使…

前端三大组件之CSS,三大选择器,游戏网页仿写

回顾 full stack全栈 Web前端三大组件 结构(html) 样式(css) 动作/交互(js) --- 》 框架vue&#xff0c;安哥拉 div 常用的标签 扩展标签 列表 ul/ol order——有序号 unordered——没序号的黑点 <!DOCTYPE html> <html><head><meta charset"…