当前位置:   article > 正文

GitHub_GIT软件版本管理原理及使用,操作手册你值得拥有!!!_github极限操作手册什么时候编写的

github极限操作手册什么时候编写的

在这里插入图片描述
本人GitHub网站: https://github.com/wenwenc9


本人所有博客文章,所用到代码和资料文件还有思维导图,会陆续放上去

一、GIT 版本管理

1. 版本管理介绍

作为开发人员,原本只需要在自己的电脑上开发软件即可。但是大型的软件需要多个人系统
开发,遇到了这样的问题

容易丢失文件

  • 不小心删除文件
  • 断电导致文件丢失
  • 硬盘格式化

多人开发的文件,不方便内容合并

  • 常规将多个开发人员的代码,归结到一个人的电脑上合并完成在分发给所有人
  • 过程非常繁琐、非常缓慢

开发过程中,如果遇到严重问题

  • 恢复软件的正常运行:不容易做到
  • 问题的排查:多人同时开发,很难做到每个人的代码进行追踪

针对上述问题提供了新的解决思路,这样的思路发展成熟之后出现了版本管理软件,将多个
人开发的东西按照版本的形式进行登记,即方便了多个开发人员的代码合并,同时定位每个
人开发的代码容易评估工作量,同时方便问题的排查。

什么是版本管理软件?如图所示:
在这里插入图片描述
版本管理软件发展过程

1、CVS 版本管理软件—过时淘汰

  优点:
      解决了多个人协同开发,代码合并的问题:从服务器更新代码完成合并 
      解决了多人协同开发,排查问题的难度:每次提交都有记录
  缺点:
  	代码在服务器上同时存储了多个版本(完整),重复量过大
  	对于服务器的要求(存储空间)更高
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2、SVN 版本管理软件-现在大部分公司主流管理软件

  优点:
      在实现了 CVS 所有功能的基础上,实现了差异化管理,让服务器的存储空间 
      不再出现重复存储代码的情况,极大的节省了服务器空间!
      集中式,git是分布式
  • 1
  • 2
  • 3
  • 4

3、 GIT 版本管理软件-现在公司主流管理软件

  去服务器,没有服务器的概念,每个开发人员的本地仓库既是开发端也是服务器
  可以和另一个开发人员之间,完成代码同步,完成版本管理
  基于网络,突破了局域网的限制,可以让开发人员随时随地在任何时间办公,可以通过 广域网完成代码的同步和版本的管理
  基本本地,在没有网络的情况下,可以让代码在自己本地的仓库中完成代码的同步和管理,将不同功能不同批次的代码管理在不同的版本中
  • 1
  • 2
  • 3
  • 4

2. GIT 介绍

本文主体介绍使用 GIT + GitHub
相对于传统的SVN管理工具而言

  • 去服务器,没有服务器的概念,每个开发人员的本地仓库及时开发端也是服务器
  • 可以和另一个开发人员之间,完成代码同步,完成版本管理
  • 基于网络,突破了局域网的限制,可以让开发人员随时随地在任何时间办公,可以通过广域网完成代码的同步和版本的管理
  • 基本本地,在没有网络的情况下,可以让代码在自己本地的仓库中完成代码的同步和管 本的管理,将不同功能不同批次的代码管理在不同的版本中

所以掌握使用 Git 是必不可少的一项技能

GIT 是一套分布式的软件版本管理工具,将只能在线通过服务器更新版本的操作进行了优
化,软件的版本管理可以直接在本地完成,或者和其他开发人员只要联通就可以完成版本的
同步,操作方式更加灵活。【这里选择 GitHub 平台进行操作】

在这里插入图片描述
GitHub 是目前企业项目开发在线托管最大的平台之一,访问有时候很慢
GitLab 跟GitHub 相似
码云 是国内的平台,优点是服务器在国内,所以访问快,并且是中文

3. Git 操作流程

注意,这幅图非常有用!!!
在这里插入图片描述
GIT 管理开发的代码,就是通过各种命令将一个新增的文件,添加到版本管理中,方便后续
的开发维护操作。

3.1 Git 安装和配置

前面介绍了什么是版本管理GIT,那么现在可以操作它了!

Git 安装配置
windows 操作系统/Unix/Linux 中需要安装 git 软件
git 官方网站:https://git-scm.com/
下载对应平台(windows/macos/其他平台),直接安装

我的电脑是Windows 使用的这个版本
在这里插入图片描述
PS:安装步骤不知道选择啥的,可以看下这位博主博主

版权声明:本文为CSDN博主「Architect_csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Architect_CSDN/article/details/79868568
  • 1
  • 2

3.2 GitHbu注册和创建第一个仓库

1、注册

github网站: https://www.github.com

去上面提到的网站注册账号,这个就不要说明了吧?QAQ
什么,你说英文看不懂!那就下面链接

版权声明:本文为CSDN博主「雪峰流云」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tao_627/article/details/51407391
  • 1
  • 2

2、创建第一个仓库
在这里插入图片描述
来到你的仓库!!!
在这里插入图片描述
好了接下咱们就怎么使用,代码托管平台GitHub的仓库,配置连接到本地仓库了!

3.3 配置连接远程仓库和本地仓库

这是自己做的思维导图,我会上传到GitHub里面【时间待定】,这里截图部分
在这里插入图片描述
给你们瞅瞅
在这里插入图片描述

好了,太小看不清QAQ,还是这边慢慢说明吧

3.1.1 配置远程仓库

首先在桌面,右键打开
在这里插入图片描述
会弹出个窗口,输入这个命令,回车,我这边就不回车了,我电脑已经生成过了
在这里插入图片描述

	ssh-keygen -t rsa -C “1095581956@qq.com”
	中间改成你的邮箱,这边是一个介绍而已
	这个是,生成一个密匙在你的电脑
  • 1
  • 2
  • 3

回车后 ,会告诉生成的密钥路径所在
管理员/.ssh/ 手动找不到的,开启显示隐藏文件夹,或者电脑搜,进入该文件后
在这里插入图片描述
用txt 打开公共密匙 ,我把文件鼠标直接拖到Pycahrm里面也可以看到密匙
在这里插入图片描述
全选复制它!
在这里插入图片描述
点击第③进来后是这样的
在这里插入图片描述
到这里,远程仓库配置完毕了,接下来配置本地仓库

3.1.2 配置本地仓库

还是用我的思维导图吧
在这里插入图片描述
① 在自己计算机创建一个本地文件夹,work_git 作为本地仓库和托管平台仓库交互
在这里插入图片描述
② 启动仓库 鼠标右键 通过Git Bash Here 打开
③ 配置本地仓库git用户描述
在这里插入图片描述
④ 查看配置信息 git config --list ,可以看到最后是我们配置的信息
在这里插入图片描述
⑤ 初始化仓库 git init 这个一执行,刚刚创建的文件夹里面会生成个.git 平时千万不要动它!!
在这里插入图片描述
⑥ 本地仓库关联远程仓库 git remote add origin

非常重要的一步

在这里插入图片描述
复制自己的连接进来
在这里插入图片描述

⑦ 同步仓库信息 git pull --rebase origin master 配置完毕一定要同步仓库信息一次!!!切记
如果执行不了 先8后7
在这里插入图片描述
这个时候你看你的本地仓库文件夹里面会多出一个文件,README.md 这一般可以添加描述,在远程仓库配置的时候

⑧ 使用主分支设置 git push -u origin master
设置默认推送方式,设置后以后推送直接执行git push
在这里插入图片描述
到这一步全部搞定,托管平台的远程仓库+本地仓库 已经连接 现在可以操作咱们的代码了

二、GIT 基本操作命令 【实现版本管理】

其实到这一步,需要搞清楚一个问题,我们继续看前面的图,这是整个流程
在这里插入图片描述
好了,还是我的思维导图部分接,接下来的操作全部按照这样,概览一下
注意,一定是要本地仓库 work_git 右键打开点击 Bash here 的命令窗口
在这里插入图片描述
暂存区:临时存储代码的缓存区域,暂存区的存在,是为了将非常频繁的小改动统一存 储起来,等开发人员认为自己的修改已经成型可以提交了,在将暂存区的数据提交到 本地仓库

本地仓库:本地仓库是一个接受代码版本管理的仓库,这个仓库中数据会按照提交历史 进行版本管理控制,方便了开发人员在没有网络连通的情况下提交的数据依然接受版 本管理

远程仓库:远程仓库是一个多人协同开发时的公共仓库,保持 24 小时在线,这样能最 大程度的保证所有开发人员都能在联网的第一时间同步到最新的代码

1、查看版本状况 git status

这,可以理解为查看暂存区的文件!

2、纳入管理 git add

  • 将本地文件推入到暂存区/缓存区 两概念一样

① 在本地仓库创建一个文件demo01.py 然后在Git窗口 执行命令 git add demo01.py 将文件推到暂存区
在这里插入图片描述
② 查看版本管理文件状态 git status
可以看到一个绿色的提示,新文件 demo01.py 在暂存区
在这里插入图片描述

3、提交操作 git commit

  • 第一种将暂存区新文件推送到本地仓库并不是 work_git这个文件夹,你看不到的,千万不要有误区
  • 第二种将旧文件(修改过的文件)更新到本地仓库

①新文件的提交
新文件是从暂存区,提交到本地仓库
执行命令 git commit demo01.py -m "第一次提交demo01.py文件,初始化"
这样我们就完成了一次提交,就等最后一步 git push 这里先别执行
在这里插入图片描述
②旧文件更新并提交
为啥有这中操作?因为可能现在你要修改demo01.py 里面的代码了,所以就需要将本地仓库的文件更新一下
在这里插入图片描述
打开本地仓库里面的 demo01.py 修改代码。。。。
在这里插入图片描述
然后关闭它,进行下一步操作
执行命令 git update
更新文件 如果有其它开发人员,可能也会修改个整个文件,通过更新操作将其他开发人员修改的代码同步到自己的代码中
执行这个命令可能会出现问题,版本升级了,不要动,等会输入y,更新下就好了
在这里插入图片描述
再执行 git commit demo01.py -m “修改”
在这里插入图片描述
修改完毕后再查看 管理版本状态,没有文件,
在这里插入图片描述
接下里,本地仓库已经了个demo01.py 对吧,我们需要放到托管平台

4、推送操作 git push

  • 实现和其它人员协同开发,需要将代码推送到远程仓库(网络上的代码托管平台),方便其它开发人员下载和开发

直接执行 git push 即可,然后我们去Git hub 你的仓库 就可以看到你托管的代码了!!!
在这里插入图片描述

三、GIT 高级操作

在这里插入图片描述

1、版本管理-分支操作

前面我们介绍了git版本第一个文件demo01.py

那么通过 git 对软件版本进行管理之后,可能存在如下问题

软件开发过程中,有多个产品版本:PlaneV1.0、V2.0、V3.0
每个版本都有用户下载使用,同时提供多个版本的下载
开发过程中产品中可能会出现 BUG,如果出现 BUG 应该怎么修复
保证软件能被正常的下载使用
开发过程中产品中可能会新增功能,如果要新增功能应该怎么开发
保证软件能被正常的下载使用

创建分支:git branch <branch> 
查看分支:git branch 
切换分支:git checkout <branch> 
合并分支:git merge <branch>  
删除分支:git branch -d <branch>
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
查看分支→创建分支→切换分支→查看分支
在当前分支创建demo02.py 添加到管理工具中 首先在文件夹中创建一个demo02.py文件
在这里插入图片描述
随后将添加文件,加入到版本管理工具中
在这里插入图片描述
切换到主分支master
在这里插入图片描述
合并分支
在这里插入图片描述
删除分支 git branch -d
在这里插入图片描述

2、代码回滚

问题:如果开发过程中,出现了代码问题,新提交的代码导致项目崩溃,git 可以做到让代
码回滚/回归到上一个正确的状态?保证项目正常运行的情况下完成错误的排查。怎么做?
在这里插入图片描述
在这里插入图片描述
查看异同
在这里插入图片描述
查看提交历史
git reflog 简易信息
在这里插入图片描述
git log 详细过程
在这里插入图片描述
demo01.py 新增一句话
在这里插入图片描述
我们看下版本状态 git status 可以看到一个修改文件
在这里插入图片描述
无法提交修改文件,但是不影响
在这里插入图片描述
git reflog 查看变动
然后可以通过
git reset --hard <黄色编号>

git reset --soft <黄色编号> 就可以回滚了

3、版本冲突

demo01.py.r6
其中 demo01.py.mine 是当前开发人员自己的文件,demo01.py.r是服务器上的各个
版本对应的文件,当前开按人员需要做的事情就是通过 git diff 或者图形化文件比较工 具,将 mine 文件和 r
文件(一般选择最新版本)进行内容比较,将不同的内容拷贝到自己
的代码中,完成代码的本地合并(不做这个操作的代价就是要么丢失别的版本的代码、要么
丢失自己的代码)。
冲突文件的内容本地手工合并完成后,在 git 中首先标记解决冲突(需要标记一个文件作为
最终解决冲突的文件,标记内容最全的本地合并的那个文件),提交本地数据。
在这里插入图片描述

本地提交的数据和服务器上的数据不一致,一般是开发人员的不规范操作
A和B同时开发,先后pull远程仓库的代码,A修改了demo_01.py,提交并推送成功,B也修改了demo_01.py,提交后推送失败,产生了版本冲突,原因是推送前没有更新
原则:先更新,再提交
一旦发生冲突,就要手工合并,Git用<<<<<,=======,>>>>>>标记处不同分支的内容,我们修改后再提交本地数据

制造冲突
创建分支  git branch dev2
切换分支  git checkout dev2
在dev 分支下修改demo_01.py,最后一行添加print("dev分支下的world")
	git add demo_01.py
	git commit demo_01.py -m "dev2分支提交的demo01冲突测试"
切换到master分支  git checkout master
在master分支下最后一行添加 print("master下的python")
	git add demo_01.py
	git commit demo_01.py -m "冲入测试master修改demo_01.py"
git merge dev2
此时产生冲突 ,<<<<<,=======,>>>>>>,复制代码
git merge --abort 回到合并前的状态
粘贴复制的代码,手工合并代码
git add demo_01.py
git commit demo_01.py -m "master解决冲突的demo_01.py"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

4、Pycharm中使用github

不多截图了,其实差不多

如果没有git,选择环境变量,file--setting-->version control-->git-->第一行path to  git-->D:\Git\cmd\git.ext
1.菜单 VCS(Version Control System)选择 Get Project From Version Control
可以从远程仓库中获取一个项目到本地
2.填入远程仓库地址和本地文件夹,Clone,This windown打开
3.新建test2.py,print("hello world"),右击-->Git-->Commit File-->GIt,respostory-->push

pycharm制造冲突
1.新建test3.py,print("hello world"),添加提交
2.新建分支dev,GIt,respostory--Branch-->new branch,自动切换过去了
3.在dev下,在第二行添加print("hello dev"),提交Git,commit directory
4.切换分支,GIt,respostory-->master,checkout
5.在master下,第二行添加print("hello master"),提交Git,commit directory
6.将dev分支合并到master分支,GIt,respostory->merge,选择dev,冲突
7.手工合并test3.py的代码
	print("hello world")
    print("hello dev")
    print("hello master")
8.git add 添加,git commit提交,修改名字解决冲突,删除有问题的分支
9.GIt,respostory-->push,推送到远程

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

需要图文的可以参考这位博主
版权声明:本文为CSDN博主「limy_liu」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/limy_liu/article/details/103929440

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/397533
推荐阅读
相关标签
  

闽ICP备14008679号