දුරස්ථ Git ශාඛාවක් පරීක්ෂා කරන්නේ කෙසේද?


6716

කවුරු හරි නමින් ශාඛා තල්ලු testසමග git push origin testහවුල් ගබඩාවක කිරීමට. මට ශාඛාව දැකිය හැකිය git branch -r.

දැන් මම දුරස්ථ testශාඛාව පරීක්ෂා කිරීමට උත්සාහ කරමි .

මම උත්සාහ කළා:

  • git checkout test කිසිවක් නොකරන

  • git checkout origin/testලබා දෙයි * (no branch). එය අවුල් සහගතය. "ශාඛාවක් නැත" මත මා සිටින්නේ කෙසේද?

දුරස්ථ Git ශාඛාවක් පරීක්ෂා කරන්නේ කෙසේද?


9
@inger එහෙත් එය නව ශාඛා නැවත නම් කිරීමට (ඔබ --set-උඩුගං කිරීමට පසුව, ස්ථාවර නම් තබා අවශ්ය නම්) හැකියාව ඇතුලත් නැත
fachexot

15
මම හිතන්නේ මේ ත්‍රෙඩ් එක උදව් කරන්නේ නැහැ. කිසිවක් ක්‍රියාත්මක නොවන බව පෙනේ, මුල් ප්‍රශ්නය බොහෝ පිළිතුරු වල නැති වී ඇති බව පෙනේ. මම සෑම වචනයක්ම කියවා, පහත සියල්ල අත්හදා බැලුවෙමි, සහ OP ට අවශ්‍ය දේ කරන්නේ කෙසේදැයි මා දන්නේ නැත.
ටෝනි එනිස්

6
Git විධානයන් ආරම්භ කිරීමට බුද්ධිමත් නොවේ, මෑත සංස්කරණ සමඟ හඳුන්වා දුන් වෙනස්කම් මිශ්‍රණයට එක් කරන්න, ඔබට මෙම පිටුව තිබේ ...
ක්‍රිස්ටෝෆ් රූසි

14
මට පිස්සු පෙති ගන්නවා වගේ දැනෙනවා. මම උත්සාහ කරන්නේ ශාඛාවකින් upstreamපමණක් නොව origin, නිර්දේශිත සෑම පිළිතුරකින්ම දුරස්ථව ප්‍රයෝජනවත් කිසිවක් නොකරයි (ද pun ුවම අරමුණු කරගත්). සංස්කරණය කරන්න - මට සමාවෙන්න, ඉහළම පිළිතුරු 2 හි අඩංගු යෝජනා රාශියක් නිෂ් less ල විය; 3 වන එක ( git branch test origin/test) යනු කුමක්ද? පළමු 2 දෙනාගේ ඡන්ද සංඛ්‍යාව 20x ක්
තිබීම සතුටක්

4
ඔබේ වැඩ ගසෙහි 'ටෙස්ට්' නමින් ගොනුවක් තිබිය හැක, විස්තර සඳහා stackoverflow.com/a/45006389/792416 බලන්න .
ඕල්ඩ්මන්

Answers:


9154

යාවත්කාලීන කරන්න

ජකුබ්ගේ පිළිතුර ඇත්ත වශයෙන්ම මේ පිළිබඳව වැඩි දියුණු කරයි. Git අනුවාදයන් ≥ 1.6.6 සමඟ, එක් දුරස්ථයක් සමඟ, ඔබට කළ හැක්කේ:

git fetch
git checkout test

පරිශීලක මසුකෝමි අදහස් දැක්වීමේදී පෙන්වා දෙන පරිදි, git checkout testඔබට දුරස්ථ දුරස්ථ ප්‍රමාණයක් තිබේ නම් නවීන උපකරණවල ක්‍රියා නොකරනු ඇත. මෙම අවස්ථාවේ දී භාවිතා කරන්න

git checkout -b test <name of remote>/test

හෝ කෙටිමං

git checkout -t <name of remote>/test

පැරණි පිළිතුර

දුරස්ථ ශාඛාවක දේශීයව වැඩ කිරීම ආරම්භ කිරීමට පෙර, පහත දැක්වෙන පිළිතුරු වලින් ඔබ එය ලබා ගත යුතුය.

ශාඛාවක් ලබා ගැනීම සඳහා, ඔබට අවශ්‍ය වන්නේ:

git fetch origin

මෙය ඔබට දුරස්ථ ශාඛා සියල්ලම ලබා දෙනු ඇත. පිටවීම සඳහා ඇති ශාඛා ඔබට දැක ගත හැකිය:

git branch -v -a

දුරස්ථ ශාඛා අතේ ඇති බැවින්, ඔබ දැන් ඔබ උනන්දුවක් දක්වන ශාඛාව පරීක්ෂා කර බලා ඔබට දේශීය වැඩ පිටපතක් ලබා දෙයි:

git checkout -b test origin/test

398
මෙය පුළුල් කිරීම සඳහා: වෙනත් කෙනෙකුගේ ශාඛා මත වැඩ කිරීමට git ඔබට ඉඩ නොදේ. ඔබට තනිවම වැඩ කළ හැකිය. එබැවින් ඔබට වෙනත් කෙනෙකුගේ ශාඛාවකට එක් කිරීමට අවශ්‍ය නම්, එම ශාඛාවේ ඔබේම “පිටපතක්” සෑදිය යුතුය, එය ඉහත විධානය මඟින් සිදු කරයි (හොඳයි, එය ඔබේ ශාඛාව නිර්මාණය කර එය පරීක්ෂා කරයි).
ඩෑන් මෝල්ඩින්

139
එය නව දුරස්ථ ශාඛාවක් නම් මෙය කිරීමට git fetchපෙර ඔබට අවශ්‍ය විය හැකියorigin/test
නීල් සර්කාර්

56
... සහ ඔබ සමඟ මේ කරන්නේgit fetch origin test
ඇන්ඩෲ

22
දෝෂය: "git checkout: මාර්ග යාවත්කාලීන කිරීම ශාඛා මාරු කිරීම හා නොගැලපේ. බැඳීමක් origin/testලෙස විසඳිය නොහැකි පිටවීම ඔබ අදහස් කළේද ?"
Xeoncross

85
git checkout testඔබට එකම ශාඛා නාමයක් ඇති දුරස්ථ දුරස්ථ ප්‍රමාණයක් තිබේ නම් නවීන උපකරණවල ක්‍රියා නොකරනු ඇත . කුමන එකක් භාවිතා කළ යුතු දැයි එයට දැනගත නොහැක.
masukomi

1256

Sidenote: නවීන Git (> = 1.6.6 ) සමඟ, ඔබට සාධාරණ ලෙස භාවිතා කළ හැකිය

git checkout test

(සටහන් එය "පරීක්ෂණ '' ආරම්භය / ටෙස්ට් 'නොවන බව) ඉන්ද්රජාලික ඉටු කිරීමට DWIM -mery සහ දේශීය ශාඛා සඳහා උඩුගං දුරස්ථ සොයා ශාඛාව' සම්භවය / ටෙස්ට් 'වනු ඇත ඔබ වෙනුවෙන්" පරීක්ෂණ' නිර්මාණය කරන්න.


මෙම * (no branch)තුළ git branchප්රතිදානය මාර්ගයෙන් ඔබ නම් සඳහන් නොකල ශාඛා මත බව ඊනියා (සෘජුව සිදු කිරීමට හිස ලකුණු, සහ සමහර ප්රාදේශීය ශාඛා වෙත සංකේතාත්මක සඳහනක් නැත) රාජ්ය "හිස වෙන්" තුළ,. ඔබ නම් නොකළ මෙම ශාඛාව මත යම් යම් කැපවීම් සිදු කර ඇත්නම්, ඔබට සැමවිටම දේශීය බැඳීම් වලින් බැහැරව දේශීය ශාඛාවක් නිර්මාණය කළ හැකිය:

git checkout -b test HEAD

** සංස්කරණය කරන්න (කර්තෘ විසින් කතුවරයා නොවේ ) **

මෙම පිළිතුර නවීකරණය කරන බවක් පෙනෙන පහත අදහස් දැක්වීමක් මට හමු විය:

Enn ඩෙනිස්: git checkout, උදාහරණයක් ලෙස git checkout සම්භවය / පරීක්ෂණ ප්‍රති results ල වෙන්වූ HEAD / නම් නොකළ ශාඛාව තුළ වන අතර, git checkout test හෝ git checkout -b පරීක්ෂණ සම්භවය / දේශීය ශාඛා පරීක්ෂණයේ ප්‍රති results ල (දුරස්ථ ලුහුබැඳීම් ශාඛා සම්භවය / පරීක්ෂණය උඩුමහලේ ) - ජකුබ් නාරබ්ස්කි ජනවාරි 9 '14 ට 8:17

අවධාරණය git checkout origin/test


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

10
"නූතන git" - වාර්තාව සඳහා, (දළ වශයෙන්) ඔබ යොමු කරන්නේ කුමන අනුවාදයද? සමහර විට අපට පැරණි ඩිස්ට්‍රෝ ධාවනය වන පද්ධති මත වැඩ කිරීමට සිදු වේ.
ක්‍රේග් මැක්වීන්

5
මෙම සන්දර්භය තුළ "නූතන git" යනු git 1.6.6
බොබී නෝර්ටන්

10
idaidan ඔබට ප්‍රතිචාරයක් ලැබෙන්නේ නම් ඔබ error: pathspec 'branch_name' did not match any file(s) known to git.මුලින්ම git fetch එකක් කළ යුතුය.
ඩෙනිස්

6
Git අනුවාදය 1.8.3.msysgit.0 භාවිතා කිරීම සහ මෙය මට වැඩ කරන්නේ නැත - git දන්නා කිසිදු ගොනුවකට (ගොනුවකට) නොගැලපේ - මම බොහෝ git fetches කර ඇත
PandaWood

565

මෙම අවස්ථාවේ දී, testදුරස්ථ testශාඛාව නිරීක්ෂණය කරන දේශීය ශාඛාවක් නිර්මාණය කිරීමට ඔබට අවශ්‍ය විය හැකිය :

$ git branch test origin/test

පෙර සංස්කරණ වලදී git, ඔබට පැහැදිලි --trackවිකල්පයක් අවශ්‍ය විය , නමුත් ඔබ දුරස්ථ ශාඛාවකින් අතු බෙදී යන විට එය පෙරනිමිය වේ.


15
මෙය මාරු නොවී දේශීය ශාඛාවක් නිර්මාණය කරනු ඇත.
ඇලෙක්ස් ස්ක්‍රිප්නික්

2
මට මාරාන්තික වුවද: නොපැහැදිලි වස්තු නම: 'සම්භවය / දේව්' - මූලාරම්භයේ 'දේව්' යන ශාඛාව අනිවාර්යයෙන්ම පවතී - නමුත් මම අහම්බෙන් මගේ යන්ත්‍රයේ "සම්භවය / දේව්" නම් ශාඛාවක් නිර්මාණය කළෙමි (මගේ පෙර මෝඩ උත්සාහයන් වලදී) මෙම අයිතිය ලබා ගැනීමට, නිසැකවම) ... ouch
PandaWood

1
මෙය මට දෝෂ දෝෂයක් ලබා දී ඇත: සමහර යොමු කිරීම් ඉඟි කිරීමට තල්ලු කිරීමට අපොහොසත් විය: යාවත්කාලීන කිරීම් ප්‍රතික්ෂේප කරන ලද්දේ තල්ලු කළ ශාඛා ඉඟියක් එහි දුරස්ථ ඉඟිය පිටුපස ඇති බැවිනි: ප්‍රතිවිරුද්ධ කොටස. මෙම ශාඛාව පරීක්ෂා කර දුරස්ථ වෙනස්කම් ඉඟිය ඒකාබද්ධ කරන්න: (උදා: 'git pull') නැවත තල්ලු කිරීමට පෙර. ඉඟිය: වැඩි විස්තර සඳහා 'git push --help' හි 'වේගයෙන් ඉදිරියට යාම පිළිබඳ සටහන' බලන්න.
pal4life

475

පිළිගත් පිළිතුර ඔබ වෙනුවෙන් වැඩ නොකරන්නේද?

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

$ git checkout -b remote_branch origin/remote_branch

මාරාන්තික: git checkout: මාර්ග යාවත්කාලීන කිරීම ශාඛා මාරු කිරීම සමඟ නොගැලපේ.
බැඳීමක් ලෙස විසඳිය නොහැකි 'සම්භවය / දුරස්ථ_භාණ්ඩය' පරීක්ෂා කිරීමට ඔබ අදහස් කළාද?

විසඳුමක්

ඔබට මෙම පණිවිඩය ලැබෙන්නේ නම්, ඔබ පළමුව ධාවනය කිරීමට පෙර දුරස්ථ ගබඩාවේ නම git fetch originකොතැනද originයන්න කළ යුතුය git checkout remote_branch. ප්‍රතිචාර සමඟ සම්පූර්ණ උදාහරණයක් මෙන්න:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

$ git checkout demo
Branch demo set up to track remote branch demo from origin.
Switched to a new branch 'demo'

ඔබට පෙනෙන පරිදි, ධාවනය git fetch originඅපගේ දේශීය යන්ත්‍රය සොයා ගැනීමට අප තවමත් සකසා නොතිබූ දුරස්ථ ශාඛා ලබා ගත්තේය. එතැන් සිට, අපට දැන් දුරස්ථ ශාඛාව වෙත යොමු කිරීමක් ඇති බැවින්, අපට සරලව ධාවනය කළ හැකි git checkout remote_branchඅතර දුරස්ථ ලුහුබැඳීමේ ප්‍රතිලාභ ලබා ගනිමු.


2
ඔබට දේශීයව වෙනම ශාඛාවක් තිබේ නම් මම සටහනක් එක් කරමි: ඔබ මෙය දුරස්ථ repo සමඟ 'git remote add origin [the_path_to_your_repo / repo_name.git]' භාවිතා කර ඇති බවට වග බලා ගන්න. ඉන්පසු 'git fetch origin' භාවිතා කරන්න, එහිදී 'සම්භවය' යන්නෙන් අදහස් කරන්නේ ඔබ ඇසුරු කළ මූලාරම්භක ගබඩාවයි.
elliotrock

git checkout -b newbranchවර්තමාන ශාඛාව මත පදනම්ව නව ශාඛාවක් 1-පියවර නිර්මාණය කිරීම සහ පරීක්ෂා කිරීම සඳහා ද විශිෂ්ට ලෙස ක්‍රියා කරයි.
ලිනස්

2
මම හිතන්නේ මෙය වඩාත්ම යාවත්කාලීනයි (එය keep @ #! වෙනස් වෙමින් පවතී!). Git 2.5.5 දුරස්ථ ශාඛා සැබවින්ම දැකීමට ඇති එකම මාර්ගය මම සොයා ගත් අතර git ls-remoteඇත්ත වශයෙන්ම එකක් භාවිතා කළ හැකි එකම ක්‍රමය එයයි git checkout -b [branch] --track [remote/branch]... එය වැඩ කිරීමෙන් පසුවය git pull [remote] [branch] . එනම්, එය ඇත්ත වශයෙන්ම මුළු ශාඛාවම ඇදගෙන ගිය නමුත් තවමත් එය ලැයිස්තුගත නොකරයි.
සියුම්

මෙම පිළිතුර එක්කෝ වැඩ කරන්නේ නැහැ විට, බලන්න මේ එක .
eis

එකතු කිරීමට, ඔබ නම් git fetch other_remote only_branch, ඔබට තවමත් fatalදෝෂය ඇතිවේ. git fetch other_remoteශාඛා නාමය නොමැතිව ඔබට කළ යුතුය . අමුතු නිර්මාණය.
ඇස්තමේන්තුවට

258

මම ඉහත විසඳුම උත්සාහ කළ නමුත් එය සාර්ථක වූයේ නැත. මෙය උත්සාහ කරන්න, එය ක්‍රියාත්මක වේ:

git fetch origin 'remote_branch':'local_branch_name'

මෙමඟින් දුරස්ථ ශාඛාව ලබාගෙන නව දේශීය ශාඛාවක් (දැනටමත් නොමැති නම්) නමක් සහිතව නිර්මාණය කර එහි local_branch_nameඇති දුරස්ථය නිරීක්ෂණය කරනු ඇත.


37
Git ලබා ගැනීමේ සම්භවය හෝ git දුරස්ථ යාවත්කාලීන කිරීම දේශීය ශාඛා නිර්මාණය නොකළ විට මෙය මට ප්‍රයෝජනවත් විය. ඒ ඇයි දැයි මට විශ්වාස නැත.
ගොඩ්ස්මිත්

4
නව ශාඛාවක් නිර්මාණය කිරීම සඳහා දුරස්ථ ශාඛාවක් (මාස්ටර් නොවේ) භාවිතා කිරීම මට අවශ්‍ය දේ ඉටු කිරීමට වඩාත්ම direct ජු ක්‍රමය මෙයයි.
රොරලී

7
බහු අතු සහිත දුරස්ථයකින් තනි ශාඛාවක් ක්ලෝන කළ විට, බාධාවකින් තොරව වැඩ කිරීම.
ඇලෙක්ස් සී

7
පිළිගත් පිළිතුරු සහ ඉහළ ඡන්දය පාවිච්චි නොකළ වෙනත් ස්ථානවල මෙය මටද ප්‍රයෝජනවත් විය. මගේ git අනුවාදය 2.5.0
pdepmcp

5
අනෙක් සියල්ල නොකරන විට මෙය ක්‍රියාත්මක වන්නේ මන්දැයි යමෙකුට අදහසක් තිබේද? (මම git 2.13.0 මත සිටිමි)
නේතන් ආතර්

108

දුරස්ථ නම් නොකළ සම්භවයක් සඳහා මෙය DWIM කරනු ඇත ( ප්‍රලේඛනය ):

$ git checkout -t remote_name/remote_branch

නව දුරස්ථයක් එක් කිරීමට, ඔබ පළමුව පහත සඳහන් දෑ කළ යුතුය:

$ git remote add remote_name location_of_remote
$ git fetch remote_name

පළමුවැන්න දුරස්ථව පවතින බව Git ට පවසන අතර දෙවැන්න කොමිස් ලබා ගනී.


104

භාවිත:

git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

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



14
දැන් එය දෙස බලන විට, ඒවා අතිච්ඡාදනය වේ. මගේ පමණක් සංක්ෂිප්ත වන අතර කතාවක් පැවසීමට වඩා කළ යුතු දේ ඔබට කියයි. එබැවින් එය වඩාත් ප්‍රයෝජනවත් වනු ඇතැයි මම සිතමි, විශේෂයෙන් වර්තමානයේ git අනුවාද සඳහා. එය නරක පිළිතුරක් යැයි ඔබ සිතන්නේ නම් ඔබට එය අවතක්සේරු කළ හැකිය.
matanster

1
git fetch යනු ආරක්ෂිත විකල්පයයි. අදින්න භාවිතා කිරීමට පෙර ලබා ගැනීමට උත්සාහ කරන්න. දෙකම දුරස්ථ අන්තර්ගත බාගත කරයි, නමුත් ලබා ගැනීම ප්‍රාදේශීය තත්වය වෙනස් නොකරන අතර, අදින්න වහාම ප්‍රාදේශීය තත්වය වෙනස් කරයි.
පීටර් සාලේ

89

හරි , පිළිතුර පහසුය ... ඔබ මූලික වශයෙන් ශාඛාව දකින නමුත් ඔබට තවමත් දේශීය පිටපතක් නොමැත! ...

ඔබට fetchශාඛාවට අවශ්‍යයි ...

ඔබට සරලවම ලබා ගත හැකි අතර පසුව ශාඛාවට පිවිසිය හැකිය, එය කිරීමට පහත එක් පේළියේ විධානය භාවිතා කරන්න:

git fetch && git checkout test

වෙනස්කම් බෙදා ගැනීමට, fetchක්‍රියා කරන ආකාරය දෙස බැලීමට සහ එය වෙනස් වන්නේ කෙසේද යන්න සඳහා මම පහත රූපය නිර්මාණය කළෙමි pull:

git fetch


@ දිමිත්‍රිසයිට්සෙව් ඔව්, එය ක්‍රියාත්මක වනු ඇත, දුරස්ථ ශාඛාව තිබේ නම් සහ ඔබ ලබා ගන්නේ නම්, ඔබට ශාඛාව දේශීයව ලැබෙනු ඇත ... git fetch && git checkout test.. එබැවින් මෙය ක්‍රියාත්මක වන්නේ දුරස්ථ ශාඛාවක් නොමැති නම් පමණි. ප්රශ්නය කියමින් දැනටමත් එහි දුරස්ථ ශාඛාවක් ඇති බව ...
Alireza

මම ප්‍රශ්නය දකින ආකාරය testනව ශාඛාවක් සේ පෙනේ, එබැවින් එය දේශීයව නොපවතී. එසේ නොමැතිනම් ඔබට තනි git pullවිධානයකින් එය පහසුවෙන් ඇද ගත හැකිය .
දිමිත්‍රි සයිට්සෙව්

Mit දිමිත්‍රිසයිට්සෙව්, ඔව්, ඒ නිසා මම කිව්වේ git fetch, දුරස්ථ ශාඛා සඳහා පරීක්ෂා කිරීම, දැන් ඇදගෙන යාම, අනවශ්‍ය දේවල් ගෙන ඒමට හැකි නමුත්, ඔබට දැනටමත් දේශීයව repo තිබේ නම් සියලු ශාඛා ලබා ගත හැකිය ...
Alireza

කැමතිද fetchතොරව pullමහතාට ඉහළම තේ පිටපතක් නොවන දේශීය ශාඛාව, ඔබේ දේශීය ශාඛා යාවත්කාලීන නොහැකි වීම ප්රධාන පෙළේ වෙනස් නමුත්?
දිමිත්‍රි සයිට්සෙව්

56

Git ගබඩාවක් ක්ලෝන කිරීමට, කරන්න:

git clone <either ssh url /http url>

ඉහත විධානය මඟින් සියලුම ශාඛා පරික්ෂා කරයි, නමුත් masterආරම්භ කරනු ලබන්නේ ශාඛාව පමණි . ඔබට අනෙක් ශාඛා පරීක්ෂා කිරීමට අවශ්‍ය නම්, කරන්න:

git checkout -t origin/future_branch (for example)

මෙම විධානය දුරස්ථ ශාඛාව පරීක්ෂා කරන අතර ඔබේ ප්‍රාදේශීය ශාඛාවේ නම දුරස්ථ ශාඛාවට සමාන වේ.

පිටවීමේදී ඔබේ ප්‍රාදේශීය ශාඛා නාමය අභිබවා යාමට ඔබට අවශ්‍ය නම්:

git checkout -t -b enhancement origin/future_branch

දැන් ඔබේ ප්‍රාදේශීය ශාඛා නම enhancement, නමුත් ඔබේ දුරස්ථ ශාඛා නාමය future_branch.

ප්‍රලේඛනය


git clone <එක්කෝ ssh url / http url> - මා වෙනුවෙන් පරිපූර්ණව ක්‍රියා කරයි
Kmeixner

ඔව් ඔබ නිවැරදිය. ඔබගේ තොරතුරු වලට ස්තූතියි, මම එය ඉතා ඉක්මණින් යාවත්කාලීන කරමි @warvariuc
Madhan Ayyasamy

දුරස්ථයට නොමැති නම් master, මෙය ක්‍රියාත්මක නොවේ.
polkovnikov.ph

36

ඔබට උත්සාහ කළ හැකිය

git fetch remote
git checkout --track -b local_branch_name origin/branch_name

හෝ

git fetch
git checkout -b local_branch_name origin/branch_name

2
මෙම පෙර පිළිතුරේ--track පැහැදිලි කර ඇති පරිදි පෙරනිමියෙන් එය සකසා ඇති නිසා FYI, git හි නව සංස්කරණ සඳහා තවදුරටත් අවශ්‍ය නොවේ .

33

පළමුව, ඔබ කළ යුත්තේ:

git fetch # ශාඛා නම ගැන ඔබ නොදන්නේ නම්

git fetch origin branch_name

දෙවනුව, ඔබට ඔබේ ප්‍රාදේශීයයට දුරස්ථ ශාඛාවක් පරීක්ෂා කළ හැකිය:

git checkout -b branch_name origin/branch_name

-b ඔබ තෝරාගත් දුරස්ථ ශාඛාවෙන් නිශ්චිත නාමයෙන් නව ශාඛාවක් සාදනු ඇත.


මට තේරෙන්නේ නැහැ -b. ඔබට "git checkout master" කළ හැකි නම් ඔබට "git checkout origin / test" කළ නොහැක්කේ ඇයි?
ජෝන් ලිට්ල්

-b නව ශාඛාවක් සඳහා ආරම්භය / ස්වාමියා
මොහිදීන් බින් මොහොමඩ්

28

මම පහත විධානය භාවිතා කරමි:

git checkout --track origin/other_remote_branch

13
ඔබ එය මේ ආකාරයෙන් භාවිතා කරන්නේ ඇයිද යන්න පැහැදිලි කරන්නේ නම් මෙම පිළිතුර වඩාත් ප්‍රයෝජනවත් වනු ඇත. එනම් යමෙකු '- ට්‍රැක්' සහ වෙනත් දේ භාවිතා කළ යුත්තේ ඇයි ...
මැට් ෆ්‍රීඩ්මන්

27

විධාන

git fetch --all
git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>

සමාන වේ

 git fetch --all

ඊළගට

 git checkout -b fixes_for_dev origin/development

දෙකම latest fixes_for_devසිට නිර්මාණය කරයිdevelopment


24

ශාඛාව originදුරස්ථව හැර වෙනත් දෙයක් මත තිබේ නම් මම පහත සඳහන් දේ කිරීමට කැමතියි:

$ git fetch
$ git checkout -b second/next upstream/next

මෙය ලොව පුරාවටම nextමත ශාඛා upstreamදුරස්ථ නමින් දේශීය ශාඛා වෙත second/next. ඒ කියන්නේ ඔබට දැනටමත් දේශීය ශාඛාවක් ඊළඟට නම් තිබේ නම් එය ගැටෙන්නේ නැත.

$ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next


18

මෙම පිළිතුරු කිසිවක් මට වැඩ කළේ නැත. මෙය ක්‍රියාත්මක විය:

git checkout -b feature/branch remotes/origin/feature/branch


1
ස්තූතියි. මම සම්පූර්ණ මාර්ගය (භාවිතා කිරීමට තිබුණේ නම් මම පුදුම වුණා remotes / සම්භවය / ලක්ෂණය / ශාඛා දී) මා දුටු gitකරන විට git branch -aආඥාවයි, නමුත් මම මම භාවිතා නිසා, තහවුරු කිරීම සඳහා නොවේ git checkout -b apps/FEATURE/branch origin/apps/FEATURE/branchඑය වැඩ කිරීමට පෙනී සිටියහ. පණිවිඩය:Branch 'apps/FEATURE/branch' set up to track remote branch 'apps/FEATURE/epicBranch' from 'origin'. Switched to a new branch 'apps/FEATURE/branch'
ක්‍රිස් 22

18

error: pathspec 'desired-branch' did not match any file(s) known to git.ඉහත යෝජනා සියල්ලම දැකීමේ තත්වයක මම හිර වී සිටියෙමි . මම git අනුවාදය 1.8.3.1 හි සිටිමි.

ඉතින් මෙය මට වැඩ කළා :

git fetch origin desired-branch
git checkout -b desired-branch FETCH_HEAD

පිටුපස ඇති පැහැදිලි කිරීම නම් දුරස්ථ ශාඛාව ලබා ගැනීමේදී එය FETCH_HEAD වෙත ලබා ගත් බව මම දුටුවෙමි.

$ git fetch origin desired-branch
From github.com:MYTEAM/my-repo
    * branch            desired-branch -> FETCH_HEAD

17

git checkoutදුරස්ථ ශාඛාවේ නම සමඟ සරලව ධාවනය කරන්න. Git ස්වයංක්‍රීයව දුරස්ථය නිරීක්ෂණය කරන දේශීය ශාඛාවක් නිර්මාණය කරයි:

git fetch
git checkout test

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

git checkout --track origin/test

හෝ

git checkout -b test origin/test

2.19 දී , Git විසින් checkout.defaultRemoteවින්‍යාසය ඉගෙන ගත් අතර , එවැනි අවිනිශ්චිතතාවයක් නිරාකරණය කිරීමේදී දුරස්ථව පෙරනිමියෙන් නියම කරයි.


16

git branch -rඑම ශාඛාවේ නම Git හි ප්‍රාදේශීය ශාඛා ලැයිස්තුවේ නොමැති නිසා වස්තුවේ නම අවලංගු බව පවසයි. ඔබේ ප්‍රාදේශීය ශාඛා ලැයිස්තුව ආරම්භයේ සිට යාවත්කාලීන කරන්න:

git remote update

ඉන්පසු ඔබේ දුරස්ථ ශාඛාව නැවත පරීක්ෂා කිරීමට උත්සාහ කරන්න.

මෙය මට වැඩ කළා.

මම විශ්වාස කරනවා git fetchඇතුලට එනවා කියලාසියලුම දුරස්ථ ශාඛා තුළට , එය මුල් පෝස්ටරයට අවශ්‍ය නොවීය.


2
FYI, git remote update සියලු දුරස්ථ ශාඛා ද ලබා ගනී .

13

එම git remote show <origin name> විධානය සියලු ශාඛා (එක්සත් ජාතීන්ගේ-දම්වැල් මත ධාවනය වන ශාඛා ද ඇතුළුව) ලැයිස්තුගත වනු ඇත. එවිට ඔබට ලබා ගත යුතු දුරස්ථ ශාඛා නාමය සොයාගත හැකිය.

උදාහරණයක්:

$ git remote show origin

දුරස්ථ ශාඛා ලබා ගැනීමට මෙම පියවර භාවිතා කරන්න:

git fetch <origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)

උදාහරණයක්:

$ git fetch origin test:test
$ git checkout test

2. හල්ස්කි අනුවාද 2.15.1 වැඩ නොකරන බවට පිළිතුරු දුන් නමුත් මම .git ගොනු බර ක්ලෝනය 1 ශාඛාවක් පමණක් අඩු කර ඇති අතර ඉතිහාසය --depth ධජය සමඟ පෙරහන් කරන්න. උදාහරණයක් ලෙස $ git clone -b release --single-branch --depth 5 https://github.com/user/repo.gitතොරතුරු නොකියන්න $ git remote show originමෙය සියලුම දුරස්ථ ශාඛා තනි ශාඛා ක්ලෝන ගබඩාවන් සමඟ ලැයිස්තුගත නොකරයි.
Qh0stM4N

10

දුරස්ථයෙන් ලබාගෙන ශාඛාව පරීක්ෂා කරන්න.

git fetch <remote_name> && git checkout <branch_name> 

උදා:

git fetch origin && git checkout feature / XYZ-1234-Add-alerts


9

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

කිසිවක් නොකරන git checkout පරීක්ෂණය

Does nothingසමාන නොවේ doesn't work, එබැවින් ඔබ ඔබේ පර්යන්තයේ 'git checkout test' ටයිප් කර enter යතුර එබූ විට කිසිදු පණිවිඩයක් නොපෙන්වන අතර කිසිදු දෝෂයක් සිදු නොවේ. මම හරිද?

පිළිතුර 'ඔව්' නම්, හේතුව ඔබට පැවසිය හැකිය.

හේතුව ඔබේ වැඩ ගසෙහි 'පරීක්ෂණය' නමින් ගොනුවක් (හෝ ෆෝල්ඩරයක්) තිබීමයි.

git checkout xxxවිග්‍රහ කරන විට ,

  1. Git xxxමුලදී ශාඛා නාමයක් ලෙස පෙනේ , නමුත් ටෙස්ට් නම් ශාඛාවක් නොමැත.
  2. එවිට Git සිතන්නේ xxxමාර්ගයක් ලෙස වන අතර වාසනාවකට (හෝ අවාසනාවකට මෙන්) ටෙස්ට් නම් ගොනුවක් තිබේ. එබැවින් ගොනුවේ git checkout xxxකිසියම් වෙනස් කිරීමක් ඉවතලන්න xxx.
  3. ගොනුවක් නම් xxxකර නොමැති නම් , xxxසමහර නීතිරීතිවලට අනුව නිර්මාණය කිරීමට Git උත්සාහ කරයි. එක් රීතියක් xxxනම් remotes/origin/xxxපවතින්නේ නම් නම් ශාඛාවක් නිර්මාණය කිරීමයි .

ස්තූතියි, දිගින් දිගටම උත්සාහ කරන්නේ ඇයි git කිසිවක් නොකරන්නේ කියා.
මයික් ආර්

8

අලුතින් සාදන ලද ශාඛා ලබා ගැනීම සඳහා

git fetch

වෙනත් ශාඛාවකට මාරුවීමට

git checkout BranchName

6

පහත දැක්වෙන Bash ස්ක්‍රිප්ට් සමඟ ඔබට සියලුම දුරස්ථ ශාඛා ලුහුබැඳීම ආරම්භ කළ හැකිය:

#!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`
  do git branch -f --track "$branch" "origin/$branch"
done

මෙන්න තනි පේළි අනුවාදයකි:

git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;

5

git checkout -b "Branch_name" [B යන්නෙන් අදහස් කරන්නේ දේශීය ශාඛාවක් සාදන්න]

git branch --all

git checkout -b "ඔබේ ශාඛාවේ නම"

git ශාඛාව

ප්‍රධාන ශාඛාවේ සිට dev ශාඛාව දක්වා සාර්ථකව පිටවීම

රූප විස්තරය මෙහි ඇතුළත් කරන්න


git checkout -b "Branch_name" [B යන්නෙන් අදහස් කරන්නේ දේශීය ශාඛාවක් සාදන්න]
කේෂව් ජෙරා

3

සියලුම දුරස්ථ ශාඛා ලබා ගැනීමට මෙය භාවිතා කරන්න:

git fetch --all

ඉන්පසු ශාඛාවට පිවිසෙන්න:

git checkout test

2

fetchඔබගේ සියලු දුරස්ථය අදින්න භාවිතා කරන්න

   git fetch --all

දුරස්ථ ශාඛා ලැයිස්තුගත කිරීම සඳහා:

   git branch -r

ඔබේ සියලුම ශාඛා ලැයිස්තුගත කිරීම සඳහා

   git branch -l
   >>outpots like-
     * develop
       test
       master

ශාඛාවක් පරීක්ෂා කිරීමට / වෙනස් කිරීමට

   git checkout master

උත්සාහ කළ git branch -lඅතර දුරස්ථ ශාඛාවක් නොපෙන්වයි.
දිමිත්‍රි සයිට්සෙව්

use git pull --allorgit fetch --all
නසීර් ඛාන්

ඔව්, ඊට පසු, git branch -l තවමත් පෙන්වන්නේ දේශීය ශාඛා පමණි . එය හරියටම git branchනොමැතිව ක්‍රියා කරන බව පෙනේ -l, එබැවින් එයට හේතුව -lකුමක්ද?
දිමිත්‍රි සයිට්සෙව්

ඔබේ පිළිතුර ප්‍රශ්නයට පිළිතුරු සපයන්නේ නැත - masterදුරස්ථ ශාඛාවක් නොවේ.
දිමිත්‍රි සයිට්සෙව්

1
-lලැයිස්තුව සඳහා ධජය. ඔබට භාවිතා කළ හැකි --list
නසීර් ඛාන්

2

අපට නම්, remote.origin.fetchවින්‍යාසය ගැටළුවක් ඇති කළ බව පෙනේ . එමනිසා, අපට වෙනත් දුරස්ථ ශාඛා දැකිය නොහැකි විය master, එබැවින් git fetch [--all]උදව් නොකළේය. වත් git checkout mybranchහෝgit checkout -b mybranch --track origin/mybranch එය නිසැකව දුරස්ථ දී වුව ද, කටයුතු කළා.

පෙර වින්‍යාසය ලබා masterගැනීමට පමණක් අවසර දී ඇත:

$ git config --list | grep fetch
remote.origin.fetch=+refs/heads/master:refs/remotes/origin/master

භාවිතයෙන් එය නිවැරදි කර *නව තොරතුරු මුල සිටම ලබා ගන්න:

$ git config remote.origin.fetch '+refs/heads/*:refs/remotes/origin/*'

$ git fetch
...
 * [new branch] ...
...

දැන් අපට git checkoutදුරස්ථ ශාඛාව දේශීයව කළ හැකිය.

අපගේ වින්‍යාසය තුළ මෙම වින්‍යාසය අවසන් වූයේ කෙසේදැයි අදහසක් නැත.


1
මම තනි ශාඛාවක් ක්ලෝන කළ බැවින් මෙය මට
විසඳුණි

2

දුරස්ථ ශාඛා නාමය විශේෂ ලක්ෂණ වලින් ආරම්භ වන්නේ නම්, ඔබට එය වටා තනි උපුටා දැක්වීම් චෙක්පට් විධානය භාවිතා කළ යුතුය, එසේ නොමැතිනම් ඔබ කතා කරන්නේ කුමන ශාඛාව ගැනදැයි git නොදනී.

උදාහරණයක් ලෙස, දුරස්ථ ශාඛාවක් නම් කිරීමට මම උත්සාහ කළ #9773නමුත් පහත පින්තූරයේ පෙන්වා ඇති පරිදි විධානය නිසි ලෙස ක්‍රියාත්මක නොවීය.

රූප විස්තරය මෙහි ඇතුළත් කරන්න

තියුණු සංකේතය (#) එය සමග කරන්න දෙයක් තියෙනවා හැකි නම් යම් හේතුවක් නිසා මම කල්පනා, පසුව මම වගේ තනි මිල කැඳවීම්, සමග ශාඛාව වටා උත්සාහ '#9773'කිරීම වඩා rathen #9773, සහ වාසනාවකට එය හොඳින් වැඩ කළා.

$ git checkout -b '#9773' origin/'#9773'

බොහෝ යුනික්ස් කවච වල #චරිතය අදහස් සඳහා භාවිතා කරයි, එබැවින් #කැමැත්තෙන් පසුව කිසිවක් නොසලකා හරිනු ඇත. මෙය ෂෙල් දෙයක් මිස git සඳහා විශේෂිත දෙයක් නොවේ. ඊට පෙර බැක්ස්ලෑෂ් එකක මිල ගණන් භාවිතා කිරීම #ප්‍රමාණවත් විය යුතුය.
පාවුලෝ ස්කාර්ඩින්

1

හිස් ෆෝල්ඩරයක් සෑදීමට කරුණාකර විධානය අනුගමනය කරන්න. එය ඇතුළත් කර මෙම විධානය භාවිතා කරන්න:

saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url
Cloning into 'iPhoneV1'...
remote: Counting objects: 34230, done.
remote: Compressing objects: 100% (24028/24028), done.
remote: Total 34230 (delta 22212), reused 15340 (delta 9324)
Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done.
Resolving deltas: 100% (22212/22212), done.
Checking connectivity... done.
saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/
saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery
Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from origin.
Switched to a new branch '1_4_0_content_discovery'
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.