GIT 入门详解指南
一 、git的安装
使用git之前必须完成git的安装
Git 目前支持 Linux/Unix、Solaris、Mac和 Windows 平台上运行
二、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
如何使用分支图查看分支的提交过程
......
原文地址:https://blog.csdn.net/qq_45973003/article/details/143744391
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!