
电脑: MBP
项目: xxx(仅此 1 个项目)
版本控制: git
需求:同时在做 2 个 task ,需要从 master 上拉出 2 个分支 dev_1 和 dev_2 同时开发; 但是我打开两个 iTerm2 ,两个 iTerm2 中项目中分支总是保持一致:即我在一个 iTerm2 窗口中切换分支后,另外一个会同步切换;
我需要的是: 2 个 iTerm 窗口一个进行 dev_1 的开发,另一个进行 dev_2 的开发;
怎么能做到? 求指教。
1 mikicomo Oct 25, 2016 本地 git clone 两个 repo ? |
2 yidinghe Oct 25, 2016 via Android 拷贝两份,分别开发,然后提交到同一个远程库 |
3 shoaly Oct 25, 2016 mkdir branch2 cd branch2 git init git fetch ../branch1 branch2:branch2 git checkout branch2 愉快的在 branch2 开发 |
4 whalesay Oct 25, 2016 git checkout -b newbranch git branch -vv |
7 DualWield Oct 25, 2016 为什么不能做到本地两个项目,在两个分支上面开发? |
8 Lonely Oct 25, 2016 via iPhone 同一个目录,难道还能同时处于两个分支? |
9 xiaozhaoz Oct 25, 2016 去理解 git 的 workdir 功能, git 源码中一个创建 workdir 的脚本。 创建两个 workdir ,每个开发不同分支,但 git local repo 是一个。 |
12 tairan2006 Oct 25, 2016 via Android AB 问题 没听说必须要在两个分支一起开发的,你直接开两个项目不行么 |
13 whalesay Oct 25, 2016 @linuxzpf 第一句是建立并切换到新分支 newbranch ,第二句是看分支状态。另外用 git checkout branchname 随时可切到另一个分支 |
14 ratazzi Oct 25, 2016 |
15 qwer1234asdf Oct 25, 2016 via iPhone hg |
17 linuxzpf OP @tairan2006 没说必须要一起,但是时常会同时做两个 task ,有这个需求呀 |
18 xiaozhaoz Oct 25, 2016 上面已经有几个同学说了。 git workdir ,新版本叫 git worktree, 自己查一下就知道了。 一个 worktree 对应一个 branch ,每个 worktree 下面的.git 是指向同一个地方。 所以你的开发模式就是,多个 worktree , 每个 worktree 对应一个 branch ,两个 iterm 中使用不同的 worktree ,所有 worktree 指向同一个 git repo. 不要用 clone 多分 repo 的方法,避免重复和各种同步问题。 |
19 int64ago Oct 25, 2016 via Android 来回切呗,会有什么影响吗? 你担心临时更改?! git stash 即可 |
21 SpicyCat Oct 26, 2016 没弄过 git worktree, 但是楼主你这个需求明明分别在两个文件夹下 git clone 你的工程就能满足啊。 想象下现在有两个人分别在 dev1 和 dev2 上工作,他们肯定是在各自的电脑上 git clone 工程啊。 你现在是一个人,那就 clone 两份呗,反正都是 push 到一个 remote repo 上。 |
22 SpicyCat Oct 26, 2016 刚才大致看了下 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 此贴值得一读。 |