git最详细的分布式版本控制工具使用攻略

云惠网小编 2021年12月31日19:19:00
评论
9634字阅读32分6秒
摘要

Git是目前世界上最先进的分布式版本控制系统(没有之一)Git有什么特点?简单来说就是:高端大气上档次!

广告也精彩

b、创建分支

6、将远程版本库拉取到本地(在本地库和远程仓库建立联系)

File | Settings | Version Control | Git | 点击右上角 Test 测试git环境是否正常 (展示版本号表示正常)

File | Settings | Tools | Terminal |

17、合并分支

git reset --hard HEAD^^ 回退上N个版本 几个^^表示回退几个版本

  • 分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
  • 和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。
  • 在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

b、在远程仓库中定义仓库(空仓库)

  • 直接删除
  • 使用命令删除 rm -f 文件
#1.配置当前用户用户名
$ git config --global user.name "wanghj"
#2.配置当前用户邮箱
$ git config --global user.email "[email protected]"
#3.查看配置信息
git config --list

因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。

9、查看历史版本 右击要回退文件/文件夹–>Git–>Show History

11、添加到暂存区后回退

注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。

3.在提交前先将代码提交到暂存区

7、从远程版本库中拉取项目

自己在官网创建一个,要想使用码云的相关服务,需要注册账号(地址: https://gitee.com/signup )

存在跳过,不存在生成对应文件

第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。

分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。

e、拉取失败【没有权限】

a、仓库右上角克隆/下载位置复制仓库路径 HTTPS 或 SSH

  • 安装完成后,还需要最后一步设置,在命令行输入:
  • 报错原因:们在创建仓库的时候,都会勾选“使用Reamdme文件初始化这个仓库”这个操作初识了一个README文件并配置添加了忽略文件。当点击创建仓库时

首页–>仓库–> + [右上角] --> 新建仓库

  • 执行命令 git status 【当前红色】

a、检查是否存在.ssh目录

  • Git是目前世界上最先进的分布式版本控制系统(没有之一)。-
  • Git有什么特点?简单来说就是:高端大气上档次!

那分布式版本控制系统与集中式版本控制系统有何不同呢?

b、本地新建目录

e、创建并切换分支

  • 交本地库 :右击要提交文件/文件夹–>Git–> Commit File -->输入提示信息–>Commit
  • 回退n个版本
  • 每个Git远程仓库都会对应一个网络地址,可以点击克隆/下载按钮弹出窗口并点击复制按钮获得这个网络地址

版本库(Repository)
工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

  • 开源中国旗下的代码托管平台:码云

3、Git分区原理

c、在目录中开启bash窗口执行克隆命令

工作流程如下:

三、版本控制工具

版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

  • 很多人都知道,Linus在1991年创建了开源的Linux,从此,Linux系统不断发展,已经成为最大的服务器系统软件了。
  • Linus虽然创建了Linux,但Linux的壮大是靠全世界热心的志愿者参与的,这么多人在世界各地为Linux编写代码,那Linux的代码是如何管理的呢?
  • 事实是,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码!
  • 你也许会想,为什么Linus不把Linux代码放到版本控制系统里呢?不是有CVS、SVN这些免费的版本控制系统吗?因为Linus坚定地反对CVS和SVN,这些集中式的版本控制系统不但速度慢,而且必须联网才能使用。有一些商用的版本控制系统,虽然比CVS、SVN好用,但那是付费的,和Linux的开源精神不符。
  • 不过,到了2002年,Linux系统已经发展了十年了,代码库之大让Linus很难继续通过手工方式管理了,社区的弟兄们也对这种方式表达了强烈不满,于是Linus选择了一个商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。
  • 安定团结的大好局面在2005年就被打破了,原因是Linux社区牛人聚集,不免沾染了一些梁山好汉的江湖习气。开发Samba的Andrew试图破解BitKeeper的协议(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。
  • Linus可以向BitMover公司道个歉,保证以后严格管教弟兄们,嗯,这是不可能的。实际情况是这样的:
  • Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!牛是怎么定义的呢?大家可以体会一下。
  • Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。

2、git分布式版本控制工具

13、查看分支

Clone:克隆,就是将远程仓库复制到本地

  • git log (多行展示一个版本)
  • git log --pretty=oneline (一行展示一个版本)

如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!

  • 可以回退删除

vi HelloWord.java

5.修改完成后,需要和团队成员共享代码时,将代码push到远程仓库

git clone ``[[email protected]](mailto:[email protected])``:wanghengjie563135/EMS.git

b、合并前切换到主分支

f、合并分支

4、删除文件

查看配置

git checkout -b dev

12、根据版本号回退

3、新建仓库

[email protected]:wanghengjie563135/git-test.git

git branch -d dev 【注意:不能自己删自己】

选择commit窗口(project下)–>右击要回退的文件/目录–>Rollback

  • 上传成功

6、完成开发后要添加到暂存区、提交本地库 并且 提交到远程版本库

git add Hello.java   将指定文件添加到暂存区
git add .           将目录所有文件添加到暂存区
# 将指定文件添加到暂存区
$ git add HelloWord.java
[email protected] MINGW64 /f/gitHelloWord (main)
$ git status

1、下载

你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。

提示

语法:git clone 仓库路径

五、Git使用

1、在IDEA中集成Git

右击项目–> Git --> Pull --> 选择Pull

  • 回退指定版本
    git reset --hard commit_id
    git reset --hard d6d7s7
  • 回退未来版本
    使用命令 查看所有历史命令 git reflog

本地仓库和远程仓库

工作区(Working Directory)
就是你在电脑里能看到的目录,比如我的Git-repository文件夹就是一个工作区:

修改 Shell path : git安装目录/bin/bash.exe

第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;

  • 安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

c、查看分支

初始化仓库[测试随便选] java | jetBrains | OBSD

git branch

设置模板[测试随便选] 全部勾选

2、版本查看及回退

选择创建

  • 项目安全性太低 ,电脑坏了没有就没了
  • 项目很难协同开发(目前是串行开发)
  • 项目无端报错(记录版本)
  • 项目版本混乱 (版本切换)

a、创建一个目录(内部所有文件可以被Git管理)

2、修改idea Terminal为 Git bash

g、将文件提交到本地版本库

b、选择当前窗口同行的 Log窗口 --> 选择要回退版本 右击 --> Checkout ReVision ‘xxxxxx’

GitHub Gitee(码云) [开源] Gitlib

git add/rm 文件

  • 全球最流行的代码托管平台:GitHub

a、在本地准备项目

  • 将这些文件删除后再提交

c、生成id_rsa.pub 和 id_rsa文件命令

d、相关报错总结

  • 撤销工作区操作: git restore HelloWord.java
  • 注意:提交到版本库后不支持撤销,可以使用版本回退

c、依次执行命令

服务器单点故障,如果服务器坏了,那什么都没了<br />容错性差

c、选中要合并的分支–>点击右侧箭头–>Merge into Current

五、远程版本库配置使用

  • 提交远程库 :右击要提交文件/文件夹–>Git–> Push --> 选择Push

远程仓库:是在远程服务器上的Git仓库

git merge dev 将merge后指定分支的修改合并到当前分支上

语法:git commit -m “当前版本描述信息”

历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。

c、推送至远程版本库

我们当前创建的Git远程仓库对应的地址为:https://gitee.com/wanghengjie563135/EMS.git

git pull origin master

  • git push -u origin master #推送本地库项目至远程仓库

7、使用远程版本库

git reset --hard HEAD^ 回退上一个版本

e、将文件添加到暂存区

$ git config --list

c、暂存区和工作区操作撤销

1、集中式版本控制工具

a、使用其他分支开发内容

  • 基于git的仓库管理程序:GitLab

[ https://www.zhihu.com/question/387515137 了解代码托管平台 ]

Git是分布式版本控制系统(Distributed Version Control System,简称 DVCS) ,分为两种类型的仓库:

d、切换分支

Push:推送,就是将本地仓库代码上传到远程仓库

1、远程版本库(远程代码托管平台)选取码云(Gitee)

选择新建仓库–>填充仓库名称–>填充介绍–>选择开源–>选择创建

git init #初始化仓库

git commit -m “提示信息”

b、右击要回退文件/文件夹–>Git–>Reset HEAD

  • Git远程仓库对应的SSH地址为:
  • 我们把文件往Git版本库里添加的时候,是分两步执行的:
  • a、此时提交会弹框提示 提供三个解决方案:Cancel(退出) | Merge(合并) | Rebase(退回当前状态)
  • b、选择Merge
    1、代码无交集 直接pull成功
    2、代码有交集 再次弹框 提供三个解决方案:Accept Yours(使用pull者) | Accept Theirs(使用远程) | Merge (手动)
    git最详细的分布式版本控制工具使用攻略
    3、选择手动合并 会弹出协同合并操作视图 整合代码
    git最详细的分布式版本控制工具使用攻略
    4、完成后选择Apply 提示:使用修改并记录方案 | 继续手工修改
    git最详细的分布式版本控制工具使用攻略

git push -u origin master #推送本地库项目至远程仓库

c、在目录中新建源文件HelloWord.java

14、新建分支

引言:
跟着刘浩老师学习已经很久,期间学会了很多的东西,在写git相关的博客之前,
我特别想感谢刘浩老师,他今天早上还在那里说昨天晚上熬夜到凌晨五点写git的笔记,我还在想怎么可能熬夜那么晚呀,但是今天下午当他打开他的gitee网站,
上面清晰的显示:2021/12/30日4:39提交master分支的记录(本来想截图的,没来得及),我瞬间感觉羞愧(不应该怀疑他),感谢刘浩老师对我的指导,在下确实不才,学东西比较慢,但是跟着刘浩老师学的东西挺多的。

h、再次执行命令拉取远程版本库

一、现存项目的问题

git add . #将项目的所有内容添加到暂存区

填充仓库名称 和 简介 --> 选择开源

  • 相关报错参考方案:

git branch dev

git checkout dev

4、执行命令设置仓库

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

  • sataged翻译:阶段 restore:恢复
  • 撤销暂存区操作:git restore --staged HelloWord.java

c、Reset Type 选择Hard | To Commit 复制版本id

c、确认提交到版本库

本地仓库:是在开发人员自己电脑上的Git仓库

2.从本地仓库中checkout代码然后进行代码修改

版权法默认禁止共享,也就是说,没有许可证的软件,就等同于保留版权,虽然开源了,用户只能看看源码,不能用,一用就会侵犯版权。所以软件开源的话,必须明确地授予用户开源许可证。

执行命令 git status【变为绿色】

  • 查看历史版本

h、修改文件后,文件变成红色的了

时间不是金钱,不是任何可以失而复得的物质。你一旦把它轻易失去,它就永远同你无情的分别。最可怕的事情是:它离开你时,还从你身上窃去了最珍贵的财产——青春和生命。
莫等闲,白了少年头,空悲切。

git checkout master 切换到最终合并的分支上

[请确保您拥有正确的访问权限并且存储库存在]

我使用的安装版本:Git-2.30.0.2-64-bit.exe

10、回退版本

a、点击gitee右上角个人设置–>选择设置–>左侧导航栏选择 SSH公钥

GitLab是一个利用 Ruby on Rails 开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目安装。 拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。 团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用,便于日后有需要的时候进行查找。

git remote add origin https://gitee.com/wanghengjie563135/studnet-system.git #当前仓库与远程仓库建立一个链接

位置:当前计算机用户主目录下 C:\Users\Administrator.ssh

a、删除没用文件(将工作区文件删除)

六、Git与IDEA工具集成

点击IDEA右下角黄色感叹号位置

Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?

码云是开源中国社区团队推出的基于Git的快速的、免费的、稳定的在线代码托管平台。专为开发者提供的云端软件开发协作平台。无论是个人、团队、或是企业,都能够用码云实现代码托管、项目管理、协作开发。

  • git init #初始化仓库
  • git add . #将项目的所有内容添加到暂存区
  • git commit -m "first commit" #提交到本地版本库
  • git remote add origin ``[[email protected]](mailto:[email protected])``:wanghengjie563135/vue.git #当前仓库与远程仓库建立一个链接

3、Git历史

b、新建HelloWord文件

b、版本回退

  • 集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
  • 集中式版本控制工具缺点:

16、删除分支/修改分支名字

b、将目录设置为本地版本库

进入目录中执行命令 git init (会生成隐藏文件夹.git–>不要操作)

5、分支管理

1.从远程仓库中克隆代码到本地仓库

a、右击要回退文件/文件夹–>Git–>Show History -->选择要回退版本 右击–> Copy Revision Number

d、将远程修改同步到本地

GitHub是全球最流行的面向开源及私有软件项目的托管平台,有超过2600万的用户群体。随着越来越多的应用程序转移到了云上,GitHub已经成为了管理软件开发以及发现已有代码的首选方法。GitHub可以托管各种git库,并提供一个web界面,与其它代码托管平台不同的是GitHub的“分支”结构可以很容易地将某个项目的成功经验应用到另外与一个项目中。此外,GitHub还提供了针对企业私有云服务的GitHub企业版。

提示:Please make sure you have the correct access rights and the repository exists.

  • 今日鸡汤:

2、注册gitee账号

i、先添加在commit

1、创建使用版本库

git commit -m “first commit” #提交到本地版本库

4、邀请其他用户成为仓库成员

傻瓜式安装,一路下一步

8、代码冲突问题

下载地址: https://git-scm.com/download

ssh-keygen -t rsa 后续一直enter确认

h、去除每次add时的警告信息

2、安装

  • [许可证说明 http://www.ruanyifeng.com/blog/2017/10/open-source-license-tutorial.html]

[开发前没有先Pull拉取代码,直接修改内容,之前远程代码已经进行修改]

例如:git clone ``[[email protected]](mailto:[email protected])``:wanghengjie563135/EMS.git

点击IDEA右下角黄色感叹号位置–>选择要切换的分支–>点击右侧箭头–>选择Checkout

例如:

4、Git工作流程

f、设置gitee访问权限——生成ssh key

  1. 红色(工作区有修改 并未添加到暂存区)
  2. 绿色(工作区的修改 已经添加到暂存区 并未提交到版本库)
    3.nothing to commit, working tree clean(工作区与版本库一致)

它会帮我们做一次初始提交。于是我们的仓库就有了README.m和.gitignore文件,然后我们把本地项目关联到这个仓库,并把项目推送到仓库时,我们在关联本地与远程时,两端都是有内容的,但是这两份内容并没有联系,当我们推送到远程或者从远程拉取内容时,都会有没有被跟踪的内容,于是你看git报的详细错误中总是会让你先拉取再推送,但是拉取总是失败。

f、查看状态

git push -u origin master [ -u:分支关联 origin:远程库的名字 master:本地分支名字]

  • 推送成功
  • 在Windows上使用Git,可以从Git官网直接下载安装程序,然后按默认选项安装即可。

点击IDEA右下角黄色感叹号位置 -->选择要删除/改名的分支 -->Delete/Rename

d、查看git状态

a、进入到对应库中

8、将本地项目推送至远程版本库

5、在项目中进行后续开发 注意文件状态(颜色)

点击IDEA右下角黄色感叹号位置–>new Branch–> 填写分支名 -->确认

d、执行后提示是否确认 输入yes

开源许可证是一种法律许可。通过它,版权拥有人明确允许,用户可以免费地使用、修改、共享版权软件。

b、标题随意 --> 公钥 [打开刚才生成的C:\Users\Administrator/.ssh/id_rsa.pub文件复制粘贴]–>输入登录密码

a、选择要回退的版本id 右击要回退文件/文件夹–>Git–>Show History -->选择要回退版本 右击–> Copy Revision Number

15、切换分支

b、确认删除 (将工作区删除的操作提交到暂存区)

因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。

Pull:拉取,就是将远程仓库代码下载到本地仓库

a、查看版本状态

b、检查.ssh目录中是否存在 id_rsa.pub 和 id_rsa 文件 【计算机远程访问公/私钥文件】

1、Git是什么?(借鉴:廖雪峰老师)

  • 查看自己的公钥:cat ~/.ssh/id_rsa.pub

前面已经在码云上创建了自己的远程仓库,目前仓库成员只有自己一个人(身份为管理员)。在企业实际开发中,一个项目往往是由多个人共同开发完成的,为了使多个参与者都有权限操作远程仓库,就需要邀请其他项目参与者成为当前仓库的成员。

https://blog.csdn.net/qq_33934427/article/details/109004052

注意:git分区(工作区、暂存区、本地版本库、远程仓库)

a、作用:

二、git简介

  • 用于管理个人代码,在所有人确认无误后汇总合并分支,平时在操作时分支之间互不干扰
  • master(主分支)

[email protected] MINGW64 /
$ git version
git version 2.30.0.windows.2

四、Git下载与安装

git config --global core.autocrlf false

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j1DE9INn-1640864886517)(image/image_67.png)]

$ git commit -m "新建了一个HelloWord类,包含主函数"
  • 红色:工作区已修改并未添加到暂存区
  • 绿色:修改已经添加到暂存区暂未提交到版本库
  • 黑色|白色:版本库与工作区一致
  • 蓝色:该类已经提交到版本库,有修改 修改之后可以直接commit

3、git init 初始化仓库

  • 添加暂存区 :右击要提交文件/文件夹–>Git–> + Add

🍅程序员小王的博客:程序员小王的博客
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
🍅java自学的学习路线:java自学的学习路线

4.提交到本地仓库。本地仓库中保存修改的各个历史版本

2、那什么是版本控制系统?

g、删除分支

g、设置gitee访问权限——配置公钥

本文转自 https://blog.csdn.net/weixin_44385486/article/details/122244164

腾讯云618
云惠网小编
SpringCloud -- Config、Bus解析 java

SpringCloud — Config、Bus解析

1、Config1.1、概述简介1. 分布式面临的问题微服务意味着要将单体应用中的业务拆分成一个个子服务,每个服务的粒度相对较小,因此系统中会出现大量的服务。由于每个服务都需要必要...
Java数据结构-了解复杂度 java

Java数据结构-了解复杂度

2.实例分析与计算  四.写在最后  // 计算斐波那契递归fibonacci的时间复杂度 int fibonacci(int N) { return N < 2 ? N : fibonacci...
Java数据结构-认识顺序表 java

Java数据结构-认识顺序表

目录二.顺序表1.概念及结构2.顺序表的实现打印顺序表获取顺序表的有效长度在pos位置新增元素判断是否包含某个元素查找某个元素对应的位置获取/查找pos位置的元素给pos位置的元素...
腾讯云618

发表评论