新鲜出炉!全网最全!Git从入门到精通

1、Git简介

Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper

1.1 什么是版本控制?

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理多人协同开发项目的技术。

1.2 为什么要有版本控制?

没有进行版本控制或者版本控制本身就缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。无论是工作还是学习,或者是自己做笔记,都经历过这样一个阶段!我们就迫切需要一个版本控制工具。(多人开发就必须要使用版本控制)

使用版本控制之后可以给你带来的一些便利:

  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,同时降低人为错误

1.3 版本控制的分类

1.集中版本控制 SVN

所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改。

新鲜出炉!全网最全!Git从入门到精通_第1张图片

所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS。 

2.分布式版本控制 Git

Git的优势就是:每个人都拥有全部的代码,可以避免一些安全隐患。不会因为服务器孙环或者网络问题,造成不能工作的情况。

新鲜出炉!全网最全!Git从入门到精通_第2张图片

所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。 

1.4 Git和SVN的主要区别

  • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。

 新鲜出炉!全网最全!Git从入门到精通_第3张图片

  •  Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。Git可以直接看到更新了哪些代码和文件!

新鲜出炉!全网最全!Git从入门到精通_第4张图片


 2、Git安装

1.Git官网

地址:https://git-scm.com/

2.下载后一步一步

新鲜出炉!全网最全!Git从入门到精通_第5张图片

 

新鲜出炉!全网最全!Git从入门到精通_第6张图片

新鲜出炉!全网最全!Git从入门到精通_第7张图片

新鲜出炉!全网最全!Git从入门到精通_第8张图片

新鲜出炉!全网最全!Git从入门到精通_第9张图片

新鲜出炉!全网最全!Git从入门到精通_第10张图片

新鲜出炉!全网最全!Git从入门到精通_第11张图片

安装完成后,在桌面点击右键,选择Git Bash Here,点击后出现下面的界面就是安装成功了。

新鲜出炉!全网最全!Git从入门到精通_第12张图片


3、Git结构

Git是一个开源的分布式版本控制系统。本地结构如下图。

新鲜出炉!全网最全!Git从入门到精通_第13张图片


 


4、代码托管中心

我们已经有了本地库,本地库可以帮我们进行版本控制,为什么还需要代码托管中心呢?

4.1 代码托管中心的作用

  • 代码托管中心是帮我们维护远程库。
  • 介绍一下本地库和远程库的交互方式。

4.1.1 团队内部协作

新鲜出炉!全网最全!Git从入门到精通_第14张图片


 

4.1.2 跨团队协作

新鲜出炉!全网最全!Git从入门到精通_第15张图片

 

4.2 托管中心的类别

  • 局域网环境下: 可以搭建 GitLab服务器作为代码托管中心,GitLab可以自己去搭建。
  • 外网环境下:可以由GitHub或者Gitee作为代码托管中心,GitHub或者Gitee是现成的托管中心,不用自己去搭建。

5、初始化本地仓库

5.1 创建一个文件夹

008400890d209a2e9f7769bb8da9c8ec.png

5.2 打开Git终端

1.打开Git Bash Here,可以设置先关的参数。在Git中命令和Linux是一样的。

新鲜出炉!全网最全!Git从入门到精通_第16张图片

2.查看git安装版本号

git --version

 3.清屏命令

clear

 4.设置签名和邮箱

git config --global user.name "luyh"
git config --global user.email "[email protected]"

新鲜出炉!全网最全!Git从入门到精通_第17张图片

 5.本地仓库初始化

git init


.git 目录是隐藏的,可以设置显示隐藏的文件夹

新鲜出炉!全网最全!Git从入门到精通_第18张图片

查看.git下文件

新鲜出炉!全网最全!Git从入门到精通_第19张图片

注意:.git目录下的文件和目录等内容不能删除,否则会出现问题


6、git add和git commit

6.1 创建一个文件

6.2 将文件提交到暂存区

git add firstClass.txt

6.3 将暂存区的文件提交到本地库

git commit -m "这是提交的第一个文件 firstClass.txt" firstClass.txt

新鲜出炉!全网最全!Git从入门到精通_第20张图片

注意事项:
1不在本地仓库的文件,git无法管理;
2放在本地仓库中,必须进行git add和git commit操作后才能提交到本地库。

新鲜出炉!全网最全!Git从入门到精通_第21张图片


7、git status

git status查看暂存区和工作区的状态。

git status

 7.1 创建一个文件,查看状态

新鲜出炉!全网最全!Git从入门到精通_第22张图片

7.2 将文件通过git add命令提交到暂存区

查看状态

新鲜出炉!全网最全!Git从入门到精通_第23张图片

7.3 将文件通过git commit命令提交到本地库

查看状态

7.4 修改second.txt文件

新鲜出炉!全网最全!Git从入门到精通_第24张图片

查看状态

新鲜出炉!全网最全!Git从入门到精通_第25张图片

7.5 重新提交至缓存区

7.6 将缓存区的文件提交到本地库

查看状态


8、git log命令

git log查看日期从近至远的日志信息。

8.1 查看日志记录

新鲜出炉!全网最全!Git从入门到精通_第26张图片

8.2 查看超过一屏的历史日志

当历史记录过多的时候,查看日志的时候,有分页分屏效果,分多页展示

新鲜出炉!全网最全!Git从入门到精通_第27张图片

上一页和下一页的操作命令如下:

下一页:空格

上一页:B

退出: Q

结尾显示:END

新鲜出炉!全网最全!Git从入门到精通_第28张图片

8.3 四种日志展示方式

 1.日志展示方式一

git log

 2.日志展示方式二

git log --pretty=oneline

新鲜出炉!全网最全!Git从入门到精通_第29张图片

3. 日志展示方式三

git log --oneline

新鲜出炉!全网最全!Git从入门到精通_第30张图片

4. 日志展示方式四

git reflog

 注意:
1. 多了HEAD@{数字},数字的含义是指针回到当前这个版本需要走的步数。


9、git reset命令

git reset 命令用于回退版本,可以指定退回某一次提交的版本。

git reset [--soft | --mixed | --hard] [HEAD]

9.1 新建一个文件,提交至本地库

新鲜出炉!全网最全!Git从入门到精通_第31张图片

9.2 修改几次内容后,提交到本地库

新鲜出炉!全网最全!Git从入门到精通_第32张图片

9.3 回退到指定的版本

提示:在窗口中,复制: 选中,粘贴: 右键点击paste。

新鲜出炉!全网最全!Git从入门到精通_第33张图片

新鲜出炉!全网最全!Git从入门到精通_第34张图片

9.4 --hard|--mixed | --soft 的区别

新鲜出炉!全网最全!Git从入门到精通_第35张图片

  1. --hard参数:本地库指针移动,暂存区和工作区的指针都会重置。
  2. --mixed参数:本地库和暂存区的指针移动,工作区的指针不会移动。
  3. --soft参数:本地库的指针移动,暂存区和工作区的指针不会移动。

10、git reset找回本地库删除的文件

10.1 找回本地库删除的文件

1. 新建一个文件test2.txt;

2. 将test2.txt文件add到暂存区;

3. 将test2.txt文件commit到本地库;

新鲜出炉!全网最全!Git从入门到精通_第36张图片

4. 删除工作区的test2.txt文件;

5. 将删除操作同步到暂存区;

6. 将删除操作同步到本地库;

新鲜出炉!全网最全!Git从入门到精通_第37张图片

7. 查看日志;

8. 找回本地库删除的文件。

其实就是,将版本回退到新增文件的那个历史版本即可。


11、git reset找回暂存区删除的文件

11.1 找回暂存区删除的文件

1. 删除工作区文件test2.txt;

2. 将删除操作同步到暂存区;

新鲜出炉!全网最全!Git从入门到精通_第38张图片

3. 删除不想做了,找回暂存区删除的文件。

新鲜出炉!全网最全!Git从入门到精通_第39张图片


12、git diff命令

git diff 命令比较文件的不同,即比较文件在暂存区和工作区的差异。

$ git diff [file]

 1. 新建一个文件,先添加到暂存区,再提交到本地库

新鲜出炉!全网最全!Git从入门到精通_第40张图片

2. 更改工作区文件test3.txt的文件内容,现在工作区和暂存区的内容不一致了。

 8e1ba2db908c181b76ab29549ea0f301.png

3. 比较工作区和暂存区中文件的差异(git diff [file])

新鲜出炉!全网最全!Git从入门到精通_第41张图片

4. 比较工作区和暂存区中所有文件的差异(git diff)

新鲜出炉!全网最全!Git从入门到精通_第42张图片

5.比较暂存区和工作区的文件差异

git diff [历史版本][文件名]
或者
git diff HEAD [文件名]

新鲜出炉!全网最全!Git从入门到精通_第43张图片

新鲜出炉!全网最全!Git从入门到精通_第44张图片

6.比较「暂存区」与「给定提交 ID」的差异

git diff --cached [索引]

新鲜出炉!全网最全!Git从入门到精通_第45张图片

7.比较两次提交的差异

git diff [索引1]...[索引2]

新鲜出炉!全网最全!Git从入门到精通_第46张图片


13、git分支管理

几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线。
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
Git 分支实际上是指向更改快照的指针。

有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。

●分支管理示意图:

新鲜出炉!全网最全!Git从入门到精通_第47张图片

​​​​●分支管理的优点:

  1. 多个分支并行开发,互不影响,提高工作效率;
  2. 单独的分支,可以独自管理,也可以删除,不会影响其他分支。

13.1 查看分支

1.在工作区创建一个文件test4.txt,然后添加到缓存区,再提交到本地库

新鲜出炉!全网最全!Git从入门到精通_第48张图片

2.查看分支

git branch -v

3.创建分支

git branch [branch名称]

新鲜出炉!全网最全!Git从入门到精通_第49张图片

4.切换分支

git checkout [branch名称]

新鲜出炉!全网最全!Git从入门到精通_第50张图片


13.2 分支冲突

1. 进入dev分支,增加内容

新鲜出炉!全网最全!Git从入门到精通_第51张图片

2. 进入master分支,增加内容

新鲜出炉!全网最全!Git从入门到精通_第52张图片

新鲜出炉!全网最全!Git从入门到精通_第53张图片

3. 切换到dev分支查看

新鲜出炉!全网最全!Git从入门到精通_第54张图片

4.切换到master分支,进行合并操作

git merge [branch名称]

新鲜出炉!全网最全!Git从入门到精通_第55张图片

新鲜出炉!全网最全!Git从入门到精通_第56张图片

注意事项:什么时候出现冲突呢?在同一文件的同一位置有修改。
解决方法:公司内部协商解决,人为决定,留下最合适的内容。

通过git add 和git commit解决冲突。

  • 保留需要的内容

新鲜出炉!全网最全!Git从入门到精通_第57张图片

  • 将修改的工作区内容提交到暂存区。

新鲜出炉!全网最全!Git从入门到精通_第58张图片

  • 将暂存区的内容提交到本地库

新鲜出炉!全网最全!Git从入门到精通_第59张图片


13.3 删除分支

git branch -d (branchname)

新鲜出炉!全网最全!Git从入门到精通_第60张图片


14、远程库使用GitHub

14.1 注册GitHub账号

GitHub官网地址如下:(https://github.com/)

点击右上角sign up按钮,按照提示一步步注册,注册完成后如下图所示。

新鲜出炉!全网最全!Git从入门到精通_第61张图片


14.2 进行本地库和远程库的交互

1.回顾之前介绍的本地库和远程库的交互图

新鲜出炉!全网最全!Git从入门到精通_第62张图片

2. 创建本地库

新鲜出炉!全网最全!Git从入门到精通_第63张图片

3. 创建GitHub远程仓库

新鲜出炉!全网最全!Git从入门到精通_第64张图片

新鲜出炉!全网最全!Git从入门到精通_第65张图片

新鲜出炉!全网最全!Git从入门到精通_第66张图片

创建成功后,如下图所示:

新鲜出炉!全网最全!Git从入门到精通_第67张图片

4. 本地创建远程库的别名

如何找到远程库的地址?点击下图的仓库名

新鲜出炉!全网最全!Git从入门到精通_第68张图片

进入后,就可以看到仓库的地址

新鲜出炉!全网最全!Git从入门到精通_第69张图片

远程库的地址如下:
https://github.com/lous1981/GitRespR.git,名字非常长,不方便操作。因此,在Git本地将地址保存,通过别名访问。

git remote -v
git remote add [别名] [远程库地址]

新鲜出炉!全网最全!Git从入门到精通_第70张图片

5.推送本地库到远程库 git push操作

git push [远程库别名] [推送的代码分支]

新鲜出炉!全网最全!Git从入门到精通_第71张图片

查看远程库的内容

新鲜出炉!全网最全!Git从入门到精通_第72张图片

注意:如果GitHub时因为网络等等原因push不成功,可以试一下执行下面的操作,然后再push,可以试多次。

6.远程库的克隆操作 git clone

  • 远程库地址复制

新鲜出炉!全网最全!Git从入门到精通_第73张图片

git clone [远程仓库地址]

  • 进行git clone克隆操作

新鲜出炉!全网最全!Git从入门到精通_第74张图片

 

克隆操作完成的事情:
1.初始化本地库;
2.将远程库内容完整克隆到本地;

cd6248d22f3221c52f8e8eed0e2ef1a5.png

3.创建远程库别名。

8b033e306062342f3b7dc0f92e02ea47.png


15、远程库邀请加入团队

15.1 普通程序员修改代码

1. 普通程序员新增文件,添加到暂存区,提交到本地库,然后push到远程库

新鲜出炉!全网最全!Git从入门到精通_第75张图片

问题:我没有录入账户信息,怎么提交成功了呢?也没有提示错误。

原因:git在本地有缓存,默认使用的是缓存的账号。

解决办法:删除缓存

WIN 11 操作按照下图所示:

新鲜出炉!全网最全!Git从入门到精通_第76张图片

选择Windows凭证,查看git的凭证。

新鲜出炉!全网最全!Git从入门到精通_第77张图片

2. 重新push,发现权限不足,需要申请权限。

新鲜出炉!全网最全!Git从入门到精通_第78张图片

3. 加入团队

登录项目经理的账号,邀请普通程序员。

新鲜出炉!全网最全!Git从入门到精通_第79张图片

邀请成员:

新鲜出炉!全网最全!Git从入门到精通_第80张图片

输入成员账号:

新鲜出炉!全网最全!Git从入门到精通_第81张图片

发起邀请,复制邀请链接:

新鲜出炉!全网最全!Git从入门到精通_第82张图片

登录被邀请人的GitHub账号,接受邀请(将刚复制的链接,在浏览器地址栏输入)

或者在通知栏有邀请通知,点击进入接受邀请。

新鲜出炉!全网最全!Git从入门到精通_第83张图片

再次提交

新鲜出炉!全网最全!Git从入门到精通_第84张图片


16、远程库修改的拉取

16.1 登录项目经理的账号,确认远程库是否更新

新鲜出炉!全网最全!Git从入门到精通_第85张图片

16.2 查看项目经理本地仓库

新鲜出炉!全网最全!Git从入门到精通_第86张图片

16.3 远程库fetch操作

git fetch [远程库别名] [远程库分支]

新鲜出炉!全网最全!Git从入门到精通_第87张图片

在fetch操作执行之后,只是将远程库的内容下载到本地,工作区的内容并没有更新,还是原来的内容。

16.4 确认远程库内容

新鲜出炉!全网最全!Git从入门到精通_第88张图片

如果发现所有内容都已经正确更新,则接下来就可以合并了。

16.5 本地库git merge合并操作

合并前先将分支切换回来。

git merge [远程库别名]/[远程库分支]

新鲜出炉!全网最全!Git从入门到精通_第89张图片

新鲜出炉!全网最全!Git从入门到精通_第90张图片

16.6 git pull 拉取操作

git pull 操作相当于git fetch和git merge

git pull [远程库别名] [远程库分支]

操作对比:

fetch+merge:起保险和慎重作用;

pull:代码简单,省事使用


17、协作开发解决冲突问题

17.1 项目管理人员新增文件

新鲜出炉!全网最全!Git从入门到精通_第91张图片

17.2 项目普通人员操作

  1. 先拉取最新代码

新鲜出炉!全网最全!Git从入门到精通_第92张图片

17.3 项目普通人员修改同一个文件的同一个位置并提交

新鲜出炉!全网最全!Git从入门到精通_第93张图片

新鲜出炉!全网最全!Git从入门到精通_第94张图片

新鲜出炉!全网最全!Git从入门到精通_第95张图片

17.4 项目管理人员修改同一个文件的同一位置

新鲜出炉!全网最全!Git从入门到精通_第96张图片

添加暂存区,提交到本地库,然后push到远程库,发现冲突。

新鲜出炉!全网最全!Git从入门到精通_第97张图片

新鲜出炉!全网最全!Git从入门到精通_第98张图片

问题:发现冲突了怎么办呢?

解决办法:先拉取,然后修改冲突,最后在push到远程库

  • 先拉取最新代码

新鲜出炉!全网最全!Git从入门到精通_第99张图片

  • 比较内容:

新鲜出炉!全网最全!Git从入门到精通_第100张图片

  • 人工解决冲突(保留合适的,删除不当的)

  • 解决完冲突后,再添加到暂存区,提交到本地库,推送到远程库

新鲜出炉!全网最全!Git从入门到精通_第101张图片

新鲜出炉!全网最全!Git从入门到精通_第102张图片

  • 确认内容是否已经更新

新鲜出炉!全网最全!Git从入门到精通_第103张图片


18、跨团队合作

18.1 回顾跨团队合作方式

新鲜出炉!全网最全!Git从入门到精通_第104张图片 

18.2 跨团队合作

1. 得到远程库的地址:GitHub - lous1981/GitRespR: 创建一个远程仓库,名称GitRespR

新鲜出炉!全网最全!Git从入门到精通_第105张图片

2. 进入要fork仓库的账号,复制远程库地址到浏览器的地址栏,然后点击进入

3. 执行下面的fork操作。

新鲜出炉!全网最全!Git从入门到精通_第106张图片

4. git clone克隆到本地进行修改

新鲜出炉!全网最全!Git从入门到精通_第107张图片

5. 新增文件后提交,push到远程库

新鲜出炉!全网最全!Git从入门到精通_第108张图片

新鲜出炉!全网最全!Git从入门到精通_第109张图片

6. 进行pull request操作

创建新的pull request请求

新鲜出炉!全网最全!Git从入门到精通_第110张图片

进入新页面,创建新的pull request请求

新鲜出炉!全网最全!Git从入门到精通_第111张图片

输入pull request请求的相关信息:

新鲜出炉!全网最全!Git从入门到精通_第112张图片

创建pull request请求成功:

新鲜出炉!全网最全!Git从入门到精通_第113张图片

7. 项目管理员进行合并

管理员进入仓库,查看pull request请求信息:

新鲜出炉!全网最全!Git从入门到精通_第114张图片

 在进入请求详情页查看,可以进行相互交流确认。

新鲜出炉!全网最全!Git从入门到精通_第115张图片

审核通过之前,查看具体提交的内容是否正确。

新鲜出炉!全网最全!Git从入门到精通_第116张图片

如果确认审核通过,点击下面的按钮确认。

新鲜出炉!全网最全!Git从入门到精通_第117张图片

确认合并后的代码是否同步。

新鲜出炉!全网最全!Git从入门到精通_第118张图片


19、SSH免密登录

19.1 进入用户主目录

cd ~

19.2 执行命令,生成一个.ssh的目录

ssh-keygen -t ed25519 -C [GitHub注册账号对应的邮箱]

输入命令,三次回车确认默认值。

新鲜出炉!全网最全!Git从入门到精通_第119张图片

.ssh目录下有两个文件

19.3 打开文件id_ed25519,复制里面的内容

19.4 进入GitHub管理后台
选择Settings,点击进入

新鲜出炉!全网最全!Git从入门到精通_第120张图片

选择下面的菜单

新鲜出炉!全网最全!Git从入门到精通_第121张图片

进入如下菜单:

新鲜出炉!全网最全!Git从入门到精通_第122张图片

增加一个sshkey,名字可以自己定义,内容为之前复制的内容。

19.5 测试SSH秘钥

  • 打开 Git Bash,输入以下内容:
ssh -T [email protected]
  • 通过ssh 连接到GitHub,可能会看到类似如下的警告:

The authenticity of host 'github.com (IP ADDRESS)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

  • 验证所看到消息中的指纹是否匹配 GitHub 的公钥指纹。 如果是,则输入 yes:

Hi username! You've successfully authenticated, but GitHub does not
provide shell access.

新鲜出炉!全网最全!Git从入门到精通_第123张图片

19.6生成SSH秘钥后,就可以正常使用
给ssh的远程地址起别名。
获取ssh远程地址,如下图:

新鲜出炉!全网最全!Git从入门到精通_第124张图片

给远程ssh地址起别名

git remote add origin_ssh [远程ssh地址]

新鲜出炉!全网最全!Git从入门到精通_第125张图片

测试是否能正确使用。

新鲜出炉!全网最全!Git从入门到精通_第126张图片

新鲜出炉!全网最全!Git从入门到精通_第127张图片

使用SSH:
优点:方便,不用每次都进行身份验证;
缺点:只能针对一个账号


20、IDEA集成Git

20.1 IDEA配置Git版本控制

新鲜出炉!全网最全!Git从入门到精通_第128张图片

20.2 本地库的初始化

新鲜出炉!全网最全!Git从入门到精通_第129张图片

本地库初始化完成,生成了.git目录。

新鲜出炉!全网最全!Git从入门到精通_第130张图片

20.3 添加文件

添加新文件时,会提示,是否add

新鲜出炉!全网最全!Git从入门到精通_第131张图片

进行add和commit操作

新鲜出炉!全网最全!Git从入门到精通_第132张图片

新鲜出炉!全网最全!Git从入门到精通_第133张图片

提交完成后的信息

新鲜出炉!全网最全!Git从入门到精通_第134张图片

再次修改文件时,文件前面的内容会显示绿色颜色块。

新鲜出炉!全网最全!Git从入门到精通_第135张图片


21、IDEA同步远程库

21.1 合并不相干的分支

通过下面的命令,把两段不相干的 分支进行强行合并。

git pull origin master --allow-unrelated-histories

 21.2 进行push推送操作

通过下面的命令,进行push推送。

git push -u origin master -f

新鲜出炉!全网最全!Git从入门到精通_第136张图片

到这里远程库和本地库就同步了。

21.3 修改文件,然后push

新鲜出炉!全网最全!Git从入门到精通_第137张图片

确认提交信息。

新鲜出炉!全网最全!Git从入门到精通_第138张图片

可以在commit同时push到远程库。

新鲜出炉!全网最全!Git从入门到精通_第139张图片

注:开发时,先pull操作,再push操作,不要直接push操作。


22、IDEA克隆远程库

22.1 选择从版本控制创建项目

22.2 克隆远程库

新鲜出炉!全网最全!Git从入门到精通_第140张图片

22.3 克隆到本地

新鲜出炉!全网最全!Git从入门到精通_第141张图片

22.4 查看项目目录

既是本地仓库,又是工作空间。

新鲜出炉!全网最全!Git从入门到精通_第142张图片


23、IDEA解决冲突

23.1 修改文件Student.java

新鲜出炉!全网最全!Git从入门到精通_第143张图片

23.2 提交修改并push到远程库

新鲜出炉!全网最全!Git从入门到精通_第144张图片

确认结果:

新鲜出炉!全网最全!Git从入门到精通_第145张图片

23.3 IDEA修改Student.java

修改文件

新鲜出炉!全网最全!Git从入门到精通_第146张图片

修改后push

新鲜出炉!全网最全!Git从入门到精通_第147张图片

push失败

新鲜出炉!全网最全!Git从入门到精通_第148张图片

进行Merge操作解决冲突。

避免冲突:

  1. 团队开发避免修改同一个文件,团队内部协商好。
  2. 在修改一个文件前,先进行pull操作,再进行push操作。

你可能感兴趣的:(git,服务器,svn)