当使用Hudson的Git插件时,我的作业总是在从我的在线git存储库中获取最新的源代码时失败(git://github.com/ithena/orm2dsl.git)。
git插件首先成功执行git fetch
。然后它尝试执行git checkout -f origin/
,如下所示失败。这是my git repository的问题还是结帐命令没有意义?
Git命令没有在作业配置中设置的分支:
git checkout -f origin/
git checkout: updating paths is incompatible with switching branches/forcing
Did you intend to checkout 'origin/' which can not be resolved as commit?
在作业配置中将分支设置为master的Git命令:
git checkout -f origin/master
git checkout: updating paths is incompatible with switching branches/forcing
Did you intend to checkout 'origin/master' which can not be resolved as commit?
Hudson控制台输出:
started
Checkout
[workspace] $ git fetch
Checking out origin/
[workspace] $ git checkout -f origin/
git checkout: updating paths is incompatible with switching branches/forcing
Did you intend to checkout 'origin/' which can not be resolved as commit?
FATAL: Error checking out origin/
java.lang.RuntimeException: Error checking out origin/
at hudson.plugins.git.GitAPI.launch(GitAPI.java:101)
at hudson.plugins.git.GitAPI.checkout(GitAPI.java:94)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:90)
at hudson.model.AbstractProject.checkout(AbstractProject.java:693)
at hudson.model.AbstractBuild$AbstractRunner.checkout(AbstractBuild.java:266)
at hudson.model.AbstractBuild$AbstractRunner.run(AbstractBuild.java:239)
at hudson.model.Run.run(Run.java:842)
at hudson.model.Build.run(Build.java:88)
at hudson.model.ResourceController.execute(ResourceController.java:70)
at hudson.model.Executor.run(Executor.java:90)
Hudson环境: Debian Etch,Sun JSDK 6,git 1.4.4.4,hudson最新稳定下载
答案 0 :(得分:3)
首先,你的Git版本很老了。我建议你在做其他事情之前更新它。
其次,git checkout -f origin/
不是有效命令。您需要签出分支,或者您可以签出提交(通过指定提交哈希或标记)并在同一时间创建它的新分支(使用git checkout -b new-branch commit-hash
)。有关详细信息,请参阅git-checkout man page。