电脑: MBP
项目: xxx(仅此 1 个项目)
版本控制: git
需求:同时在做 2 个 task ,需要从 master 上拉出 2 个分支 dev_1 和 dev_2 同时开发; 但是我打开两个 iTerm2 ,两个 iTerm2 中项目中分支总是保持一致:即我在一个 iTerm2 窗口中切换分支后,另外一个会同步切换;
我需要的是: 2 个 iTerm 窗口一个进行 dev_1 的开发,另一个进行 dev_2 的开发;
怎么能做到? 求指教。
1
mikicomo 2016-10-25 18:07:39 +08:00
本地 git clone 两个 repo ?
|
2
yidinghe 2016-10-25 18:08:12 +08:00 via Android
拷贝两份,分别开发,然后提交到同一个远程库
|
3
shoaly 2016-10-25 18:09:33 +08:00
mkdir branch2
cd branch2 git init git fetch ../branch1 branch2:branch2 git checkout branch2 愉快的在 branch2 开发 |
4
whalesay 2016-10-25 18:12:33 +08:00
git checkout -b newbranch
git branch -vv |
7
DualWield 2016-10-25 18:23:52 +08:00
为什么不能做到本地两个项目,在两个分支上面开发?
|
8
Lonely 2016-10-25 18:28:34 +08:00 via iPhone
同一个目录,难道还能同时处于两个分支?
|
9
xiaozhaoz 2016-10-25 18:29:41 +08:00
去理解 git 的 workdir 功能, git 源码中一个创建 workdir 的脚本。
创建两个 workdir ,每个开发不同分支,但 git local repo 是一个。 |
10
linuxzpf OP |
12
tairan2006 2016-10-25 18:37:14 +08:00 via Android
AB 问题 没听说必须要在两个分支一起开发的,你直接开两个项目不行么
|
13
whalesay 2016-10-25 18:38:48 +08:00
@linuxzpf 第一句是建立并切换到新分支 newbranch ,第二句是看分支状态。另外用 git checkout branchname 随时可切到另一个分支
|
14
ratazzi 2016-10-25 18:46:54 +08:00
|
15
qwer1234asdf 2016-10-25 19:28:56 +08:00 via iPhone
hg
|
17
linuxzpf OP @tairan2006 没说必须要一起,但是时常会同时做两个 task ,有这个需求呀
|
18
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 的方法,避免重复和各种同步问题。 |
19
int64ago 2016-10-25 21:19:22 +08:00 via Android
来回切呗,会有什么影响吗?
你担心临时更改?! git stash 即可 |
21
SpicyCat 2016-10-26 11:45:09 +08:00
没弄过 git worktree, 但是楼主你这个需求明明分别在两个文件夹下 git clone 你的工程就能满足啊。
想象下现在有两个人分别在 dev1 和 dev2 上工作,他们肯定是在各自的电脑上 git clone 工程啊。 你现在是一个人,那就 clone 两份呗,反正都是 push 到一个 remote repo 上。 |
22
SpicyCat 2016-10-26 11:53:05 +08:00
刚才大致看了下 git worktree ,可以说理论上 git worktree 能做的事情,多次 git clone 都能做到,但是 git worktree 有自己的优势,比如如果 repo 很大,那么多次 clone 就很花时间,而且也占用硬盘空间,还有就是多个 clone 的项目管理起来不如 git worktree 方便。
http://stackoverflow.com/questions/31935776/what-would-i-use-git-worktree-for 此贴值得一读。 |