Git සමඟ නිශ්චිත ටැගයක් බාගන්න


1943

මම Git ගබඩාවක විශේෂිත ටැගයක් බාගත කරන්නේ කෙසේදැයි සොයා ගැනීමට උත්සාහ කරමි - එය වර්තමාන අනුවාදය පිටුපස එක් අනුවාදයකි.

Git වෙබ් පිටුවේ පෙර අනුවාදය සඳහා ටැගයක් ඇති බව මම දුටුවෙමි.

නමුත් Tagged release 1.1.5වෙබ් අඩවියට අනුව අනුවාදයේ නම " " වේ.

මම මේ වගේ විධානයක් උත්සාහ කළා (නම් වෙනස් කර):

git clone http://git.abc.net/git/abc.git my_abc

මට යමක් ලැබුණා - ඩිරෙක්ටරියක්, උප බහලුම් පොකුරක්.

එය සම්පූර්ණ ගබඩාව නම්, මා සොයන අනුවාදය ලබා ගන්නේ කෙසේද? එසේ නොවේ නම්, මම එම විශේෂිත අනුවාදය බාගත කරන්නේ කෙසේද?


11
මම නිෂ්පාදනය සම්පූර්ණයෙන්ම වෙනස් රෙපෝවක් මත සංවර්ධනය කරමි, එබැවින් මම git checkout භාවිතා කිරීමට උත්සාහ කරන විට මගේ නිෂ්පාදනය කිසිදු ටැග් දැන සිටියේ නැත. විසඳුම වූයේ "git pull --tags" භාවිතා කර git checkout භාවිතා කිරීමයි.
ව්‍යවසාය ගෘහ නිර්මාණ ශිල්පියා

11
"git fetch --tags" ද වැඩ කරයි
ජෝන් අර්ක්

16
සම්පූර්ණ ගබඩාව ක්ලෝන කිරීමෙන් වළක්වා ටැගයකට මාරුවීම වළක්වා ගැනීම සඳහා ඔබට කෙලින්ම කළ හැකිය clone -b "Tagged release 1.1.5" http://git.abc.net/git/abs.git my_abc. මෙය ක්‍රියාත්මක වන්නේ ඔබට එකම නමක් ඇති ශාඛාවක් නොමැති නම් පමණි (ඔබේ ක්‍රමවේදය අනුව මෙය කිසි විටෙකත් සිදු නොවනු ඇත).
RedGlyph

3
EdRedGlyph ස්තූතියි මම එය උත්සාහ කරමි. නැතිනම් අපට මේ ආකාරයට කළ හැකිය. git checkout -b new-branch tag-name. දැන් ඔබේ නව ශාඛාව ක්ලෝන කරන්න. අපට අවශ්‍ය විටෙක අපට නව ශාඛාව මකා දැමිය හැකිය.
කාලිදාසන්

Answers:


2876
$ git clone

ඔබට සම්පූර්ණ ගබඩාව ලබා දෙනු ඇත.

ක්ලෝන පසු, ඔබට ටැග් සමඟ ලැයිස්තු ගත කළ හැකි $ git tag -lඅතර පසුව විශේෂිත ටැගයක් පරීක්ෂා කරන්න:

$ git checkout tags/<tag_name>

ඊටත් වඩා හොඳයි, පරීක්ෂා කර ශාඛාවක් සාදන්න (එසේ නොමැතිනම් ඔබ ටැග් සංශෝධන අංකයට අනුව නම් කරන ලද ශාඛාවක සිටිනු ඇත):

$ git checkout tags/<tag_name> -b <branch_name>

15
ඔව්. මේ සම්බන්ධයෙන් කඩාකප්පල් කිරීමට git වෙනස් වේ. Svn ටැගයක් මූලිකවම නව ෆෝල්ඩරයකට ලිපිගොනු පිටපත් කරයි, එවිට ඔබට නිශ්චිත ලිපිගොනු සමූහයක් පරීක්ෂා කර බැලිය හැකිය, නමුත් git ටැග් හුදෙක් නිශ්චිත සංශෝධනයන් සඳහා යොමු වේ.
dbr

5
ඔබට එකම නමක් ඇති ශාඛාවක් හා ටැගයක් තිබේ නම් කුමක් කළ යුතුද? ඔබ "git checkout <name>" යැයි පැවසුවහොත් එය "අනතුරු ඇඟවීම: refname '<name>' අපැහැදිලි ය.
MatrixFrog

54
පිටවීමක් සිදු කරන විට සහ ඩෙරෙක් සඳහන් කළ පරිදි, රෙපෝව "වෙන්වූ හිසක්" තත්වයට පත්වේ. ඒ වෙනුවට, -bනව ශාඛාවක් නිර්මාණය කිරීම සඳහා ධජය පවසන git එකතු කර ශාඛා නාමයක් සඳහන් කරන්න:git checkout <tag_name> -b <branch_name>
hellatan

22
@hellatan ඔබ එය කළ යුත්තේ ඔබට ඇත්ත වශයෙන්ම ශාඛාවක් සෑදීමට අවශ්‍ය වූ විට පමණි, නමුත් බොහෝ විට ඔබ එසේ නොකරයි. “වෙන්වූ හිස” තත්වයෙන් ධාවනය වීම ඔබට හානියක් නොවන අතර ඔබට යම්කිසි ඉතිහාස ඉතිහාසයක් පරීක්ෂා කිරීමට අවශ්‍ය නම් එය ඔබට අවශ්‍ය දේම වේ.
machineghost

4
Git අනුවාදයේ 1.8.3.5සහ අළුත් ඒවායින්, --branch <tag ref>ඔබේ ගබඩාව <tag ref>repo HEAD ලෙස ආරම්භ කර ගබඩාව බාගත කිරීමට ඉඩ දිය යුතුය ; සමඟ ඒකාබද්ධව --depth 1නොගැඹුරු ටැග් පිරික්සීමක් කරනු ඇත. Stackoverflow.com/a/21699307/1695680
ThorSummoner

411
git clone --branch my_abc http://git.abc.net/git/abc.git

රෙපෝව ක්ලෝන කර ඔබ උනන්දුවක් දක්වන ටැගය මත තබනු ඇත.

Git clone හි 1.8.0 සඳහා ලේඛන .

--branch ට ටැග් ගත හැකි අතර එහි ප්‍රති ing ලයක් ලෙස ඇති ගබඩාවේ HEAD හඳුනා ගනී.


7
මෙය (අවම වශයෙන් දැන්) ටැග් සඳහා ක්‍රියා කරයි, නමුත් ඔබ අවසන් වන්නේ HEAD තත්වයක වුවද.
mxcl

72
FYI: --depth 1වර්තමාන නොවන කොමිස් බාගත කිරීමෙන් වළකින්න.
ඇකියුමනස්

4
මෙය ඇත්ත කුමක්ද නොවන ටැග් සමඟ වැඩ. අතු පමණි. සංස්කරණය කරන්න: git හි නවතම අනුවාදයන් පමණක් එයට සහාය දක්වයි.
lzap

ටැග් දෙකක හෝ වැඩි ගණනක නොගැඹුරු ක්ලෝනයක් කිරීමට අපට .git / config (හෝ කෙසේ හෝ එය වින්‍යාස කිරීමට) සංස්කරණය කළ හැකිය, එය අවශ්‍ය නම්, නොගැඹුරු ක්ලෝනයක් සම්පූර්ණ ක්ලෝන වෙත යාවත්කාලීන කරන්න.
සෑම් වොට්කින්ස්

ටැගය සමඟ ඔබට අවශ්‍ය ශාඛාවද නියම කළ හැකිය. වැනි git clone --branch my_abc http://git.abc.net/git/abc.git -b qualityගුණාත්මක අපි btw අවශ්ය ශාඛාවේ නම.
හසිම්ඩිකෙන්ලි

180

යෙදවීම සඳහා දී ඇති ටැගයක් පමණක් පරීක්ෂා කිරීම සඳහා, මම භාවිතා කරන්නේ උදා:

git clone -b 'v2.0' --single-branch --depth 1 https://github.com/git/git.git

සම්පූර්ණ නිධියකට වඩා නවීනතම කේතය ගැන යමෙකුට උනන්දුවක් ඇත්නම් දුරස්ථ ගබඩාවකින් කේතය පරීක්ෂා කිරීමේ වේගවත්ම ක්‍රමය මෙය බව පෙනේ. මේ ආකාරයෙන් එය 'svn co' විධානයට සමාන වේ.

සටහන: Git අත්පොත අනුව , --depthධජය පසු කිරීම --single-branchපෙරනිමියෙන් ගම්‍ය වේ.

--depth

නිශ්චිත කොමිස් ගණනට කප්පාදු කළ ඉතිහාසයක් සහිත නොගැඹුරු ක්ලෝනයක් සාදන්න. සියලු ශාඛා වල ඉඟි අසල ඉතිහාසය ලබා ගැනීම සඳහා --no-single ශාඛාවක් ලබා නොදුනහොත් --single-branch යන්නෙන් ගම්‍ය වේ. ඔබට නොගැඹුරු ලෙස උප මොඩියුල ක්ලෝන කිරීමට අවශ්‍ය නම් --shallow-subodules ද පසු කරන්න.


10
මෙය සංකීර්ණ යැයි විශ්වාස කළ නොහැක. ඔවුන්ගේ කේතය අන් අය විසින් භාවිතා කරනු ඇතැයි කිසිවෙකු අපේක්ෂා නොකරයි.
බෙන්

9
En බෙන්, මෙය සැබවින්ම සරලම විසඳුමයි (තනි විධානයක් අවශ්‍යයි)
එලිරන් මල්කා

3
En බෙන් මෙය සංකීර්ණ වන්නේ ඇයි? එය පෙරනිමියෙන් වෙනස් ලෙස කිරීමට ඔබට අවශ්‍ය අංග කිහිපයක් සහිත විශේෂ භාවිත කේස් එකකි. ඇත්ත වශයෙන්ම ඔබ එය නියම කළ යුතුය. සාමාන්‍ය විසඳුම වනුයේ බෙදා හරින ලද vcs එකකින් මුළු ගබඩාවම පරීක්ෂා කිරීමයි.
erikbwork

9
En බෙන් හරි. මීට වසර ගණනාවකට පෙර ලිනස් විසින් ලියන ලද අතර එය ක්‍රියාත්මක වන ආකාරය "සැබවින්ම" තේරුම් ගන්නා එකම තැනැත්තා ඔහුය. xkcd.com/1597
රයන්නර්ඩ්

11
--depth nගම්‍ය --single-branchවේ. ඔබට දෙකම අවශ්‍ය නොවේ.
නියාස්

98

මම දක්ෂ විශේෂ expert යෙක් නොවෙමි, නමුත් මෙය ක්‍රියාත්මක විය යුතු යැයි මම සිතමි.

git clone http://git.abc.net/git/abc.git
cd abc
git checkout my_abc 

හෝ

git clone http://git.abc.net/git/abc.git
cd abc
git checkout -b new_branch my_abc

දෙවන විචලනය ටැගය මත පදනම්ව නව ශාඛාවක් ස්ථාපිත කරන අතර එමඟින් 'වෙන්වූ හෙඩ්' වළක්වා ගත හැකිය. (git-checkout manual)

සෑම git repo එකකම සමස්ත සංශෝධන ඉතිහාසයම අඩංගු වේ, එබැවින් repo ක්ලෝන කිරීමෙන් ඔබට නවතම කැපවීමට ප්‍රවේශය ලැබෙනු ඇත, තවද ඔබ සොයන ටැගය ද ඇතුළුව පෙර පැමිණි සියල්ල.


4
ස්තූතියි. git checkout -b b1.5.0 v1.5.0ගිතුබ් පිටු වෙත සාර්ථකව තල්ලු කිරීම සඳහා 'gh-pages' ශාඛාවක් තුළ අනුවාදයක් පරීක්ෂා කිරීමේදී මට භාවිතා කිරීමට අවශ්‍ය විය . මා විසින් ලියන ලද මෙම සාරාංශය
ක්‍රිස් ජේකබ්

4
මම හිතන්නේ නැහැ මේ සම්පූර්ණයෙන්ම නිවැරදි (පර්යන්තය වෙත උදා ඇලවීම සඳහා) ඔබ වෙනවා සිට cdබවට abc/ඔබ ශාඛා Checkout කිරීමට පෙර පළමු
ස්ටීවන් ලූ

Te ස්ටීවන්ලූ ඔබ ඇත්ත වශයෙන්ම නිවැරදිය. මම යන්නේ කපන හා ඇලවීමට වඩා සංකල්ප සඳහා ය, නමුත් එය හැකි තරම් නිවැරදි විය හැකිය. මම එකතු කළා cd.
දළ වොගල්

81

දී ඇති ටැගයක් සඳහා තාර බෝලයක් බාගත කිරීම සඳහා ඔබට git සංරක්ෂිතය භාවිතා කළ හැකිය.

git archive --format=tar --remote=[hostname]:[path to repo] [tag name] > tagged_version.tar

ඔබට ටැගයක zip ලේඛනාගාරයක් අපනයනය කළ හැකිය.

  1. ලැයිස්තු ටැග්:

    git tag
    
    0.0.1
    0.1.0
    
  2. ටැගයක් අපනයනය කරන්න:

    git archive -o /tmp/my-repo-0.1.0.zip --prefix=my-repo-0.1.0/ 0.1.0
    
  3. සටහන්:

    • ඔබට ආකෘතිය නියම කිරීමට අවශ්‍ය නැත. එය ප්‍රතිදාන ගොනු නාමයෙන් ලබා ගනී.
    • උපසර්ගය සඳහන් කිරීමෙන් ඔබගේ කේත නාමාවලියකට අපනයනය වේ (ඔබ පසුපස කප්පාදුවක් ඇතුළත් කරන්නේ නම්).

3
මෙම විධානය උප මොඩියුල
Zitrax

3
නමුත් git සංරක්ෂිතය අනුවාද පාලනයද ඉවත් කරයි, එබැවින් ඔබට ඊළඟ ටැගය වෙත යාවත්කාලීන කිරීම සඳහා වෙනත් git checkout එකක් කළ නොහැක.
idbrii

9
ඔව් ඔබට අනුවාද පාලනය නැති වී ඇති නමුත් git ක්ලෝන සමඟ සසඳන විට git සංරක්ෂිතයේ ඉතිරිවන කාලය නිසැකවම විශ්වාස කළ නොහැකි ය! +1
මාර්ක්

මෙය මට අවශ්‍ය දේට සමීපයි, එය හැරෙන්නට git archiveමට මුරපදයක් ඉල්ලීම හැරෙන්නට මට අවශ්‍ය වන්නේ පොදු ගබඩාවකින් බාගත කිරීමයි. Ssh වෙනුවට http භාවිතා කරන්නේ කෙසේද?
robru

1
මෙය fatal: Operation not supported by protocol.සහ Unexpected end of command streamදෝෂ සමඟ අසමත් වේ . විකල්පයක් ලෙස, එය fatal: The remote end hung up unexpectedlyදෝෂය නැවත ලබා දිය හැකිය .
Acumenus

52

--single-branchස්විචය භාවිතා කරන්න (Git 1.7.10 අනුව ලබා ගත හැකිය) . වාක්‍ය ඛණ්ඩය:

git clone -b <tag_name> --single-branch <repo_url> [<dest_dir>] 

උදාහරණයක් වශයෙන්:

git clone -b 'v1.9.5' --single-branch https://github.com/git/git.git git-1.9.5

වාසිය: Git හට වස්තු ලැබෙනු ඇති අතර (නිශ්චිත ශාඛාව / ටැගය සඳහා පමණක් ඩෙල්ටා නිරාකරණය කිරීම අවශ්‍ය වේ) - හරියටම එකම ගොනු ප්‍රමාණයක් පරීක්ෂා කරන අතරතුර! ප්‍රභව ගබඩාව මත පදනම්ව, මෙය ඔබට විශාල ඉඩ ප්‍රමාණයක් ඉතිරි කරයි. (ප්ලස්, එය වඩා ඉක්මන් වනු ඇත.)


3
කවුරුන් හෝ මෙම පිළිතුර අවතක්සේරු කළ / පහත් කළ අයෙක්: කරුණාකර පහත දැක්වෙන අගය සඳහා කෙටි පැහැදිලි කිරීමක් සමඟ අදහස් දක්වන්න. (ඇසීම, මම ටිකක් ව්‍යාකූල වී ඇති නිසාය. මක්නිසාද යත්, ලබා දී ඇති ගැටලුවට හොඳම විසඳුම මෙයයි. ඔබ එසේ නොසිතන්නේ නම්, ඒ මන්දැයි දැන ගැනීමට මා කැමතිය.) බොහෝ ස්තූතියි.
eyecatchUp

5
පහත වැටීම් ගැන ඕනෑවට වඩා අවබෝධ කර ගැනීමට උත්සාහ නොකරන්න .. ඔබේ පිළිතුර ඉතා හොඳයි, ඔවුන්ගේ අඩුපාඩු සනාථ කළ නොහැකි ය .. එය SOF හි ජීවිතයයි ..
javadba

29

පළමුව එම දුරස්ථයේ ඇති සියලුම ටැග් ලබා ගන්න

git fetch <remote> 'refs/tags/*:refs/tags/*'

හෝ සරලව ටයිප් කරන්න

git fetch <remote>

ඉන්පසු ලබා ගත හැකි ටැග් සඳහා පරීක්ෂා කරන්න

git tag -l

පහත විධානය භාවිතා කර එම විශේෂිත ටැගය වෙත මාරු වන්න

git checkout tags/<tag_name>

මෙය ඔබට උපකාරී වේ යැයි සිතමු!


´git tag -l´ එය ´git tag´ හා සමාන විය යුත්තේ ඇයි?
serup

1
@serup; ලබා ගත හැකි ටැග් ලැයිස්තුගත කරන git tagඅතර ටැගයක් එකතු කරනු ඇතgit tag -l
ජූස්ට් ඩොබ්කන්

18

ඔබගේ ටැග් ලිනක්ස් sortවිධානය භාවිතයෙන් වර්ග කළ හැකි නම් , මෙය භාවිතා කරන්න:

git tag | sort -n | tail -1

උදා. නම්git tagආපසු පැමිණේ :

v1.0.1
v1.0.2
v1.0.5
v1.0.4

git tag | sort -n | tail -1 ප්‍රතිදානය කරයි:

v1.0.5

git tag | sort -n | tail -2 | head -1 ප්‍රතිදානය කරයි:

v1.0.4

(ඔබ දෙවන නවතම ටැගය ඉල්ලා සිටි නිසා)

ටැගය පිරික්සීමට, පළමුව repo ක්ලෝන කරන්න, ඉන්පසු ටයිප් කරන්න:

git checkout v1.0.4

ඔබට අවශ්‍ය ඕනෑම ටැගයක්.


25
ඔබ v1.0.10 වෙත ළඟා වන තුරු නරක දේ සිදුවනු ඇත :)
ලෝරන්ට් ග්‍රෙගෝයර්

10
ඔබේ ටැග් කාලානුක්‍රමිකව වර්ග කර ගැනීමට:git for-each-ref --sort='*authordate' --format='%(tag)' refs/tags
බොබ් ජී

නවතම අනුවාදය ස්වයංක්‍රීයව git checkout `git tag | sort -n | tail -1`
පිරික්සීමට

ඔබට sort -Vඒ වෙනුවට භාවිතා කිරීමට අවශ්‍ය විය හැකිය sort -n. කලින් සඳහන් කළ ඒවා සංඛ්‍යාත්මක නොවන අනුවාදයන් නිවැරදිව හසුරුවයි, උදා: "1.2.3". "0.4.10" යන්නේ "0.4.1" ට පසුව මිස "0.4.2" ට පසුව නොවන බව ද එය තේරුම් ගනී -n.
මාටියුස් මිසෝර්නි

16

මම git checkout ප්‍රලේඛනය පරීක්ෂා කළෙමි , එය එක් රසවත් දෙයක් හෙළි කළේය:

git checkout -b <new_branch_name> <start_point>, එහිදී <start_point> යනු නව ශාඛාව ආරම්භ කිරීමට බැඳී සිටින අයගේ නමයි; පෙරනිමි HEAD

එබැවින් අපට ටැග් නම සඳහන් කළ හැකිය (ටැගය යනු කැපවීමක නමක් මිස අන් කිසිවක් නොවේ),

>> git checkout -b 1.0.2_branch 1.0.2
පසුව, සමහර ගොනු වෙනස් කරන්න
>> git push --tags

PS: Git හි ඔබට ටැගයක් කෙලින්ම යාවත්කාලීන කළ නොහැක (ටැගය කැපවීම සඳහා ලේබලයක් පමණක් බැවින්), ඔබට එකම ටැගය ශාඛාවක් ලෙස පරීක්ෂා කර බලා ඒ සඳහා කැපවී වෙනම ටැගයක් සෑදිය යුතුය.


1
නැතහොත් ඔබ කිසිදු වෙනසක් කිරීමට අපේක්ෂා නොකරන්නේ නම් සහ එම ටැගයෙහි කේතය කෙබඳුදැයි බැලීමට ඔබට අවශ්‍ය නම්, ඔබට ශාඛාවක් නිර්මාණය නොකර ටැගය පරීක්ෂා කළ හැකිය. ඔබ "වෙන්වූ හිස" තත්වයේ සිටින බව පැහැදිලි කරමින් ඔබට යම් පෙළක් ලැබෙනු ඇත, ඔබට අවශ්‍ය නම් ඔබට සෑම විටම ශාඛාව නිර්මාණය කළ හැකිය.
මැට්‍රික්ස් ෆ්‍රොග්

16
git fetch <gitserver> <remotetag>:<localtag>

=================================

මම මේක කළා. මුලින්ම මම ටැග් නාම අක්ෂර වින්‍යාසය දැන සිටින බවට වග බලා ගත්තා.

git ls-remote --tags gitserver; : or origin, whatever your remote is called

මෙය මට තෝරා ගැනීමට මගේ git සේවාදායකයේ ටැග් ලැයිස්තුවක් ලබා දුන්නේය. මුල් පෝස්ටරය දැනටමත් ඔහුගේ ටැගයේ නම දැන සිටි බැවින් මෙම පියවර සෑම කෙනෙකුටම අවශ්‍ය නොවේ. සැබෑ ලැයිස්තුව දිගු වුවද ප්‍රතිදානය මේ ආකාරයෙන් පෙනුනි.

8acb6864d10caa9baf25cc1e4857371efb01f7cd    refs/tags/v5.2.2.2
f4ba9d79e3d760f1990c2117187b5010e92e1ea2    refs/tags/v5.2.3.1
8dd05466201b51fcaf4ca85897347d82fcb29518    refs/tags/Fix_109
9b5087090d9077c10ba22d99d5ce90d8a45c50a3    refs/tags/Fix_110

මම මට අවශ්‍ය ටැගය තෝරාගෙන එය ලබා ගත්තෙමි.

git fetch gitserver Fix_110

මම මෙය මගේ දේශීය යන්ත්‍රයේ ටැග් කර මගේ ටැගයට එකම නම ලබා දුන්නා.

git tag Fix_110 FETCH_HEAD

අනෙක් අය යෝජනා කර ඇති පරිදි දුරස්ථ ගබඩාව ක්ලෝන කිරීමට මට අවශ්‍ය නොවීය, මන්ද මා වැඩ කරමින් සිටින ව්‍යාපෘතිය විශාල වන අතර හොඳ පිරිසිදු පරිසරයක සංවර්ධනය කිරීමට මට අවශ්‍යය. මුළු ගබඩාවම ක්ලෝන කිරීමට යෝජනා කරන විසඳුමට වඩා මෙය "විශේෂිත ටැග් එකක් බාගත කරන්නේ කෙසේදැයි සොයා ගැනීමට මම උත්සාහ කරමි" යන මුල් ප්‍රශ්න වලට වඩා සමීප බව මට හැඟේ. ඩොස් 0.1 ප්‍රභව කේතය බැලීමට අවශ්‍ය නම් කිසිවෙකුට වින්ඩෝස් එන්ටී සහ වින්ඩෝස් 8.1 ප්‍රභව කේතයේ පිටපතක් තිබිය යුත්තේ මන්දැයි මම නොදනිමි.

අනෙක් අය යෝජනා කර ඇති පරිදි මට චෙක්කෝට් භාවිතා කිරීමට අවශ්‍ය නොවීය. මට ශාඛාවක් පරීක්ෂා කර ඇති අතර එයට බලපෑම් කිරීමට අවශ්‍ය නොවීය. මගේ අභිප්‍රාය වූයේ මට අවශ්‍ය මෘදුකාංගය ලබා ගැනීමයි, එවිට මට යමක් චෙරි-තෝරාගෙන එය මගේ සංවර්ධනයට එක් කළ හැකිය.

ටැග් කළ කැපවීමේ පිටපතක් වෙනුවට ටැගය ලබා ගැනීමට ක්‍රමයක් තිබේ. ලබාගත් කැපවීම මා විසින්ම සටහන් කළ යුතුව තිබුණි. සංස්කරණය කරන්න: ඔව්, මම දැන් එය සොයාගත්තා.

git fetch gitserver Fix_110:Fix_110

ඔබ මහා බඩවැලේ දකින තැන, එය දුරස්ථ නමකි: දේශීය-නම සහ මෙහි ඒවා ටැග් නම් වේ. වැඩ කරන ගස අවුල් නොකර මෙය ක්‍රියාත්මක වේ. දුරස්ථයේ සිට දේශීය යන්ත්‍රයට දේවල් පිටපත් කරන බවක් පෙනේ, එවිට ඔබට ඔබේම පිටපතක් ඇත.

git fetch gitserver --dry-run Fix_110:Fix_110

--dry-run විකල්පය එකතු කිරීමෙන් ඔබට අවශ්‍ය දේ සත්‍යාපනය කිරීමට අවශ්‍ය නම්, විධානය කුමක් කරයිද යන්න බැලීමට ඔබට ඉඩ සලසයි. ඉතින් මම හිතන්නේ සරලයි

git fetch gitserver remotetag:localtag

නියම පිළිතුරයි.

=

ටැග් ගැන වෙනම සටහනක් ... මම අලුත් දෙයක් ආරම්භ කරන විට සාමාන්‍යයෙන් git init පසු හිස් ගබඩාව ටැග් කරමි

git rebase -i XXXXX 

බැඳීමක් අවශ්‍ය වන අතර ප්‍රශ්නය පැන නගින්නේ "ඔබේ පළමු මෘදුකාංග වෙනස ඇතුළත් වෙනස්කම් නැවත ප්‍රතිස්ථාපනය කරන්නේ කෙසේද?" ඒ නිසා මම වැඩ ආරම්භ කරන විට මම කරනවා

git init
touch .gitignore
[then add it and commit it, and finally]
git tag EMPTY

එනම් මගේ පළමු සැබෑ වෙනසට පෙර බැඳීමක් ඇති කර පසුව භාවිතා කරන්න

git rebase -i EMPTY 

පළමු වෙනස ඇතුළුව මගේ සියලු වැඩ නැවත ප්‍රතිස්ථාපනය කිරීමට මට අවශ්‍ය නම් .


8

පීටර් ජොන්සන්ගේ පිළිතුරෙන් බැහැරව, මම මා වෙනුවෙන් ලස්සන කුඩා අන්වර්ථයක් නිර්මාණය කළෙමි:

alias gcolt="git checkout $(git tag | sort -V | tail -1)"

'git checkout නවතම ටැගය'.

මෙය රඳා පවතින්නේ වර්ගීකරණයේ GNU අනුවාදය මත වන අතර එය lOranger පෙන්වා දුන් ආකාරයට සුදුසු තත්වයන් හසුරුවයි:

v1.0.1
...
v1.0.9
v1.0.10

ඔබ මැක් brew install coreutilsඑකක සිටී නම්, ඒ වෙනුවට gsort අමතන්න.


6

උත්සාහ කරන්න:

git clone -b <name_of_the_tag> <repository_url> <destination>

නිධිය සඳහා ශාඛා කිහිපයක් තිබේ නම් ක්ලෝන කරන්නේ කුමන ශාඛාවද?
tauseef_CuriousGuy

5

ටැග් පරීක්ෂා කිරීම

ටැගයක් පෙන්වා ඇති ලිපිගොනු වල අනුවාදයන් බැලීමට ඔබට අවශ්‍ය නම්, ඔබට git checkout එකක් කළ හැකිය, නමුත් මෙය ඔබේ ගබඩාව “වෙන්වූ HEAD” තත්වයට පත් කරයි, එය සමහර අයහපත් අතුරු ආබාධ ඇති කරයි:

$ git checkout 2.0.0
Note: checking out '2.0.0'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b <new-branch-name>

HEAD is now at 99ada87... Merge pull request #89 from schacon/appendix-final

$ git checkout 2.0-beta-0.1
Previous HEAD position was 99ada87... Merge pull request #89 from schacon/appendix-final
HEAD is now at df3f601... add atlas.json and cover image

“වෙන්වූ හෙඩ්” තත්වයේදී, ඔබ වෙනස්කම් සිදු කර බැඳීමක් ඇති කළහොත්, ටැගය එලෙසම පවතිනු ඇත, නමුත් ඔබේ නව කැපවීම කිසිදු ශාඛාවකට අයත් නොවන අතර නිශ්චිත බැඳීම් හැෂ් හැරෙන්නට ළඟා විය නොහැක. මේ අනුව, ඔබට වෙනස්කම් කිරීමට අවශ්‍ය නම් - ඔබ පැරණි අනුවාදයක දෝෂයක් නිවැරදි කරන බව පවසන්න, උදාහරණයක් ලෙස - ඔබට සාමාන්‍යයෙන් ශාඛාවක් සෑදීමට අවශ්‍ය වනු ඇත:

$ git checkout -b version2 v2.0.0
Switched to a new branch 'version2'

ඔබ මෙය කර කැපවීමක් කළහොත්, ඔබේ අනුවාදය 2 ශාඛාව ඔබගේ v2.0.0 ටැගයට වඩා තරමක් වෙනස් වනු ඇත, මන්ද එය ඔබගේ නව වෙනස්කම් සමඟ ඉදිරියට යනු ඇත, එබැවින් ප්‍රවේශම් වන්න.


4

මම මෙය කරන්නේ github API හරහා ය:

curl -H "Authorization: token %(access_token)s" -sL -o /tmp/repo.tar.gz "http://api.github.com/repos/%(organisation)s/%(repo)s/tarball/%(tag)s" ;\
tar xfz /tmp/repo.tar.gz -C /tmp/repo --strip-components=1 ; \

1
මෙය ශාඛා හා ටැග් සඳහා ක්‍රියා කරයි, නමුත් එයට එරෙහිව නිර්මාණය කළ ටැගයක් අවශ්‍ය වන ප්‍රධානියාගේ හිස නොවේ. අවම ප්‍රමාණයේ අනුවාදයක් ලබා ගැනීම සඳහා ඉමෝ තරමක් අලංකාර ක්‍රමයක්.
J0hnG4lt
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.