Git版本:2.5.1。 windows .1(通过git-scm.com)
设定:
glsurfaceview.renderer
我通过
创建了第二个工作树Main Repo: Branch_A -> commit -> commit -> commit -> commit
\
Worktree: -> Branch_B -> commit -> commit
\
-> local Branch_C -> commit
工作正常
现在我要做的是在工作树中创建本地分支(如Branch_C)并提交给它们之后,将worktree的分支从外部切换回分支Branch_B。 在this之后我尝试了以下内容:
签出分支是Branch_C,在Branch_B上另外提交一次
git worktree add /C/repos/testbranch Branch_B
但我得到的输出是:
git --work-tree=/C/repos/testbranch/ --git-dir=/C/repos/testrepo/.git/ checkout Branch_B
我尝试从不同的目录执行此操作,尝试添加/省略--git-dir和其他一些东西 - 似乎没有任何效果。我做错了什么?
编辑:通过
签出分支error: Your local changes to the following files would be overwritten by checkout:
bla <-- My test file which is COMMITTED and UNCHANGED in Branch_C
Please, commit your changes or stash them before you can switch branches.
Aborting
在/ C / repos / testbranch /中正常工作。
背景:我正在使用的repo是从SVN repo克隆的。我想要实现的是使用ANT(&lt; exec&gt;任务)自动化“svn rebase”的过程。第一步是签出指向SVN存储库上的分支的分支。不幸的是,仅在ANT任务中使用git checkout Branch_B
失败了checkout
。
步骤:
答案 0 :(得分:0)
找到解决方案。
您可以通过执行随git一起安装的sh.exe并向其传递命令(也可以是cd
)来规避上述问题:
&lt; exec executable =&#34; C:/ Program Files / Git / bin / sh.exe&#34; failonerror =&#34;真&#34;&GT;
&lt; arg value =&#34; - 登录&#34; /&gt;
&lt; arg value =&#34; -c&#34; /&gt;
&lt; arg value =&#34;&#34; cd / C / repos / testbranch&amp;&amp; git checkout Branch_B&#34;&#34; /&gt;
&LT; / EXEC&GT;
答案 1 :(得分:0)
Git 2.11 +(2016年第4季度)可能会更优雅地处理这种情况:
commit 112423e见commit b26098f,Eric Wong (ele828
)(2016年10月14日)
(Junio C Hamano -- gitster
--于2016年10月27日commit 251641b合并)
git-svn
:“git worktree
”意识
git-svn
内部先前未了解“git worktree
”命令用户的存储库布局差异。使用“
git rev-parse --git-path
”而不是依赖GIT_DIR
和朋友的过时使用来介绍此感知。