git同时在两个分支上工作
我有一个分支很多的项目。
我想同时在几个分支上工作而不用git checkout
来回切换。
有什么办法可以做到这一点,除了复制整个资源库的其他地方?
Git 2.5+(Q2 2015)将支持这个function:一旦你克隆了一个git repo,你将能够使用新的命令git worktree add <path> [<branch>]
检出不同path中的多个分支。
这取代了旧的脚本contrib/workdir/git-new-workdir
,使用更强大的机制,这些“链接”的工作树实际上被logging在主repo新的$GIT_DIR/worktrees
文件夹中(以便在任何操作系统上工作,包括Windows )。
同样,一旦你克隆了一个repo(在像/path/to/myrepo
这样的文件夹中),你可以在不同的独立path( /path/to/br1
, /path/to/br2
)那些工作树连接到主要的回购历史logging(不再需要使用--git-dir
选项)
请参阅“ 使用Git的多个工作目录? ”。
看看$ GIT_SRC_DIR / contrib / workdir / git-new-workdir 。
一个简单的脚本来创build一个工作目录,使用符号链接指向一个现有的存储库。 这允许在不同的工作目录中有不同的分支,但都来自同一个存储库。
这是不可能的,只需创build两个独立的版本库。
我build议我的小脚本http://www.redhotchilipython.com/en_posts/2013-02-01-clone-per-feature.html
它会做git克隆和replaceconfiguration(“看”在原来的回购,所以拉/推将进入“主”回购)基本上,但它很简单,服务于实际引导的抽象。
就像我们的朋友VonC在五个月前所说的那样,现在从2.5.x版本开始有了一个新function来完成这项工作。 git worktree 。
不是Git只支持在存储库目录中有一个存储库数据的工作副本。
如果要使用两个不同的工作副本提交/提交到同一个存储库,可以创build一个裸存储库并将其克隆到两个工作副本 。
无论什么时候完成,只需推送到“主”裸仓库。
一些提示:
man git-clone
git clone --bare