前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一日一技:如何同时在多个分支写代码?

一日一技:如何同时在多个分支写代码?

作者头像
青南
发布2023-11-16 11:15:07
3440
发布2023-11-16 11:15:07
举报
文章被收录于专栏:未闻Code未闻Code

摄影:产品经理

黑松露牛脸肉面

当我们在维护公司项目时,可能会遇到这样的场景:我正在开发一个新功能,突然需要修一个Bug。

这个时候,有些同学是这样做的:

代码语言:javascript
复制
git add .
git commit -m 'WIP'
git checkout -b 新的分支名

...新的代码修改完成并push以后...

git checkout 老分支
...继续开发...

更有一些经验的同学,可能会这样写:

代码语言:javascript
复制
git stash
git checkout -b 新的分支
...新的代码修改完成并push以后...
git checkout 老分支
git stash pop

但如果在修这个Bug的时候,又来了一个更紧急的Bug需要修怎么办?到后面很容易就把前面的代码搞忘了。

其实我们有更好的办法,那就是使用git worktree命令。这个命令甚至可以让你同时在10个分支上开发,并且1秒无负担切换到任意分支。

假设现在我所在的项目文件夹为/Users/kingname/Projects/JobCleaner,在feature分支。现在来了一个Bug需要修复,于是,我只需要执行如下命令:

代码语言:javascript
复制

git worktree add ../JobCleanerBugFix master
cd ../JobCleanerBugFix
git pull origin master

此时,Git会自动在/Users/kingname/Projects/文件夹下面,创建一个新的文件夹JobCleanerBugFix。并且这个代码已经在master分支了。你可以直接使用PyCharm或者任何其他的代码编辑器,打开这个文件夹,然后像正常开发一样修复Bug。

整个过程中,/Users/kingname/Projects/JobCleaner始终是你之前开发新功能的代码,假设你之前的PyCharm有一个窗口开着这个文件夹,那么你随时可以正常在里面修改代码。

这个时候如果又来了一个更紧急的Bug了,那么你只需要在/Users/kingname/Projects/JobCleaner里面再次执行代码,创建第三个文件夹即可:

代码语言:javascript
复制
git worktree add ../JobCleanerP0Bug master
cd ../JobCleanerP0Bug
git pull origin master

这三个文件夹互相独立,你的IDE可以分别打开这三个文件夹,同步修改任何代码。他们完全不会有任何影响,看起来就跟3个独立的项目一样。

理论上你可以无限这样添加。

当你在/Users/kingname/Projects/JobCleanerP0Bug下面已经改完了代码,你只需要正常提交就可以了:

代码语言:javascript
复制
git add xxx.py yyy.py
git commit -m '修复bug'
git push origin master:bugfix

提交完成,确认没有任何问题以后,回到/Users/kingname/Projects/JobCleaner文件夹,执行命令git worktree remove ../JobCleanerP0Bug/,就会自动删除/Users/kingname/Projects/JobCleanerP0Bug文件夹。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 未闻Code 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档