git 问题咨询

2022-04-05 20:59:30 +08:00
 JadePenG

git 用的比较少, 所以来询问一下大佬们,我遇到如下场景有什么方式可以处理。 目前项目只有一个分支,master 分支。 假如我目前在开发当前项目的 V1.2 版本,但是 V1.1 版本有 BUG 时,我需要修改对应的代码。 但是 V1.2 版本的新功能不可能在一次 BUG 修复中就发布出来。那么此时我应该怎么处理 V1.2 版本新功能的代码呢?

可以不通过新建一次分支的情况下处理嘛。 [这是重点哦]

3272 次点击
所在节点    程序员
33 条回复
SmiteChow
2022-04-06 10:01:08 +08:00
在服务器上复制一份代码现改,然后可以生成 patch 文件,最后手动把所有服务器上打 patch 补丁。
Jwyt
2022-04-06 10:07:48 +08:00
学一下 git 吧,真不难
lizuoqiang
2022-04-06 10:20:34 +08:00
都用 git 了,还是看看 git 工作流吧
daimubai
2022-04-06 10:42:44 +08:00
stash 可以解决,把 v1.2 的先暂存
james2013
2022-04-06 10:59:15 +08:00
不新建分支是处理不了的,难道要把 1.2 版本的所有提交记录还原么?
这种情况,在 1.1 版本最后 1 次 commit 打个 tag,用新分支修改 bug 后,再把这个修复版本打 tag
ganbuliao
2022-04-06 11:04:20 +08:00
git flow 看一下吧
superfatboy
2022-04-06 11:10:53 +08:00
git flow xiao 一下吧
konakona
2022-04-06 11:16:48 +08:00
你们是一个分支打了 2 个 tag 来进行版本管理?
那你先基于 v1.1 的标签创建分支,然后在这个分支上创建一个新的 bugfix or hotfix 分支(这样可以独立 commit id 和文件树),修复完后文件数量应该不多就几个吧?

```
git checkout v1.1
...此时修改文件 A 、B 、C
git add A B C
git commit -m '修复了 xxx 问题'
git status #可以看到只有 3 个文件变动
git -a v1.1.1 -m '修复了 xxx 问题' # 打一个新的 tag

# 接下来要将修改的这 3 个文件的改动合并到 master 分支
git checkout master
git merge v1.1.1
```
konakona
2022-04-06 11:18:13 +08:00
上面补充下,我提议的跟我打的命令是 2 个做法。
提议的是用一些 git flow ( flow 是一个统称,代表流程,比如有 git-flow gitlab-flow GitHub-flow 等等)的方式管理版本。

如果不用 flow ,就是直接代码片段里那样也可以的。
why1001
2022-04-06 11:28:59 +08:00
不创建分支就是 v1.2 先扔到暂存,改完 bug ,再恢复
leafre
2022-04-06 11:40:58 +08:00
stash 能解决,但是分支用起来啊
tuutoo
2022-04-06 16:54:38 +08:00
看一下 git 工作流 如何管理和使用分支。基本上不会在 master 上直接开发的。至少会新建 dev, feature, hotfix 或者 bugfix 这种分支。一言两语说不清。 master 永远对应生产库的最新版,其他的都 checkout 分支出来开发新功能或者 bugfix 。完了再合并回分支。。。
bugfix 或者新功能上线后,其他正在开发的分支再从 master 合并(merge)或者变基(rebase),这个 rebase 也不能乱用(特别是多人开发同一分支的时候)。用之前先好好看一下。。。
findex
2022-04-06 17:00:43 +08:00
rebase 即可

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/845078

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX