目录

  • 引言
  • 解决方案
  • 实际操作


引言

最近由于课设的原因,在学习Java Web开发,因为要混Git的小绿点,我把之前学习Servlet的代码传到了Github上。

像这样:

一台电脑可以装两个android studio吗 一个电脑可以装两个idea吗_远程仓库

这两周到了课设开发的时间,虽然组员们不用Git,但是本着开源(混绿点)精神,我还是想传到Git上,但是由于我不是一个职业的Java选手,我认为再为它开一个仓库不太美观。

是的,我希望我的学习代码和课设代码共存一个仓库。

很显然,我无法通过在同个仓库下创建lean_web和class_design文件夹去解决这个方案,因为它们在不同的IDEA项目中,Git无法将分支关联到另一个分支的文件夹下

如果为它们创建一个大的项目,又会显得很杂乱,并且不同的项目有不同配置和依赖,我本人也不太懂IDEA的这些配置,可能可以通过修改一些项目路径解决。

下面我将介绍一种方案,其实很简单,也很容易想到。

解决方案

那么我怎么解决这个无聊的问题呢?

答案是:分支管理。我在JavaWeb这个仓库的master分支中存放学习时用的代码,class_design分支存放课设代码,只需要切换分支即可达到切换项目的目的。

下面我将讲述如何在远程仓库和本地仓库均有代码的情况下,将本地仓库代码关联到新的分支。

由于我是在WSL2下使用Git操作Windows的仓库,项目路径会比较奇怪(默认挂载到/mnt/c),换成自己的路径就好。

实际操作

  • 初始化本地仓库,将课设内容提交到本地的class_design分支。
# 进入到课设目录
nigo@DESKTOP-95TV8LK ~> cd /mnt/c/Users/NiGo/Desktop/TTMS_Framework\(2021.4.28\)/TTMSdemo/

# 目录下存放着已经完成的课设内容
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo> ls
META-INF/  TTMSdemo.iml*  WebContent/  build/  classes/  src/  环境配置说明.docx*

# 初始化仓库
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo> git init

# 创建并切换到class_design分支
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo> git checkout -b class_design

# 提交到本地仓库
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo (class_design)> git add -A && git commit -m "init"
  • 关联并拉取远程仓库内容。
# 关联远程仓库
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo (class_design)> git remote add origin git@github.com:XiyouNiGo/JavaWeb.git

# 切换到master分支
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo (class_design)> git checkout master

# 拉取远程仓库内容到master
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo (master)> git pull origin master
  • 提交本地仓库内容
# 切换到class_design分支
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo (master)> git checkout class_designed

# 提交本地仓库内容
nigo@DESKTOP-95TV8LK /m/c/U/N/D/T/TTMSdemo (class_design)> git push origin class_design
  • 最后打开Github查看成果:

一台电脑可以装两个android studio吗 一个电脑可以装两个idea吗_git_02


可以看到,我们成功了!