Git & Gitee多人协作开发

Git & Gitee多人协作开发

一、Git原理和常用命令

Git原理图
在这里插入图片描述

  • git add files 把当前文件放入暂存区域。

  • git commit 给暂存区域生成快照并提交。

    提交时,git用暂存区域的文件创建一个新的提交,并把此时的节点设为父节点。然后把当前分支指向新的提交节点。上图中,当前分支是master

  • git checkout -- files 把文件从暂存区域复制到工作目录,用来丢弃本地修改。

    checkout命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支(不同分支代表不同版本)。

个人浅薄理解:

  • Git的版本控制其实是通过对树进行节点的添加和删除来实现的,项目主干是master节点(当前项目版本),项目的不同版本则有branch节点。
  • Git的树模型感觉是采用并查集的方式,可以判断当前的节点A(文件A)和节点B(文件B)是否在同一个branch节点,即是否在同一个项目中,而项目的root节点为master节点

参考图解git基本使用

二、安装Git

参考Git下载、安装与环境配置

三、Git在IDEA上的使用

1、在Gitee上新建项目

参考码云如何创建项目?

2、本地项目上传Gitee
1)直接拖拽文件上传

在这里插入图片描述

缺点:一次最多只能上传20个文件。

2)IDEA / 手动配置实现本地项目上传

参考如下两个博客

1、在IDEA中直接导入项目到码云:参考IDEA上传本地项目到码云

2、从码云中clone项目到指定文件夹,然后通过本地的git来提交项目:参考将本地项目上传到码云,只需这几步,每个步骤都有图文

我就很纳闷了,尝试了上面两种方法。

  • 第一种为什么Gitee提交后,日志报错,但是却正确提交了,那请问这个项目提交到哪了?在我的Gitee,Github中没有这个仓库
  • 第二种则手动cloneaddcommitpush,也是在Gitee没有这个仓库。(问题原因请见四.4)

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

3)通过Github Desktop间接上传到Gitee

问题:如何将原来的项目导入Gitee?

解决方法:先通过Github Desktop将项目上传到Github,然后再通过Gitee去克隆Github的仓库

Github Desktop上传项目离不开commitpush,具体如何使用请自行百度。Gitee如何克隆Github的仓库请见Github资源下载慢怎么办

3、IDEA从Gitee下载项目(clone)

在这里插入图片描述

注意项目是公开项目,否则需要身份验证

还可以在项目导入界面采用Version Control的方式导入
在这里插入图片描述

4、IDEA将项目添加到本地仓库(add + commit)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IrqrF2mG-1601885572665)(./img/GIF 2020-10-3 15-03-14.gif)]

注意commit只是将文件提交到master分支,不会推送给远程服务器

5、IDEA将项目推送到服务器(push)

在这里插入图片描述

6、发布新版本 & 切换版本(branch)

在这里插入图片描述

在这里插入图片描述

注意:

  • 在整个项目上创建新的分支,作为一个新的版本
  • 为了修复不同版本的bug可以通过checkout,来切换分支
7、多分支合并 & 冲突处理(Merge change)

如果在开发2.0版本时,用户反馈1.0版本出现bug,由于2.0版本是在1.0上的再次开发,虽1.0的bug已经修复,但在2.0中没修复bug。

1.0版本:
在这里插入图片描述

当前版本(Master):
在这里插入图片描述

分支冲突修复:
在这里插入图片描述

四、零碎问题

1、在IDEA上安装Gitee插件

参考IDEA 使用插件与码云仓库同步工程

2、IDEA获取Gitee的token

参考如何获取Gitee的token?

3、IDEA设置项目文件自动Add到Git

参考IDEA设置项目文件自动Add到Svn/Git

注意:

  • 如果文件发生冲突时(标红),需要手动add
  • 如果文件标蓝,则说明文件add到本地仓库上,但没有提交到master节点
4、Gitee用户绑定问题

对于IDEA推送原始项目到Gitee出现的问题,原因如下(见三.2.2)):

  • Gitee会自动为Github账户创建一个用户(只有用户名,没有密码),即使在gist create depository时输入了用户名和密码(你在注册Gitee时用的邮箱和密码),也不会登录这个账号,似乎Gitee有Github账户优先的特性。。。

    如下你就会发现这个问题:我在同一台机器上上传项目,但却出现了2位贡献者。。

在这里插入图片描述

  • 解决方法是对Github账户对应的Gitee账号进行邮箱绑定,这样账户就不存在歧义了,也不会出现导入项目成功,却找不到项目的问题。
5、Tomcat配置不一致问题

​ 由于我之前tomcat在编译时会出现中文乱码,参考了这篇博客解决tomcat启动时的中文乱码问题,在配置文件中将UTF-8修改成GBK之后,tomcat正常显示中文。

​ 但是在和小伙伴A合作开发时(之前没碰到过),发现我的tomcat控制台中文输出全为’?’,参考了使用idea控制台System.out,输出中文后为???之后,发现还是解决不了问题。

​ 这时我考虑A的tomcat是否是采用UTF-8进行编码的,而我的tomcat是用GBK编码的,我删除了项目中的一下配置文件(变成裸露的项目),重新运行tomcat,还是乱码,但是乱码和之前不一样。这时我将GBK修改成UTF-8,中文就正常显示了。

6、IDEA中Git的更新、提交、还原方法

参考
IDEA中Git的更新、提交、还原方法
idea git项目回退到对应版本和还原到最新版本

7、git rebase & merge

参考git rebase 还是 merge的使用场景最通俗的解释

8、Git detached head的解决方法

detached head是一种HEAD指针指向了某一个具体的 commit id,而不是分支的情况。在这个状态下进行的commit,会在你本地仓库上显示更新,但是不会对你的远程分支产生影响,其他开发人员开不到项目更新信息。

解决方法:

  • 先checkout一下原来的master分支(切换分支操作见三.6)
  • pull rebase项目
  • 再push项目就可以成功提交到远程仓库master分支上了

参考Git detached head的解决方法

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值