Git & Gitee多人协作开发

时间:2024-03-30 07:52:24

Git & Gitee多人协作开发

一、Git原理和常用命令

Git原理图
Git & Gitee多人协作开发

  • 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)直接拖拽文件上传

Git & Gitee多人协作开发

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

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

参考如下两个博客

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

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

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

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

Git & Gitee多人协作开发
Git & Gitee多人协作开发

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

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

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

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

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

Git & Gitee多人协作开发

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

还可以在项目导入界面采用Version Control的方式导入
Git & Gitee多人协作开发

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

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

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

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

Git & Gitee多人协作开发

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

Git & Gitee多人协作开发

Git & Gitee多人协作开发

注意:

  • 在整个项目上创建新的分支,作为一个新的版本
  • 为了修复不同版本的bug可以通过checkout,来切换分支

7、多分支合并 & 冲突处理(Merge change)

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

1.0版本:
Git & Gitee多人协作开发

当前版本(Master):
Git & Gitee多人协作开发

分支冲突修复:
Git & Gitee多人协作开发

四、零碎知识点

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位贡献者。。

Git & Gitee多人协作开发

  • 解决方法是对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的更新、提交、还原方法