引言
最近由于课设的原因,在学习Java Web开发,因为要混Git的小绿点,我把之前学习Servlet的代码传到了Github上。
像这样:
这两周到了课设开发的时间,虽然组员们不用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查看成果:
可以看到,我们成功了!