ඔබ Git ටැගයක් නැවත නම් කරන්නේ කෙසේද?


1233

අද මම ව්යාපෘතියක් සඳහා ල logs ු-සටහන් දෙස බැලූ අතර, ටික කලකට පෙර මම ටැග් නමක් ඇඟිල්ල දිගු කළ බව මට වැටහුණි. ටැගය නැවත නම් කිරීමට ක්‍රමයක් තිබේද? ගූගල් ප්‍රයෝජනවත් කිසිවක් සොයාගෙන නැත.

ටැග් කළ අනුවාදය පරීක්ෂා කර නව ටැගයක් සෑදිය හැකි බව මම තේරුම් ගතිමි, මම එය උත්සාහ කළෙමි. නමුත් එය නිවැරදි නොවන ටැග් වස්තුවක් නිර්මාණය කරන බව පෙනේ. එක් අයෙකුට,

git tag -l

අනෙක් සියලුම ටැග් වලට සාපේක්ෂව එය පිළිවෙලට ලැයිස්තුගත කරයි. එය වැදගත් දැයි මට අදහසක් නැත, නමුත් නව ටැග් වස්තුව මට අවශ්‍ය දේ නොවන බව විශ්වාස කිරීමට එය මග පාදයි. මට ඒ සමඟ ජීවත් විය හැකිය, මන්ද ටැග් නම ප්‍රලේඛනයට ගැලපෙන බව මා සැබවින්ම සැලකිලිමත් වන නමුත් මෙය කිරීමට නිවැරදි ක්‍රමයක් ඇතැයි උපකල්පනය කරමින් මම එය "හරි" කරන්නෙමි.


ඔබ එකම ආයාචනයක් භාවිතා කළාද, එනම් පැරණි ටැගය විවරණය කර / අත්සන් කළ ටැගය නම්, නව ටැගයද මේ ආකාරයේද, නැතහොත් එය සැහැල්ලු ටැගයක්ද?
ජකුබ් නාරබ්ස්කි

1
වැරදි පැරණි ටැගය සහ අපේක්ෂිත නව ටැගය යන දෙකම විවරණය කර අත්සන් නොකළ යුතුය. පැරණි ටැගය නිර්මාණය කර ඇත්තේ 'git tag -a bad_tag_name', එබැවින් මම 'git tag -a good_tag_name' රේඛාව ඔස්සේ යමක් කිරීමට කැමතියි.
බ්‍රැන්ඩන් ෆොස්ඩික්

මෙම ඉන්ද්‍රජාලික ටැග් නැවත නම් කිරීමේ ක්‍රියාවලිය ටැගය නැවත නම් කිරීමෙන් ටැගය ආරක්ෂා කර ගැනීමට මට අවශ්‍ය බව මම පෙන්වා දිය යුතුය. ඇත්තටම, මම ඇත්තටම නම පමණක් වෙනස් කිරීමට කැමතියි.
බ්‍රැන්ඩන් ෆොස්ඩික්

7
git log --oneline --decorate --graphටැග් පිරිසිදු කිරීමේදී උපකාරී වේ.
ජොයෙල් පුර

ඔබට එක් පේළියකින් ටැගයක් නැවත නම් කළ හැකිය: මගේ පිළිතුර පහත බලන්න
VonC

Answers:


2067

මෙන්න මම ටැගය නැවත නම් කරන්න ආකාරය වේ oldකිරීමට new:

git tag new old
git tag -d old
git push origin :refs/tags/old
git push --tags

තල්ලු විධානයෙහි ඇති කොලන් දුරස්ථ ගබඩාවෙන් ටැගය ඉවත් කරයි. ඔබ මෙය නොකරන්නේ නම්, ඔබ අදින විට Git ඔබේ යන්ත්‍රයේ පැරණි ටැගය නිර්මාණය කරයි.

අවසාන වශයෙන්, අනෙක් පරිශීලකයින් මකා දැමූ ටැගය ඉවත් කිරීමට වග බලා ගන්න. පහත දැක්වෙන විධානය ක්‍රියාත්මක කිරීමට කරුණාකර ඔවුන්ට (සම සේවකයින්ට) කියන්න:

git pull --prune --tags

ඔබ විවරණය කළ ටැගයක් වෙනස් කරන්නේ නම් , නව ටැග් නාමය යොමු කරන්නේ යටින් පවතින බැඳීම මිස ඔබ මකා දැමීමට යන පැරණි විවරණය කළ ටැග් වස්තුව නොවන බව සලකන්න. එබැවින්, git tag -a new old^{}ඒ වෙනුවට භාවිතා කරන්න git tag new old(මෙයට හේතුව විවරණය කළ ටැග් වස්තූන් වන අතර සැහැල්ලු ටැග් නොමැති නිසා මෙම පිළිතුරේ වැඩි තොරතුරු ).



25
Ick නික්සොෆ්ට්, මම ඉහත සඳහන් කළේ විවරණය කළ ටැග් සමඟ ය. පණිවිඩ පැරණි සිට නව දක්වා පිටපත් කරන ලදි. සමහර විට මට git හි නවතම අනුවාදයක් තිබේද?
katyhuff

25
git push origin :refs/tags/oldgit push origin :oldමම හිතන්නේ සරල කරන්න පුළුවන්.
ජෙසී ග්ලික්

25
මෙම ටැගයට වඩාත් පැහැදිලිව පෙනෙන පරිදි "git push --tags" වෙනස් කිරීමට මම යෝජනා කරමි "git push origin refs / tags / new". නොදැනුවත්වම වෙනත් ටැග් තල්ලු කිරීමට ඔබට අවශ්‍ය නැත.
ක්‍රිෂ්

11
අවවාදයයි : භාවිතා කරමින් git tag new old, පැරණි ටැගය කිරීමට tag දැක්වුම් නිර්මාණය වනු ඇත නොවන පැරණි ටැගය ගේ නසාගන්නවා. (බලන්න මට Git GUI වෙතින් මගේ ටැගය පරීක්ෂා කළ නොහැක්කේ ඇයි? )
Stevoisiak

300

මුල් ප්‍රශ්නය වූයේ ටැගයක් නැවත නම් කරන්නේ කෙසේද යන්නයි, එය පහසුය: පළමුව OLD හි අන්වර්ථයක් ලෙස NEW සාදන්න: git tag NEW OLDඉන්පසු OLD මකන්න : git tag -d OLD.

"Git way" සහ (in) සනීපාරක්ෂාව පිළිබඳ උපුටා දැක්වීම පදනම් විරහිත ය, මන්ද එය ටැග් නමක් සුරැකීම ගැන කතා කරන නමුත් එය වෙනත් නිධිය තත්වයකට යොමු කිරීම ය.


3
git push originව්‍යාපාරයට ඇතුළත් වන බැවින් ඉහත පිළිතුර තරමක් යෝග්‍ය වේ .
රෝලි

පහසුම ක්‍රමය, Gitflow
RousseauAlexandre

5
අවවාදයයි : භාවිතා කරමින් git tag new old, පැරණි ටැගය කිරීමට tag දැක්වුම් නිර්මාණය වනු ඇත නොවන පැරණි ටැගය ගේ නසාගන්නවා. (බලන්න මට Git GUI වෙතින් මගේ ටැගය පරීක්ෂා කළ නොහැක්කේ ඇයි? )
Stevoisiak

118

අනෙක් පිළිතුරු වලට අමතරව:

පළමු ඔබ නිර්මාණය කිරීම සඳහා අවශ්ය නොහොත් පිළිබඳ පැරණි සිදු මුල් අවධානය යොමු කරමින්, ටැගය නම:

git tag new old^{}

එවිට ඔබට පැරණි එක දේශීයව මකා දැමිය යුතුය :

git tag -d old

ඉන්පසු දුරස්ථ ස්ථානය (ය) මත ඇති ටැගය මකන්න:

# Check your remote sources:
git remote -v
# The argument (3rd) is your remote location,
# the one you can see with `git remote`. In this example: `origin`
git push origin :refs/tags/old

අවසාන වශයෙන් ඔබ ඔබගේ නව ටැගය දුරස්ථ ස්ථානයට එක් කළ යුතුය. ඔබ මෙය සිදු කරන තුරු, නව ටැගය (ය) එකතු නොවේ :

git push origin --tags

සෑම දුරස්ථ ස්ථානයකටම මෙය අනුකරණය කරන්න.

Git Tag වෙනසක් පැකේජයක පාරිභෝගිකයින්ට ඇතිවිය හැකි ඇඟවීම් ගැන සැලකිලිමත් වන්න !


අවවාදයයි : භාවිතා කරමින් git tag new old, පැරණි ටැගය කිරීමට tag දැක්වුම් නිර්මාණය වනු ඇත නොවන පැරණි ටැගය ගේ නසාගන්නවා. (බලන්න මට Git GUI වෙතින් මගේ ටැගය පරීක්ෂා කළ නොහැක්කේ ඇයි? )
Stevoisiak

1
Ste ස්ටීවන් වාසෙලාරෝ සබැඳියට ස්තූතියි. ඊළඟ වතාවට, කරුණාකර සංස්කරණයක් ගොනු කරන්න - පිළිතුරු දීම ප්‍රජා උත්සාහයකි. ස්තූතියි.
කයිසර්

මම තවම කේතය අත්හදා බලා නැති නිසා මම සංස්කරණයක් නොකළෙමි. (මෙම සම්බන්ධිත ප්රශ්නය මත දිනය ඉදිරිපත් සටහන)
Stevoisiak

අප එසේ කළ git tag new old^{}පසු අපට අවශ්‍ය නැත git tag new_tag_name old_tag_name(පළමු පියවර).
945

28

එය ප්‍රකාශයට පත් කර ඇත්නම්, ඔබට එය මකා දැමිය නොහැක (තාර සහ පිහාටු අවදානමට ලක් නොකර) 'Git way' යනු:

බුද්ධිමත් දේ. ඔබ ඉස්කුරුප්පු කළ බව පිළිගෙන වෙනත් නමක් භාවිතා කරන්න. අනෙක් අය දැනටමත් එක් ටැග්-නමක් දැක ඇති අතර, ඔබ එකම නමක් තබා ගන්නේ නම්, දෙදෙනෙකු "X අනුවාදය" ඇති තත්වයක ඔබ සිටිය හැකිය, නමුත් ඇත්ත වශයෙන්ම ඔවුන්ට වෙනස් "X" ඇත. එබැවින් එය "X.1" ලෙස අමතා එය සමඟ කරන්න.

විකල්පයක් ලෙස,

උමතු දෙය. අනෙක් අය දැනටමත් පැරණි අනුවාදය දැක ඇතත් ඔබට නව අනුවාදය "X" ලෙස හැඳින්වීමට අවශ්‍යය. එබැවින් ඔබ පැරණි එක දැනටමත් ප්‍රකාශයට පත් නොකළාක් මෙන් නැවත git-tag -f භාවිතා කරන්න.

එය එතරම්ම උමතු නිසා:

Git භාවිතා කරන්නන් පිටුපස ටැග් වෙනස් නොකරයි (සහ එය නොකළ යුතුය). එබැවින් යමෙකු දැනටමත් පැරණි ටැගය ලබාගෙන තිබේ නම්, ඔබේ ගස මතට තල්ලු කිරීමක් කිරීමෙන් ඔවුන් පැරණි එක නැවත ලිවීමට ඉඩ නොදිය යුතුය.

කවුරුහරි ඔබෙන් මුදා හැරීමේ ටැගයක් ලබා ගත්තේ නම්, ඔබේම එකක් යාවත්කාලීන කිරීමෙන් ඔබට ඔවුන් සඳහා ටැගය වෙනස් කළ නොහැක. මෙය විශාල ආරක්ෂක ගැටළුවක් වන අතර, එමඟින් මිනිසුන්ට ඔවුන්ගේ ටැග්-නම් විශ්වාස කළ හැකිය. ඔබට ඇත්තටම උමතු දේ කිරීමට අවශ්‍ය නම්, ඔබ එයට අවනත විය යුතු අතර, ඔබ අවුල් වූ බව මිනිසුන්ට කියන්න.

මිනිසාගේ පිටු අනුග්‍රහයෙනි .


6
නැතහොත් ඔබට වැරදියට නම් කර ඇති මෙම ටැගය ටැග් කළ හැකිය (නිවැරදි නමකින්).
ජකුබ් නාරබ්ස්කි

6
ස්තූතියි, මම දැනටමත් එම මිනිසා පිටුව මිලියනයකට වඩා වැඩි කර ඇත. වාසනාවකට නරක ටැගය කොතැනකවත් ප්‍රකාශයට පත් කර නොමැත. එය එසේ වුවද, මෙය අභ්‍යන්තර ව්‍යාපෘතියක් වන අතර මම එකම සංවර්ධකයා (මේ මොහොතේ). මම හිතන්නේ මම තාර සහ පිහාටු යන දෙකින්ම තරමක් ආරක්‍ෂිතයි, නමුත් මට ලේඛනයට ගැලපෙන පරිදි repo ලබා ගත හැකි නම් පමණි.
බ්‍රැන්ඩන් ෆොස්ඩික්

මම සමහර විට මගේ පුද්ගලික යොමු කිරීම් සඳහා ටැග් භාවිතා කරමි. උදා. එය 'ok_jb' ටැගයක් විය හැකිය. මම මෙය භාවිතා කරමි, මන්ද මා සමඟ වැඩ කරන සමහර පුද්ගලයින්ට මගේ වේදිකාව සඳහා ගොඩනගා ගත නොහැකි බැවින් සමහර විට ගොඩනැගීමේ දෝෂ ඇති වේ. එම ටැගය පරික්ෂා කිරීමෙන් මට ඉක්මනින් ගොඩනඟන අනුවාදයක් ලබා ගත හැකිය. නව ප්‍රභවයන් ගොඩනඟන විට, මම ටැගය ගෙනයන්නෙමි, නැතහොත් ## ගොඩනැගීමට නම් කරමි, එහිදී ## අංකයක් වේ (ව්‍යාපෘතිය මත පදනම්ව). ටැගයක් එක් කිරීමෙන් විශේෂ අංගයක් හඳුන්වා දුන් විට මම අවධාරණය කරමි.

7
දුර්වල පිළිතුර. "එය නොකරන්න" යනු "මට එය කළ හැක්කේ කෙසේද?" යන්නට නිවැරදි පිළිතුර නොවේ. එය කිරීම හොඳ අදහසක් යැයි ඔබ සිතන්නේද නැතහොත් මිනිසුන් එයට කැමති දැයි පරිශීලකයා විමසුවේ නැත. කවුරුහරි "මම මගේ අත කපා ගන්නේ කෙසේද" යනුවෙන් ඇසුවොත්, එක්කෝ එය සිදු වූ ආකාරය ඔහුට කියන්න හෝ ඔහුව තනි කරන්න. නමුත් අතක් කැපීම එතරම් හොඳ අදහසක් නොවන බව ඔහුට පැවසීමට ඔහුට අවශ්‍ය නොවනු ඇත. ඔබට එය කළ හැකිය. ඔබට නව ටැගයක් එක් කර පැරණි එක මකා දැමිය හැකිය, එය තාක්‍ෂණිකව හැකි ය, දුරස්ථ ගබඩාවක පවා.
මැකී

5
මෙය "පවත්නා ටැග් පොයින්ට් වෙනත් සංශෝධනයකට යොමු කරන්නේ කෙසේද?" යන ප්‍රශ්නයට පිළිතුරු සපයන බව පෙනේ. OP ගේ ප්‍රශ්නය වෙනුවට, "මම ටැගයක් නැවත නම් කරන්නේ කෙසේද?" ඔබ අවුල් කළ පුද්ගලයින්ට පැවසීම ගැටළුව විසඳන්නේ කෙසේද යන්නත් අපැහැදිලි ය (පොදුවේ එය හොඳ අදහසක් වුවද).
LarsH

25

මෙම විකී පිටුවේ මෙම සිත්ගන්නාසුලු එක්-ලයිනර් ඇත, එය අපට මතක් කර දෙන්නේ අපට යොමු කිහිපයක් තල්ලු කළ හැකි බවයි :

git push origin <refs/tags/old-tag>:<refs/tags/new-tag> :<refs/tags/old-tag> && git tag -d <old-tag>

සහ වෙනත් ක්ලෝනකරුවන්ගෙන් ඉල්ලා සිටින්න git pull --prune --tags

එබැවින් අදහස තල්ලු කිරීම:

  • <new-tag>නමෙන්ම සෑම අනාචාරයේ සඳහා <old-tag>: <refs/tags/old-tag>:<refs/tags/new-tag>,
  • මකාදැමීම<old-tag> ::<refs/tags/old-tag>

උදාහරණයක් ලෙස බලන්න " git ගබඩාවක් තුළ ටැග් නම් කිරීමේ සම්මුතිය වෙනස් කරන්න? ".


මෙය ව්‍යාඛ්‍යාව ආරක්ෂා කරයිද?
බ්‍රැන්ඩන් ෆොස්ඩික්

1
විවරණය කළ ටැග් සඳහා මෙය මුල් ටැගයේ නම විවරණයේ සඳහන් වන බවට පරිස්සම් වන්න !! අවම වශයෙන් වර්තමාන අනුවාදවල එය ඇත්ත වශයෙන්ම යමක් අදහස් කරන්නේ දැයි මට විශ්වාස නැත.
gbr

@gbr විවරණයේ ඉතිරිව ඇති “මුල් ටැග් නම” පෙන්වන උදාහරණයකින් ඔබට පිළිතුර සංස්කරණය කළ හැකිද?
VonC

1
OnVonC ඔබ ඉල්ලන දේ මට තේරෙන බව මට විශ්වාස නැත; සමහර විට මට පැහැදිලි නැත: විවරණ වස්තු ටැගයේ නමට සකසා ඇති ටැග් ක්ෂේත්‍රයක් අඩංගු වේ , ඔබට එය දැක ගත හැකිය git cat-file -p <tag>; මගේ පද්ධතියේ ඔබගේ ක්‍රමය සමඟ මට 'නැවත නම් කරන ලද' ටැග් ref ( <new-tag>) ලැබේ, නමුත් එහි ටැග් ක්ෂේත්‍රය තවමත් පවතී <old-tag>.
gbr

3
@gbr OP ට අවශ්‍ය දේ නොවේද? ඔහු සඳහන් කළේ, "මෙම ඉන්ද්‍රජාලික ටැග් නැවත නම් කිරීමේ ක්‍රියාවලිය ටැගය නැවත නම් කිරීමෙන් ටැගය ආරක්ෂා කර ගැනීමට මට අවශ්‍ය බව පෙන්වා දිය යුතුය. ඇත්ත වශයෙන්ම, මම නම සහ වෙනත් කිසිවක් වෙනස් කිරීමට කැමතියි" ( stackoverflow.com/questions/1028649/ how-do-you-rename-a-git-tag /… )
VonC

25

අනෙක් පිළිතුරු වලට අතිරේකයක් ලෙස, මම ඒ සියල්ල එක පියවරකින් කිරීමට අන්වර්ථයක් එක් කළෙමි. තර්කය 1 යනු පැරණි ටැග් නමයි, තර්කය 2 යනු නව ටැග් නාමයයි.

[alias]
    renameTag = "!sh -c 'set -e;git tag $2 $1; git tag -d $1;git push origin :refs/tags/$1;git push --tags' -"

භාවිතය:

git renametag old new

මෙය මට වැඩ කළේ නැත, එය අසමත් වූ බැවින් !sh(ප්‍රශ්නය වින්ඩෝස් Git සම්බන්ධයෙනි), කෙසේ වෙතත්, ආකෘතිය පහත දැක්වෙන පරිදි යාවත්කාලීන කිරීමෙන් පසුව, එය ක්‍රියාත්මක විය : renametag = "!f() { git tag $2 $1; git tag -d $1; git push origin :refs/tags/$1; git push --tags; }; f".
සනී පටෙල්

10

ටැග් එකක් හෝ කිහිපයක් සඳහා පියවර 3 ක් අනුගමනය කරන්න.

පියවර 1: වත්මන් ටැගය පෙන්වා ඇති බැඳීමේ / වස්තු හැඳුනුම්පත හඳුනා ගන්න

     command: git rev-parse <tag name>
     example: git rev-parse v0.1.0-Demo
     example output: db57b63b77a6bae3e725cbb9025d65fa1eabcde

පියවර 2: නිධියෙන් ටැගය මකන්න

     command: git tag -d <tag name>
     example: git tag -d v0.1.0-Demo
     example output: Deleted tag 'v0.1.0-Demo' (was abcde)

පියවර 3: පැරණි ටැගය පෙන්වා ඇති ආකාරයටම කැපවීමේ හැඳුනුම්පතට යොමු කරමින් නව ටැගයක් සාදන්න

     command: git tag -a <tag name>  -m "appropriate message" <commit id>
     example: git tag -a v0.1.0-full  -m "renamed from v0.1.0-Demo" db57b63b77a6bae3e725cbb9025d65fa1eabcde
     example output: Nothing or basically <No error>

ටැගයෙහි නම වෙනස් කිරීම සමඟ දේශීය git සූදානම් වූ පසු, මෙම වෙනස්කම් අනෙක් අයට ලබා ගැනීම සඳහා නැවත මූලාරම්භයට තල්ලු කළ හැකිය.


මකාදැමුණු ටැගය පසුපසට තල්ලු කිරීම සඳහා පියවරයන් අස්ථානගත වී ඇත: git push origin :refs/tags/v0.1.0-Demoසහ ටැග් පසුපසට තල්ලු කිරීම (ඉතිරිව ඇති දේවල් සමඟ)git push --tags
ස්ටාර් වුල්ෆ්

7

වික්‍රමාන්විතයන් සඳහා එය එක් විධානයකින් කළ හැකිය:

mv .git/refs/tags/OLD .git/refs/tags/NEW

7
ඔබගේ ආශ්රේයන් අසුරනු ලැබේ නම් මෙම කාර්යය නෑ, එනම් ඔබ ක්රියාත්මක ඇත්නම් git gcමෑතකදී
forivall

2
මෙය ද දේශීය රෙපෝවට පමණක් බලපානු ඇත. ඔබට දුරස්ථ වින්‍යාසයක් තිබේ නම්, මෙය කුමන negative ණාත්මක බලපෑම් ඇති කළ හැකිදැයි මට විශ්වාස නැත. මම මෙම ප්රවේශය නිර්දේශ නොකරමි.
therealklanni

1
විවරණය කළ ටැග් සඳහා මෙය වඩාත් කරදරකාරී වනු ඇති බව සලකන්න, අනෙක් දේ අතර 'විවරණ' බ්ලොබ් ටැගයේ මුල් නම අඩංගු වේ. ඇත්ත වශයෙන්ම එය කිසියම් දෙයක් භාවිතා කරන්නේ දැයි මට විශ්වාස නැත (අවම වශයෙන් සත්‍යාපන ටැගය මඟින්), නමුත් මම අවස්ථාවක් ගන්නේ නැත.
gbr

1
@gbr මෙය ඉතා හොඳින් ක්‍රියාත්මක වේ. (ඇත්ත වශයෙන්ම, @forivall හි සටහන සැලකිල්ලට ගත යුතුය.) මෙම උපක්‍රමය ALT Sisyphus ගොඩනැගීමේ ක්‍රමයේ අවුරුදු ගණනාවක් තිස්සේ විශාල වශයෙන් භාවිතා කර ඇත. පැකේජයක් සඳහා ප්‍රභවයන් ගබඩා කර ඇති ආකාරය බලන්න, උදා: git.altlinux.org/gears/g/gear.git . 2.0.7-alt1 වැනි කියවිය හැකි ටැග් යනු නඩත්තුකරුවන් විසින් ගොඩනැගිලි පද්ධතියට ඉදිරිපත් කරන ලද අත්සන් කළ ටැග් ය. මෙම ප්‍රභවයෙන් pkg ගොඩනඟා ප්‍රකාශයට පත් කර ඇති කාර්ය හැඳුනුම්පත සොයා ගැනීම සඳහා ගුප්ත ටැග් gb-sisyphus-task164472.200 ගොඩනැගීමේ පද්ධතිය විසින් එහි දමා ඇත. ඒවා ගොළු පිටපත් ( cp) වන අතර, නඩත්තු කරන්නාගේ පණිවිඩය ස්පර්ශ නොකෙරේ.
imz - අයිවන් සකරියාෂෙව්

@ imz - IvanZakharyaschev දැන ගැනීම සතුටක්, අනාගතයේ දී යම් නිෂ්පාදනයක් සමඟ ගැටලු ඇති නොවන බව මම ඕනෑවට වඩා විශ්වාස නොකරමි; git repositories ආකෘතිය සහ අපේක්ෂිත අන්තර්ක්‍රියා පිළිබඳ සැබෑ පිරිවිතරයක් නොමැත, එබැවින් එය ශක්‍ය වන විට අවම වශයෙන් පුදුම සහගත ආකාරයකින් දේවල් කිරීමට මම උත්සාහ කරමි
gbr

4

දුරස්ථ ටැග් පරීක්ෂා නොකර ඔබට ඒවා නැවත නම් කළ හැකිය, පැරණි ටැගය / ශාඛාව නව නමකට අනුපිටපත් කර පැරණි එක මකා දැමීමෙන් තනි git pushවිධානයකින්.

දුරස්ථ ටැගය ප්රතිනම්කෙරුම් / දුරස්ථ ශාඛා → ටැගය පරිවර්තනය: (දැනුම් දීමයි: :refs/tags/)

git push <remote_name> <old_branch_or_tag>:refs/tags/<new_tag> :<old_branch_or_tag>

දුරස්ථ ශාඛා ප්රතිනම්කෙරුම් / දුරස්ථ ටැගය → ශාඛා පරිවර්තනය: (දැනුම් දීමයි: :refs/heads/)

git push <remote_name> <old_branch_or_tag>:refs/heads/<new_branch> :<old_branch_or_tag>

දුරස්ථ ටැගයක් නම් කිරීම ප්‍රතිදානය:

D:\git.repo>git push gitlab App%2012.1%20v12.1.0.23:refs/tags/App_12.1_v12.1.0.23 :App%2012.1%20v12.1.0.23

Total 0 (delta 0), reused 0 (delta 0)
To https://gitlab.server/project/repository.git
 - [deleted]               App%2012.1%20v12.1.0.23
 * [new tag]               App%2012.1%20v12.1.0.23 -> App_12.1_v12.1.0.23

3

ටැග් තල්ලු කිරීම සහ දැනටමත් තල්ලු කර ඇති ටැග් නම් කිරීම සම්බන්ධ ගැටළු නොසලකා, නම් කිරීම සඳහා ටැගය විවරණය කළ එකක් නම්, ඔබට පහත සඳහන් තනි රේඛා විධාන රේඛාවට ස්තූතිවන්ත විය හැකිය.

git tag -a -m "`git cat-file -p old_tag | tail -n +6`" new_tag old_tag^{}

එවිට, ඔබට පැරණි ටැගය මකා දැමිය යුතුය:

git tag -d old_tag

පහත දැක්වෙන පිළිතුරු දෙකට ස්තුති කරමින් මට මෙම විධාන රේඛාව හමු විය:

සංස්කරණය කරන්න:
සැකසීම ටැග් ස්වයංක්රීයව සමමුහුර්ත භාවිතා ගැටලු මතුවී තිබීම fetch.pruneTags=true(විස්තර කර ඇති පරිදි https://stackoverflow.com/a/49215190/7009806 ), මම පෞද්ගලිකව යෝජනා පළමු සේවාදායකය මත නව ටැගය පිටපත හා පසුව පැරණි මකා දමන්න. ඒ ආකාරයෙන්, පැරණි ටැගය මකාදැමීමේදී නව ටැගය අහඹු ලෙස මකා නොදමන අතර ටැග් සමමුහුර්ත කිරීම සේවාදායකයේ තවමත් නොමැති නව ටැගය මකා දැමීමට කැමති වේ . උදාහරණයක් ලෙස, සියල්ල එකට එකතු වී:

git tag -a -m "`git cat-file -p old_tag | tail -n +6`" new_tag old_tag^{}
git push --tags
git tag -d old_tag
git push origin :refs/tags/old_tag
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.