求教:在同一台电脑上如何做到开发一个项目的两个分支?

2016-10-25 18:05:27 +08:00
 linuxzpf

电脑: MBP

项目: xxx(仅此 1 个项目)

版本控制: git

需求:同时在做 2 个 task ,需要从 master 上拉出 2 个分支 dev_1 和 dev_2 同时开发; 但是我打开两个 iTerm2 ,两个 iTerm2 中项目中分支总是保持一致:即我在一个 iTerm2 窗口中切换分支后,另外一个会同步切换;

我需要的是: 2 个 iTerm 窗口一个进行 dev_1 的开发,另一个进行 dev_2 的开发;

怎么能做到? 求指教。

6548 次点击
所在节点    问与答
22 条回复
mikicomo
2016-10-25 18:07:39 +08:00
本地 git clone 两个 repo ?
yidinghe
2016-10-25 18:08:12 +08:00
拷贝两份,分别开发,然后提交到同一个远程库
shoaly
2016-10-25 18:09:33 +08:00
mkdir branch2
cd branch2
git init
git fetch ../branch1 branch2:branch2
git checkout branch2
愉快的在 branch2 开发
whalesay
2016-10-25 18:12:33 +08:00
git checkout -b newbranch
git branch -vv
linuxzpf
2016-10-25 18:18:02 +08:00
@whalesay 这是什么意思?
linuxzpf
2016-10-25 18:18:54 +08:00
@mikicomo 这个不可行
DualWield
2016-10-25 18:23:52 +08:00
为什么不能做到本地两个项目,在两个分支上面开发?
Lonely
2016-10-25 18:28:34 +08:00
同一个目录,难道还能同时处于两个分支?
xiaozhaoz
2016-10-25 18:29:41 +08:00
去理解 git 的 workdir 功能, git 源码中一个创建 workdir 的脚本。
创建两个 workdir ,每个开发不同分支,但 git local repo 是一个。
linuxzpf
2016-10-25 18:32:48 +08:00
@yidinghe
@DualWield 拷贝两份(其中一个重命名),在两个里面分别开发,然后提交到同一个远程库,是这个意思吧?
DualWield
2016-10-25 18:35:38 +08:00
@linuxzpf 是的
tairan2006
2016-10-25 18:37:14 +08:00
AB 问题 没听说必须要在两个分支一起开发的,你直接开两个项目不行么
whalesay
2016-10-25 18:38:48 +08:00
@linuxzpf 第一句是建立并切换到新分支 newbranch ,第二句是看分支状态。另外用 git checkout branchname 随时可切到另一个分支
ratazzi
2016-10-25 18:46:54 +08:00
qwer1234asdf
2016-10-25 19:28:56 +08:00
hg
linuxzpf
2016-10-25 19:33:47 +08:00
@whalesay 你说的这个基本用法都知道,关键是我有其他需求如题
linuxzpf
2016-10-25 19:34:55 +08:00
@tairan2006 没说必须要一起,但是时常会同时做两个 task ,有这个需求呀
xiaozhaoz
2016-10-25 20:12:21 +08:00
上面已经有几个同学说了。

git workdir ,新版本叫 git worktree, 自己查一下就知道了。
一个 worktree 对应一个 branch ,每个 worktree 下面的.git 是指向同一个地方。

所以你的开发模式就是,多个 worktree , 每个 worktree 对应一个 branch ,两个 iterm 中使用不同的 worktree ,所有 worktree 指向同一个 git repo. 不要用 clone 多分 repo 的方法,避免重复和各种同步问题。
int64ago
2016-10-25 21:19:22 +08:00
来回切呗,会有什么影响吗?

你担心临时更改?!

git stash 即可
linuxzpf
2016-10-25 21:57:36 +08:00
@xiaozhaoz 谢谢,我好好研究下 git worktree 是怎么工作的。

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

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

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

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

© 2021 V2EX