Git plugin لمشكلة الخروج من Hudson
سؤال
عند استخدام البرنامج المساعد Git لـ Hudson، تفشل وظيفتي دائمًا عند جلب أحدث المصادر من مستودع git عبر الإنترنت ( git://github.com/ithena/orm2dsl.git).
يتم تنفيذ البرنامج المساعد git أولاً git fetch
بنجاح.ثم يحاول التنفيذ git checkout -f origin/
، والذي فشل كما هو موضح أدناه.هل هذه مشكلة مع مستودع جيت الخاص بي أم أن أمر الخروج لا معنى له؟
أمر 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?
أمر 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?
مخرج وحدة تحكم هدسون:
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)
بيئة هدسون: Debian Etch، Sun JSDK 6، git 1.4.4.4، أحدث تنزيل ثابت من Hudson
المحلول
أولاً، إصدار Git لديك قديم جدًا.أقترح عليك تحديثه قبل القيام بأي شيء آخر.
ثانية، git checkout -f origin/
ليس أمرًا صالحًا.تحتاج إما إلى التحقق من فرع، أو يمكنك التحقق من الالتزام (عن طريق تحديد تجزئة الالتزام أو علامة) وإنشاء فرع جديد منه في نفس الوقت (باستخدام git checkout -b new-branch commit-hash
).انظر صفحة رجل git-checkout لمزيد من التفاصيل.