عندما أتحقق من أمر git tag use command مثل هذا:
git checkout -b local_branch_name Origin/remote_tag_name
لقد حصلت على خطأ مثل هذا:
error: pathspec `Origin/remote_tag_name` did not match any file(s) known to git.
يمكنني العثور على remote_tag_name عند استخدام أمر git tag.
يتم استخدام علامة لتسمية علامة معينة الالتزام في السجل.
يُستخدم عادةً لوضع علامات على نقاط الإطلاق (على سبيل المثال ، v1.0 ، إلخ).على الرغم من أن علامة قد تظهر مشابهة للفرع ، إلا أن العلامة لا تتغير .
يشير مباشرة إلى التزام محدد في التاريخ.
لن تكون قادرًا على التحقق من العلامات إذا لم يكن محليًا في المستودع الخاص بك ، لذا فأنت بحاجة إلى fetch
_ العلامات إلى مستودعك المحلي.
أولاً ، تأكد من وجود العلامة محليًا عن طريق القيام
# --all will fetch all the remotes.
# --tags will fetch all tags as well
git fetch --all --tags --Prune
ثم تحقق من العلامة عن طريق تشغيل
git checkout tags/<tag_name> -b <branch_name>
بدلاً من Origin
، استخدم البادئة tags/
.
في هذه العينة ، يكون لديك 2 علامات الإصدار 1.0 والإصدار 1.1 ، ويمكنك التحقق من ذلك باستخدام أي مما يلي:
git checkout A ...
git checkout version 1.0 ...
git checkout tags/version 1.0 ...
كل ما سبق سوف يفعل نفس الشيء لأن العلامة ليست سوى مؤشر على التزام معين.
الأصل: https://backlog.com/git-tutorial/img/post/stepup/capture_stepup4_1_1.png
# list all tags
git tag
# list all tags with given pattern ex: v-
git tag --list 'v-*'
هناك طريقتان لإنشاء علامة:
# normal tag
git tag
# annotated tag
git tag -a
الفرق بين 2 هو أنه عند إنشاء علامة توضيحية ، يمكنك إضافة بيانات وصفية كما هو الحال في التزام git:
الاسم والبريد الإلكتروني والتاريخ والتعليق والتوقيع
# delete any given tag
git tag -d <tag name>
# Don't forget to remove the deleted tag form the server with Push tags
من أجل الحصول على محتوى علامة معينة ، يمكنك استخدام الأمر checkout
.
كما هو موضح أعلاه ، تشبه العلامات أي التزامات أخرى حتى نتمكن من استخدام checkout
وبدلاً من استخدام SHA-1 ، استبدلها ببساطة بـ {tag_name
الخيار 1:
# Update the local git repo with the latest tags from all remotes
git fetch --all
# checkout the specific tag
git checkout tags/<tag> -b <branch>
الخيار 2:
منذ git support (shallow clone عن طريق إضافة --branch
إلى أمر clone ، يمكننا استخدام اسم العلامة بدلاً من اسم الفرع. يعرف Git كيفية "ترجمة" SHA-1 المعطى إلى الالتزام ذي الصلة
# Clone a specific tag name
git clone <url. --branch=<tag_name>
بوابة استنساخ - فرع =
يمكن {
--branch
أيضًا) وضع العلامات وفصل HEAD عند ذلك الالتزام في المستودع الناتج.