我是靠谱客的博主 可爱裙子,最近开发中收集的这篇文章主要介绍Git的常用操作图文指南,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Git 常用操作和远程仓库的管理 小白教程

    • 一、安装 git
        • Git的安装
    • 二、关于 Git 的一些简介
      • 在使用 Git 之前,我们先了解一下 Git 是啥玩意
        • Git ---- 开源分布式版本控制系统
    • 三、Git 常用的基本操作(可以跟着我的操作玩一玩)
        • 1.项目初始化
        • 2.开始在本地仓库管理项目吧!
          • 2.1 把项目添加到本地的暂存区
          • 2.2 把项目从暂存区提交到本地仓库的master分支:
          • 2.3 试着玩一下 暂存区 的后悔药吧!(刚接触几乎用不到,没兴趣可跳过...)
          • 2.4 提交日志和版本控制(感兴趣可以玩一下,着急学习远程仓库就跳过吧????)
          • 2.5 查看文件具体的修改信息
    • 四、远程仓库
        • 1.远程仓库简介:
        • 2.注册一个远程仓库的账号
    • 五、本地仓库和远程仓库的数据通信
        • 1.创建一个自己的远程仓库
        • 2.关联远程仓库
        • 3.实现本地仓库和远程仓库的通信
        • 4.拉取或者上传项目
        • 5.克隆项目
    • 六、分支管理
        • 1.什么是分支?
        • 2.关于分支,我们现在需要知道掌握什么?
        • 3.开始尝试吧
    • 七、远程分支同步
        • 这个不多说,就是把本地的分支同步推送到远程分支去,
        • 让远程和本地的仓库能保持一致!
    • 八、标签管理
        • 1.为什么要用标签管理?
        • 2.怎么玩呢?
      • 九、小结:
        • 附录:如果我们加入了某个仓库,怎么参与到其中某个分支的开发呢?(其实就是怎么交作业)

一、安装 git

 本文简单介绍 Git 的基本操作,适合刚接触的 Git 的小伙伴...我会列举一些常见问题以及解决方案,
 
 毕竟我也是从问题堆里一路爬坑来的!反正有问题,找度娘,大部分问题都能在那找到解决方法!

这也是我自己给自己总结的一篇 Git 操作指南,方便随时复习!

 如果想深入学习 Git,建议参阅官方文档 :

Git官方文档: https://git-scm.com/book/en/v2

Git文档

Git的安装

关于 Git 的安装,网上有很多很详细的教程,就不在此赘述,一般来说,新手就默认一路 NEXT 安装即可!

Git官网下载地址:https://git-scm.com/downloads

目前已经更新到 2.37.1 版本

Git下载

安装之后记得配置环境变量:保证在任何地方都能访问到Git

配置环境变量

 配置完之后,我们就可以在命令行或者其他终端访问 Git 了,包括 VScode 内置终端:
 
 使用下面两个命令:
git -v 	# 查看当前 Git 版本 
git 	# 会出现很多 Git 的提示信息
如果上述命令得不到下面的信息,说明你的 Git 安装出问题了...请自行百度解决吧!

在这里插入图片描述

 当然,看似简单的安装不总是一番风顺。可能有小伙伴会在安装的过程中遇到各种问题,还是那句话:
 
 活用百度,大部分问题都可以解决!

 关于 VScode 常见问题:可能有同学配置完之后,在 VScode 终端还是找不到 git ,
 不要慌,检查一下环境变量的路径,如果路径没问题,那一般来说,关机重启之后就有了!
 (我安装的时候就遇到过,折腾了半天,结果只需要重启就OK~~????)

二、关于 Git 的一些简介

在使用 Git 之前,我们先了解一下 Git 是啥玩意

Git ---- 开源分布式版本控制系统

    对于学习编程的小伙伴来说,咱们使用 Git 就是用来管理代码的一种工具!有了这种工具,
    
    我们可以更方便、高效地进行代码的开发与合并,也能优化多人协作开发的流程!
	
	简单提一下:代码管理分为集中式和分布式,目前分布式比较主流,Git 就是分布式管理方式!

三、Git 常用的基本操作(可以跟着我的操作玩一玩)

1.项目初始化

1.在桌面上新建一个空文件夹 “Git演示”,以它为我们要管理的项目,开启 Git 试炼之旅吧!
2.在该文件夹下打开任意命令行工具,这里为了方便,之后的操作都是在 VScode 终端进行????
3.VScode ==> 空文件夹 ==> 右键“在集成终端中打开”,输入以下指令:
git init # 项目初始化
成功之后如下图所示,且在空文件夹内会出现一个 .git 文件夹
这是个隐藏文件夹,可以设置开启!

在这里插入图片描述
在这里插入图片描述
注意!这个 .git 文件夹是用来跟踪管理 Git 仓库的,
没事千万别去修改里面的文件!!!不然会破坏 Git 仓库!

当然...你要是非要试一下也无妨,反正练手的项目可以随便丢...多折腾一下说不定会发现什么新大陆呢!

2.开始在本地仓库管理项目吧!

在这之前,先简单了解一下本地仓库的结构:

在这里插入图片描述

工作区: 就是项目的根目录(文件夹)
stage: 本地仓库的一个暂存区 暂时存放的区域 等待提交,可撤回重新编辑...防止用户误操作,给一次后悔的机会!
master: 本地仓库的 master 分支 git init 之后默认创建的分支,也可能会是 main...用来永久保存项目。
		这里存放的是提交之后的项目,可上传到远程分支上...一旦提交,就不可撤回了!

在这里插入图片描述

2.1 把项目添加到本地的暂存区
1.我们在刚才的空目录下新建一个文件 “readme.txt”
2.在新建的文件第一行写点什么...就当我们在进行项目开发了!

在这里插入图片描述

3.假设此时我们写累了,不想写了,想把项目先添加到暂存区保存一下,就使用以下指令:
git add "fileName" # 把某个文件添加到暂存区
当然在此之前,最好先使用指令:
git status # 查看当前项目的更改状态 我们能看到所有发生变动的文件
如果需要添加多个文件,就使用:
git add . # 将所有变动的文件都添加到暂存区
然后再使用 git status 查看一下添加状态

注意!!!git add . “add” 后面一定要先打个空格,再打 “.” 否则会报错!
在这里插入图片描述

2.2 把项目从暂存区提交到本地仓库的master分支:
1.好了,我们不修改了,写完了,然后就把它提交到仓库保管吧!
使用下面指令:
git commit -m "描述信息,我这次提交新增了一个 readme.txt 文件!" # 将项目提交到本地仓库

在这里插入图片描述
注意!!!如果是第一次提交,可能会弹出如下信息:在这里插入图片描述
这个不用着急,第一次提交,你总得告诉人家这个仓库的主人是谁吧!

按照它的提示,注册一下用户邮箱和用户名即可:
git config --global user.email "123456@qq.com"
git config --global user.name "MX扑克猫"
然后再使用:
git commit -m "描述信息..." 
OK 到这 以后提交都不会再有这种问题了! 也恭喜你成为了一个正式的  “本地” 仓库管理员!
别着急,远程的在后面呢!
2.3 试着玩一下 暂存区 的后悔药吧!(刚接触几乎用不到,没兴趣可跳过…)
1.假如,我们在 readme.txt 文件第二行不小心写了某人的坏话!!????
2.然后又不小心把文件添加到了 暂存区 !???? 但是还好还没提交到仓库...
3.怎么办?被他看到了会被捶的吧...????

在这里插入图片描述

不要方!暂存区给了一次后悔的机会!
git restore "fileName" # 把指定文件从暂存区打回来
git restore  --staged "fileName" # 把指定文件从暂存区打回来
注意,这操作是让该文件回到上一次提交(也就是上次commit)的状态,只能撤一次,不能连续撤回!

在这里插入图片描述

当然,这个指令不一定会生效,原因多种多样,可能是编辑器的问题,
也可能是指令后面 - - 修饰符的原因亦或者其他原因,目前这不重要,了解一下就OK!

但是千万注意!!!一旦用 commit 提交之后… emmm… 建议删库跑路吧!
这真不是开玩笑,因为你的每次提交都会被记录在案,一旦上传,当众社死!
就算手动改了,或者切换到之前的版本,都会留下不可磨灭的痕迹!

玩闹归玩闹!提交请三思!慎重慎重!

在这里插入图片描述

2.4 提交日志和版本控制(感兴趣可以玩一下,着急学习远程仓库就跳过吧????)
1.假设我们再给 readme.txt 文件 添加几行字,每加一行就提交一次...

在这里插入图片描述

此时,我们已经提交了好几个版本了!那怎么查看提交的历史记录呢?
git log # 控制台打印 Git 日志

在这里插入图片描述

通过 git log 就可以查看我所有的历史提交记录了;
然后我们可以获取到每一个版本的版本号:比如第一次提交的:0ab5133f0ddbb3d51e44b2b7b0584e647e3a0430
这个版本号是一个哈希值,可以理解为文件的指纹,身份证,是唯一的!
得到这个版本号之后,我们可以通过:
git reset --hard 版本号 # 强行回滚到指定版本 相当于 Ctrl + Z 的撤销操作... 
版本号一般只需要复制前十几位就够了,几乎不可能会重复...

但是! git log 只能查看当前版本之前的提交记录...
如果我们滚回第一版,那后面的2、3、4都看不到了...也就滚不回去了...

在这里插入图片描述

不要方!咱们还有招!
git reflog # 查看所有的历史记录 包括回滚记录
这样 再搭配:
git reset --hard 版本号
咱就可以实现版本切换的奥义! “反复横跳!”

在这里插入图片描述

2.5 查看文件具体的修改信息
1.我们现在再修改一下第三个版本的 readme.txt
2.然后使用以下指令查看修改信息
git diff # 查看文件修改的具体内容

在这里插入图片描述

四、远程仓库

	OK,前三节我们把本地仓库玩了一下,浅显了解了一下仓库管理员的基本工作和仓库管理方式;
	
	接下来咱们就玩点更好玩的!让我们的本地仓库跟某一个远程 Git 仓库通信,能互传文件!
	
	当然,至于底层是怎么实现通信的,那就是计算机网络和通信原理的事了,

	我们只需要知道在应用层怎么操作就 OK! 走起!

1.远程仓库简介:

	远程仓库,诸如 github、Gitee(码云)之类的网站,给我们提供了一个远程代码管理的平台;

	让我们可以将代码上传到远程仓库,也可以从远程仓库抓取代码....

	这就能让多人协同开发同一个项目,优化代码管理,提高开发效率...

	若是开源网站,那更是能让所有技术人员共同交流、相互学习、相互提升...
	
	有句话说得好,技术最好的发展方式就是开源,一个人闭门造车的成效是很低的!

2.注册一个远程仓库的账号

这个不用写教程了吧...注册账号这种事应该都没什么问题!

可以注册一个 GitHub 账号,要是进不去就注册码云账号吧;

我接下来的操作都是以码云为例,GitHub上也是一毛一样的操作!

五、本地仓库和远程仓库的数据通信

1.创建一个自己的远程仓库

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.关联远程仓库

有了远程仓库之后,我们可以通过下面指令关联我们的远程仓库
git add .
git commit -m "首次上传前的最后一次提交"
git remote add origin 远程仓库地址 # 本地仓库关联远程仓库
git remote -v # 查看当前关联的远程仓库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.实现本地仓库和远程仓库的通信

1.我们虽然关联了仓库,但现在还不能通信;
2.因为我们需要把远程仓库和本地仓库配对,也就是需要一个接头暗号!
3.否则你们之间的通信就是不安全的,别人随时能给你拦截了!
4.暗号:非对称加密,本地有一个秘钥加密,远程需要一个公钥解密,才能实现安全通信!
ssh-keygen -t rsa -C "邮箱账号" # 在本地生成一对秘钥 加密和解密的

一路按 Enter 键就 OK

在这里插入图片描述
此时,我们会在 C 盘/用户/你的用户名/ 下面看到一个 .ssh 文件 是个隐藏文件,可以设置可见!

在这里插入图片描述
然后,在 .ssh 文件 内会有两个文件,也可能三个!
在这里插入图片描述
然后,把 id_rsa.pub 文件内的全部内容复制到 远程仓库的 SSH 公钥里去!

在这里插入图片描述
在这里插入图片描述

4.拉取或者上传项目

OK,现在我们已经把本地和远程建立了安全通信通道了,可以开始数据交互了!
git push origin master # 把本地项目推送到远程 master 分支上

执行命令之后,系统会问你是不是要关联? 输入yes
然后 .ssh 文件夹里面会多一个 .hosts 的关联文件,不要乱动它!!!

但是,这时候坑就来了! 会报错!个人觉得这是个很有意思的报错,所以重点拿来分析一下!

在这里插入图片描述
在这里插入图片描述

分析一下原因:
	1.报错原因:远程仓库拒绝了你的首次推送!
	2.因为远程仓库有几个文件,而本地仓库没有!如果推送上去,会把远程文件覆盖!
	3.所以远程仓库拒绝了!文件有冲突!
解决方法:
	先把远程仓库的文件拿到本地,然后再一起传回去!

在这里插入图片描述

git pull origin master # 从远程分支拉取项目

在这里插入图片描述

然而…还是不行! 它不让你拿!原因是:你之前没来过,我没见过你,所以我不给你拿!????

什么意思? 就好像:你第一次去找工作,人家说你没有工作经验,所以不要你!

可是我不参加工作,哪来的工作经验????????? 这个拒绝的理由蛮离谱的!
不要方,还是那句话!活用百度!

git pull origin master --allow-unrelated-histories # 用这一串魔法给它强行拿过来!

相当于开了个许可证,允许没来过的人拿东西!

在这里插入图片描述

OK, 到这,我们的仓库就没有文件冲突了!继续执行 git push origin master 就能把我们的项目上传到远程仓库了!

刷新页面,就能看到我们上传的文件了,甚至能看答所有的提交信息!

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5.克隆项目

读书人的事,怎么能叫抄呢????????? 克隆这个词用的很好,我们在开源网站上看别人的代码,

感觉很不错,借鉴一下,怎么弄? 克隆!
git clone 仓库 SSH 地址

这样就能把别人的代码 copy 到你本地了! 当然,你只有拿的权限,没有上传的权限!

在这里插入图片描述
在这里插入图片描述

六、分支管理

1.什么是分支?

	简单说就是,在 master 主分支上,新建几个分支 a, b, c...
	然后 可以同时在这些分支上进行不同的开发,最后再合并到 主分支上;
	而且各分支之间相互独立,使得开发效率大大提升!

2.关于分支,我们现在需要知道掌握什么?

分支管理也是一门学问,有很多内容,对于新手来说,只需要知道:
1.创建分支
2.查看当前分支
3.切换分支
4.删除分支
5.简单的合并
6.简单的冲突处理

3.开始尝试吧

git branch -a # 查看当前所有分支

在这里插入图片描述

git branch 分支名 # 新建分支

在这里插入图片描述

git checkout 分支名 # 切换到指定分支

在这里插入图片描述

git checkout -b 分支名 # 新建并切换到指定分支

在这里插入图片描述

到这,我们学会了查看、新建和切换分支,接下来着重讲一下分支合并以及代码冲突的问题:

git checkout a # 切换到 分支 a
git checkout -b b # 在 a 分支新建并切换到 分支 b
然后 b 分支完成了一些开发
git checkout a # 切回到 分支 a
git merge b # 把 分支 b 合并到 分支 a  
业务场景:
	1.我们刚才新建了一个 dev 分支 和 一个 cat 分支;
	2.cat 分支是建立在 dev 上的,所以它的 readme.txt 文件 和 dev 分支一模一样;
	3.现在我们切换到 cat 分支,在  readme.txt 文件内再加一行!假装我在 cat 分支上开发了新功能!
	4.把 cat 合并到 dev 分支,也就会把新功能也添加到 dev 分支上的 readme.txt 里面!

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

这就是最基本的分支合并…接下来说说合并过程中的常见问题,代码冲突!

业务场景:
	1. 军同学在 dev  上新建 一个 jun 分支
	2. smiling girl  在 dev 上新建一个 smiling 分支
	3. 现在 军 同学 在 jun dev 上改了 最后一行
	4. smiling girl 也在 smiling 分支上 改了最后一行
	5. 两人改了同一个地方,同时提交了,然后都要合并到 dev 分支上;
	6. 这时候可能会出现冲突...两人都改一个地方...改的还不一样...我该用谁的呢?

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
现在,小规模代码冲突的解决也OK了…其实还是手动解决…
当遇到一些复杂的冲突的时候,可能就需要依赖更高级的工具了…

最后,把多余的分支删除
git branch -d 分支名 # 删除指定分支

在这里插入图片描述

七、远程分支同步

这个不多说,就是把本地的分支同步推送到远程分支去,

让远程和本地的仓库能保持一致!

具体操作如下,就是一个 push 操作
git push origin 本地分支名:远程分支名 # 分支同步操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
你以为就结束了?等等,小红我又出来了!????????

刚刚所说的分支合并,是建立在你对仓库有直接管理权限的基础之上!

换句话说,如果你加入了别人的仓库,想要把自己的分支合并到他的主分支上,
那命令行合并是没有权限的!那咋办?

我们可以先把我们的分支同步到远程仓库,然后在仓库通过 Pull Request 来发起
合并请求,等管理员审核同意之后,才可以合并!

下面就演示一下,把刚刚同步上去的 dev 分支,通过 Pull Request 请求合并:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

好了,到此,相信你已经掌握了 Git 常规操作了…如果想玩的更深,更花…请参阅更多资料…

八、标签管理

前七节够用了,这一节就是几个标签管理,刚开始接触 Git 应该是用不到,了解一下即可;

1.为什么要用标签管理?

1.每一个版本都会有一个很长的 哈希值,也就是版本号;

2.如果提交、回滚的版本很多很多,我们就没法用版本号来管理版本了...这么长 ,谁记得住...

3.如果给每一个版本改个好记的小名呢?是不是方便多了...比如 v1.0版本,v1.1版本....

4.所以,标签的作用就在于给版本号起别名,优化管理!

2.怎么玩呢?

git tag v2.0 # 给当前版本加一个别名 v1.0 版
git tag v1.5 历史版本号  # 给历史任意版本加一个别名
git show v2.0 # 查看某个版本的提交信息
git tag -a v0.9 版本号 -m "版本描述信息" :给指定版本添加一些描述信息 # 甚至可以给历史版本再加点描述
git show v0.9 # 就能看到刚刚 设置的那个版本 干了些什么事了

使用 tag 是不是比版本号更清晰了...

git tag -d v1.5 # 删除指定版本的标签
先用 git log 看一下各个版本 看到一对很长的版本号

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后两个指令:
git log --graph # 将分支信息图形化 只是美化了一下 log 输出样式,除此之外似乎没啥用...就是为了好看
git remote rm origin # 清除与远程仓库的关联

在这里插入图片描述
在这里插入图片描述

九、小结:

这几节内容虽然看起来篇幅很多,很吓人,但其实内容并不算很多...

git 指令,多敲一敲,多玩一玩也就熟悉了....

目前而言:最最常用的几个指令貌似是:
git status
git add .
git commit -m "????"
git push origin ????
git pull origin ✌️
git clone ????????????????????????????????????
git branch ????
git branch -a
git checkout ????
git checkout -b ????

附录:如果我们加入了某个仓库,怎么参与到其中某个分支的开发呢?(其实就是怎么交作业)

下面全是截图...实测成功!当然,方式很多,可以pull、clone、各种命令搭配都行....

亦或者,直接用VScode内置的 git 按键式操作都行...我下面演示的是我自己常用的方式,

这样我每次提交完作业我甚至可把本地文件都删了...反正随时可以新建个空文件夹跟远程仓库同步.... 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

好了,本次的教程就到此为止了!

篇幅较大,可能存在些许错别字,或者表述不清晰的情况,

亦或者有某个点说明不正确的情况,还请批评指正!

如果能对各位有所帮助,那是十分荣幸!

最后

以上就是可爱裙子为你收集整理的Git的常用操作图文指南的全部内容,希望文章能够帮你解决Git的常用操作图文指南所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部