Git දුරස්ථ ශාඛාව ලබා ගන්න


2277

මගේ සගයා සහ මම එකම ගබඩාවක වැඩ කරමින් සිටිමු. අපි එය ශාඛා දෙකකට බෙදුනෙමු, එක් එක් තාක්‍ෂණිකව විවිධ ව්‍යාපෘති සඳහා, නමුත් ඒවාට සමානකම් ඇත, එබැවින් අපට සමහර විට * masterසිට * වෙත ආපසු යාමට අවශ්‍ය වනු ඇත branch.

කෙසේ වෙතත්, මට තිබේ branch. මගේ සගයාට එම ශාඛාව විශේෂයෙන් ඇද ගන්නේ කෙසේද?

git cloneනිධිය, මම ඔවුන් මගේ අවසන් මත තල්ලුව පසු unfuddle ජීවත් බලන්න පුළුවන් නමුත් ඔහු වෙනුවෙන් දේශීය වශයෙන් ශාඛා නිර්මාණය කිරීමට බවක් පෙනෙන්නට නැත.

එසේම, මම මුලින් ශාඛාව සෑදූ විට, මම එය කළෙමි -b checkout. එයින් විශාල වෙනසක් සිදු වේද?

$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/discover
origin/master

$ git fetch origin discover
$ git checkout discover

මේවා මා ධාවනය කළ විධානයන් ය. නමුත් එය නියත වශයෙන්ම ක්‍රියාත්මක නොවේ.

මට අවශ්‍ය වන්නේ එම ශාඛාව පරීක්ෂා කර බලා විවිධ සහයෝගිතාකරුවන්ගෙන් හෝ වැඩපොළවල් වලින් සිදුවන ශාඛා වෙනස්වීම් තල්ලු කර නැවත කැප කිරීමයි.



34
මම භාවිතා කළේ git fetch --allgit branchgit checkout nameofnewbranch
:,

ඔබේ ප්රශ්නය හොඳින් සලකලා බලන්න /programming/1072261/push-and-pull-branches-in-git/47780374#47780374
Rizo


7
git fetch origin discover:discover && git checkout discover
ගයාන් වීරකුට්ටි

Answers:


3080

දුරස්ථ ශාඛාවක් නිරීක්ෂණය කරන දේශීය ශාඛාවක් ඔබ විසින් නිර්මාණය කළ යුතුය. පහත දැක්වෙන විධානය මඟින් දුරස්ථ ශාඛා සම්භවය / daves_branch නිරීක්ෂණය කරමින් daves_branch නමින් දේශීය ශාඛාවක් නිර්මාණය කරනු ඇත . ඔබ ඔබේ වෙනස්කම් තල්ලු කරන විට දුරස්ථ ශාඛාව යාවත්කාලීන වේ.

Git හි නවතම අනුවාද සඳහා:

git checkout --track origin/daves_branch

--trackසඳහා වන සරල යෙදුමකි git checkout -b [branch] [remotename]/[branch][remotename] කොහෙද සම්භවය මෙම නඩුවේ හා [ශාඛා] දෙවරක් එම ය daves_branch මෙම නඩුවේ.

Git 1.5.6.5 සඳහා ඔබට මෙය අවශ්‍ය විය:

git checkout --track -b daves_branch origin/daves_branch

Git 1.7.2.3 සහ ඊට වැඩි නම්, මෙය ප්‍රමාණවත්ය (එය මීට පෙර ආරම්භ වන්නට ඇත, නමුත් මෙය මට ඉක්මනින් සොයාගත හැකි මුල්ම තහවුරු කිරීම වේ):

git checkout daves_branch

මෑත කාලීන Git අනුවාදයන් සමඟ, මෙම විධානය මඟින් දේශීය ශාඛාවක් නිර්මාණය නොවන අතර ඔබව 'වෙන්වූ HEAD' තත්වයට පත් කරනු ඇත. ඔබට දේශීය ශාඛාවක් අවශ්‍ය නම්, --trackවිකල්පය භාවිතා කරන්න .

සම්පූර්ණ විස්තර මෙහි ඇත: 3.5 Git Branching - දුරස්ථ ශාඛා, ලුහුබැඳීමේ ශාඛා


134
දුරස්ථ යොමු කිරීම් සමඟ ඔබේ ගබඩාව යාවත්කාලීන කර ඇති බව තහවුරු කර ගැනීම සඳහා "git fetch" සහ "git checkout --track සම්භවය / සොයා ගැනීම" ප්‍රමාණවත් වේ. එවිට ඔබට එම ශාඛාවට කැපවිය හැකි අතර දුරස්ථය ඔබගේ වෙනස්කම් සමඟ සමමුහුර්ත කිරීමට "git push" කරන්න.
ralphtheninja

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

42
Git 1.5.6.5 වෙනුවට මේ සඳහා අවශ්‍ය බව පෙනේ: git checkout --track -b origin / daves_branch
Charlie

35
මෙය මට අවුල් ජාලයක් විය, එය දේශීය ශාඛාවක් සම්භවය / <branch> නිර්මාණය කළ අතර එය දැන් දුරස්ථ ශාඛා සම්භවය / <branch> ට නොපැහැදිලි ය. පිස්සු දේශීය ශාඛාවෙන් මිදෙන්නේ කෙසේදැයි මම නොදනිමි!
ඇලන් මුවර්

24
ඔබ ප්‍රාදේශීය ශාඛා නාමය පැහැදිලිව එකතු කළ යුතුය, එසේ නොමැතිනම් git ඉහත සඳහන් කළ පරිදි @AlanMoore සහ @ derekmx271 පූර්ණ ශාඛා මාවත සහිත නව ප්‍රාදේශීය ශාඛාවක් නිර්මාණය කරයි:git checkout -b --track daves_branch origin/daves_branch
මයික් ස්කොට්

967

මම fetchඅනුගමනය කළේ checkout...

git fetch <remote> <rbranch>:<lbranch>
git checkout <lbranch>

... <rbranch>දුරස්ථ ශාඛාව හෝ ප්‍රභව ref යනු කොහේද සහ <lbranch>එය තවමත් ඔබට නොපවතින දේශීය ශාඛාවක් හෝ ගමනාන්තයක් වන අතර එය ඔබට නිරීක්ෂණය කිරීමට අවශ්‍ය වන අතර දුරස්ථ ශාඛාව හෝ ප්‍රභව ref ලෙස නම් කිරීමට ඔබට අවශ්‍ය විය හැකිය. පැහැදිලි කිරීමේ විකල්ප යටතේ මෙය පැහැදිලි කෙරේ <refspec>.

Git ඉතා දක්ෂ බැවින් දුරස්ථ ශාඛාවේ පළමු අකුරු කිහිපයෙන් පසුව මම ටැබ් කළහොත් ස්වයංක්‍රීයව පළමු විධානය සම්පූර්ණ කරයි . එනම්, මට ප්‍රාදේශීය ශාඛාව නම් කිරීමට පවා අවශ්‍ය නැත, Git ස්වයංක්‍රීයව මා සඳහා දුරස්ථ ශාඛාවේ නම පිටපත් කරයි. ස්තූතියි Git!

ද ලෙස මෙම සමාන Stack පමාණය පශ්චාත් පිළිතුර දර්ශන, ඔබ තුළ ඇති ශාඛා නම් නැති නම් fetch, ඔබ තවමත් එය ඔබ භාවිතා, එය පරීක්ෂා කරන විට නිර්මාණය කළ හැකි -bධජය. එනම්, git fetch <remote> <branch> පසුව git checkout -b <branch> <remote>/<branch>මගේ ආරම්භක පිළිතුරට සමාන වේ. හා සාක්ෂි, ඔබේ නිධිය නම් එකම එක දුරස්ථ, එසේ නම් ඔබ කරන්න පුළුවන් git checkout <branch>පසු fetchසහ එය ඔබ වෙනුවෙන් දේශීය ශාඛා නිර්මාණය කරනු ඇත. උදාහරණයක් වශයෙන්, ඔබ ගබඩාවක් ක්ලෝන කළ අතර දුරස්ථයෙන් අමතර ශාඛා පරීක්ෂා කිරීමට අවශ්‍යය.

මම විශ්වාස කරන්නේ සමහර ලියකියවිලි fetchවාචිකව පිටපත් කර ඇති බවයි pull. විශේෂයෙන් පිළිබඳ කොටස <refspec>තුළ විකල්ප හා සමාන වේ. කෙසේ වෙතත්, මම ඒක විශ්වාස කරන්නේ නෑ fetchඑන්ට mergeඔබ හිස් බඩවැලේ ගමනාන්තය පැත්තේ ඉවත් නම්, එසේ බව, fetch කිසිවක් කළ යුත්තේ .

සටහන: git fetch <remote> <refspec>සඳහා කෙටි git fetch <remote> <refspec>:වන නිසා කිසිවක් නොකරන බව, නමුත් git fetch <remote> <tag>සමාන වේ git fetch <remote> <tag>:<tag>දුරස්ථ පිටපත් යුතු <tag>එක්කෝ කොබැඳි නැත්නම් ස්ථානීකව නොපවතියි.

මෙය දුරස්ථ ශාඛාවක් දේශීයව පිටපත් කිරීමට අවශ්‍ය නම් පමණක් මෙය ප්‍රයෝජනවත් යැයි මම සිතමි, නමුත් අවශ්‍යයෙන්ම එය වහාම පරීක්ෂා නොකරන්න. එසේ නොමැතිනම්, මම දැන් පිළිගත් පිළිතුර භාවිතා කරමි , එය පිටවීමේ විස්තරයේ පළමු කොටසේ විස්තරාත්මකව විස්තර කර ඇති අතර පසුව එය පැහැදිලි කිරීමක් යටතේ ඇති විකල්ප අංශයෙහි විස්තර කර --trackඇත. හොඳයි ... එක් ලයිනර් වර්ග කරන්න, මන්ද ඔබට තවමත්git fetch <remote> පළමුවෙන් ධාවනය කළ යුතු බැවිනි.

FYI: <refspecs>(මූලාශ්‍රය: ගමනාන්තය) අනුපිළිවෙල දුරස්ථ ශාඛා මකා දැමීමේ විකාර පෙර Git 1.7 ක්‍රමය පැහැදිලි කරයි . එනම්, කිසිවක් ගමනාන්තයට යොමු නොකරන්න.


8
ඔබ සිතන්නේ Git ස්වයං සම්පුර්ණ කිරීම සැකසුම බවයි. code-worrier.com/blog/autocomplete-git
antonagestam

2
දුරස්ථ කේතය ප්‍රාදේශීය ශාඛාවකට ඇතුළත් කිරීමට මෙය මට ප්‍රයෝජනවත් විය. කෙසේ වෙතත් දුරස්ථ ශාඛාව සොයා ගැනීමට එය මගේ ප්‍රාදේශීය ශාඛාවට ලැබුණේ නැත.
අක්නෝසිස්

1
කිසියම් හේතුවක් නිසා, git fetch remote branchමා වෙනුවෙන් ශාඛා ශීර්ෂයක් එක් කළේ නැත, සියලු යොමු කිරීම් ලබාගෙන ඇතත්, එබැවින් පිළිගත් පිළිතුරේ පියවර අනුගමනය කිරීමට උත්සාහ කළ විට, එම දෝෂය මට ලැබුණි pathspec did not match any file(s) known to git., නමුත් rbranch:lbranchප්‍රවේශය ක්‍රියාත්මක විය. සිත්ගන්නා කරුණ නම්, එය ආදේශක කාඩ්පතක් ( rbranch*) මෙන් එකම උපසර්ගයකින් ආරම්භ කළ සියලුම ටැගයන් ලබා ගැනීමයි .
haridsv

3
Nit: git ස්වයං සම්පුර්ණ කිරීම සිදු නොකරයි, එය කරන්නේ බාෂ් කවචයයි.
නීතිගත කරන්න

2
FWIW, මම හිතන්නේ මෙම පිළිතුර සහ පිළිගත් පිළිතුර අතර වෙනස වන්නේ මෙය ඔබට fetchවිධානය කිරීමට පවසන බවයි . එය පිළිගත් පිළිතුර අර්ථවත් වුවද OP ඔහු දැනටමත් ලබාගෙන ඇති බව සටහන් කරයි. අවම වශයෙන් මා මුහුණ දුන් ගැටලුව එයයි.
tenor528

377

ඔබ නව දුරස්ථ ශාඛාවක් "පරීක්ෂා කර බැලීමට" උත්සාහ කරන්නේ නම් (එය පවතින්නේ දුරස්ථව පමණි, නමුත් දේශීයව නොවේ), ඔබට අවශ්‍ය දේ මෙන්න:

git fetch origin
git checkout --track origin/<remote_branch_name>

මෙය ඔබට මූලාරම්භයෙන් ලබා ගැනීමට අවශ්‍ය යැයි උපකල්පනය කරයි . එසේ නොවේ නම්, ඔබේ දුරස්ථ නාමයෙන් සම්භවය ප්‍රතිස්ථාපනය කරන්න .


1
මා වෙනුවෙන් වැඩ කළ මම නිවැරදි දුරස්ථ ශාඛාව ලබාගෙන නොතිබූ නිසා පිළිගත් පිළිතුර ව්‍යාකූල පණිවිඩයක් සමඟ මා අසමත් විය. +1
නේතන් හින්චේ

සාමාන්‍යයෙන්, මම git fetch භාවිතා කරමි, නමුත් කාරණය වන්නේ git fetch සහ git fetch සම්භවය අතර ඇති වෙනස කුමක්ද?
පිං වූ

IngPingWoo ඔබට ලබා ගැනීමට අවශ්‍ය ශාඛාව මූලාරම්භයේ දුරස්ථව පිහිටා ඇති බව උපකල්පනය කිරීම git fetchසහ දෙකම git fetch remoteඑකම දේ කරයි. ඔබට දුරස්ථ ස්ථානයකින් ලබා ගැනීමට අවශ්‍ය නම් origin, ඔබට එය භාවිතා කළ හැකිය git fetch <other_remote_name>. මෙම තත්වය අතිශයින්ම අසාමාන්‍යය, සම්පූර්ණත්වය සඳහා මෙහි සඳහන් කර ඇත.
paneer_tikka

1
මම මේ ඔක්කොම විසඳුම් අත්හදා බලමින් පළාත් සභාවට එරෙහිව මගේ හිසට පහර දුන්නා. මගේ ශාඛා නාමයේ අක්ෂර වින්‍යාසයක් තිබුණා, මෝඩ හෙහෙ.
දේව් යෙගෝ

128

දේශීයව නොව දුරස්ථව පවතින මගේ ශාඛාව පරීක්ෂා කිරීම සඳහා - මෙය මට වැඩ කළේය:

git fetch --all
git checkout myBranch

මට මෙම පණිවිඩය ලැබුණි:

Branch myBranch set up to track remote branch myBranch from origin
Switched to a new branch 'myBranch'

1
වෙනත් වචන වලින් කිවහොත් ඔබට ලිවිය යුතු -tනොවේද?
ඇන්ඩ rew සැමුවෙල්සන්

4
මම හිතන්නේ මේ පිළිතුරේ දෝෂයක් තියෙනවා. මම මුලින් විධානය නොමැතිව කළ අතර එකම නමින් දේශීය ශාඛාවක් නොතිබූ නිසා -tලැබුණි 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.. නිවැරදි කිරීමට මට නැවත ධාවනය -tකිරීමට සිදු විය.
stanri

1
මෙය මට හොඳින් ක්‍රියාත්මක විය - මගේ සගයා නව දුරස්ථ ශාඛාවක් මගේ දේශීය ගබඩාවට එක් කිරීමට අවශ්‍ය කර ඇත. මම දිගින් දිගටම ගෙන ආ නමුත් නව ශාඛාව දේශීයව දිස් වූයේ නැත. checkoutඑය නිර්මාණය කිරීම සඳහා මට එය සඳහා දිව යා හැකි බව වටහා ගත්තේ නැත . ස්තූතියි!
skwidbreth

2
git අනුවාද මත රඳා පවතී. නවතම අනුවාදය, මෙහි වෙනත් තැනක සඳහන් කර ඇති පරිදි, අවශ්‍ය වන්නේ git checkout <මූලාරම්භයේ ශාඛාවේ නම> පමණි. දක්වා අවුල් ඔවුන් ඉතසිතින් ඇත - දුරස්ථ ප්රාදේශීය ශාඛා එදිරිව එකම-නාමය දේශීය සමග ප්රවේශම් වන්න
leRobot

--allඑය කිසි විටෙකත් හොඳ අදහසක් නොවේ, මන්ද එය සෑම ශාඛාවකම සෑම ගොනුවක්ම බාගත කරනු ඇත. එය වැඩි කාලයක් හා ඉඩක් ගතවනු ඇත. එය ශාඛා නම සමඟ විශේෂ විය යුතු අතර ඒ ගැන දන්නේ වඩා හොඳය මෙම
මී පැණි

55

සියලුම දුරස්ථ හා ඒවායේ ශාඛා බැලීමට git branch -a(දේශීය හා දුරස්ථ ශාඛා දෙකම) හෝ git branch -r(දුරස්ථ ශාඛා පමණක් ) භාවිතා කරන්න . එවිට ඔබට git checkout -t remotes/repo/branchදුරස්ථයට ගොස් දේශීය ශාඛාවක් සෑදිය හැකිය.

තවද එහි ඇති GIT-LS-දුරස්ථ දුරස්ථ සඳහා සියලු ආශ්රේයන් සහ ටැග් බලන්න විධානය.


git checkout remotes/repo/branchgit checkout දුරස්ථ repo එකක් නොව pathspec එකක් සොයයි.
එරින්

1
ඔව්, දුරස්ථ ගබඩාවේ ශාඛාවක් පරීක්ෂා කර බැලීමට පවා හැකිද? නිසැකවම (හෝ සමහර විට එය එතරම් පැහැදිලිව පෙනෙන්නට නොතිබුණි), දුරස්ථයන් මුලින්ම ලබා ගන්නේ එවිට ඒවා දේශීයව ඔබ සතුව ඇත. Git පොතේ ඒවා ගැන හොඳ කොටසක් ඇත: git-scm.com/book/en/Git-Branching-Remote-Branches
ඩැනියෙල් ලී

45

මාතෘකාව සහ ප්‍රශ්නය ව්‍යාකූල ය:

  • Git දුරස්ථ ශාඛාව ලබා ගන්න
  • මගේ සගයා එම ශාඛාව විශේෂයෙන් අදින්නේ කෙසේද?

ප්‍රශ්නය නම්, මා සමඟ වැඩ කිරීමට දුරස්ථ ශාඛාවක් ලබා ගන්නේ කෙසේද, නැතහොත් දුරස්ථ ශාඛාවක් පරීක්ෂා කර ගන්නේ කෙසේද? , සරල විසඳුමක් නම්:

Git (> = 1.6.6) සමඟ ඔබට භාවිතා කළ හැකිය:

git checkout <branch_name>

දේශීය <branch_name>සොයාගත නොහැකි නම්, නමුත් ගැලපෙන නමක් සහිත හරියටම එක් දුරස්ථයක ලුහුබැඳීමේ ශාඛාවක් තිබේ නම්, එය සමාන ලෙස සලකන්න:

git checkout -b <branch_name> --track <remote>/<branch_name>

Git පිරික්සුම සඳහා ප්‍රලේඛනය බලන්න

ඔබේ මිතුරා සඳහා:

$ git checkout discover
Branch discover set up to track remote branch discover
Switched to a new branch 'discover'

ස්තූතියි ගුයිලූම්! මම මේ විධානය භාවිතා කර මගේ නිශ්චිත නඩුව නිරූපණය කිරීම සඳහා ඒ ගැන ලිපියක් ලිව්වෙමි
ලෙනියෙල් මැකෆෙරි

<! - git checkout <remote-branch-name> -> බලාපොරොත්තු වූ පරිදි ක්‍රියා කරයි, ස්තූතියි ගුයිලූම්!
සචිදානන්ද නායික්

39

එය කිරීමට පහසුම ක්‍රමය, අවම වශයෙන් මට:

git fetch origin <branchName> # Will fetch the branch locally
git checkout <branchName> # To move to that branch

1
වෙනත් ශාඛා ගෙන එන්නේ නැත
බෙන්ජමින් හරෙල්

7
En බෙන්ජමින් හරෙල්ගේ ප්‍රශ්නය පවසන්නේ “දුරස්ථ ශාඛාවක් ලබා ගන්න” යන්නයි. එය අනුගමනය කිරීම ඔබට ප්‍රයෝජනවත්
ජේම්ස් රොචබ්රුන්

2
මෙම fetchවිධානය භාවිතා කිරීමෙන් පසු අවශ්‍ය ශාඛාව දේශීය යන්ත්‍රයෙන් ලබා ගත හැකිය. git checkout -b 'your_branch' origin/'remote branch'මෙම ශාඛාව පරීක්ෂා කිරීම අවශ්‍ය වේ.
අභිජීත්

30

භාවිත:

git checkout -b serverfix origin/serverfix

මෙය Git --trackකෙටිමං සපයන පොදු ප්‍රමාණවත් මෙහෙයුමකි :

git checkout --track origin/serverfix

ඇත්ත වශයෙන්ම, මෙය කොතරම් සුලභද යත්, එම කෙටිමඟ සඳහා කෙටිමඟක් පවා තිබේ. ඔබ ඉවත් වීමට උත්සාහ කරන ශාඛා නාමය (අ) නොපවතින අතර (ආ) එක් දුරස්ථයක පමණක් නමට හරියටම ගැලපෙන්නේ නම්, Git ඔබ වෙනුවෙන් ලුහුබැඳීමේ ශාඛාවක් නිර්මාණය කරයි:

git checkout serverfix

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

git checkout -b sf origin/serverfix

දැන්, ඔබේ ප්‍රාදේශීය ශාඛාව sfස්වයංක්‍රීයව ඉවත් වේ origin/serverfix.

මූලාශ්‍රය: ස්කොට් චකොන් සහ බෙන් ස්ට්‍රෝබ් විසින් රචිත Pro Git, 2 වන සංස්කරණය (කියවීමේ හැකියාව සඳහා කැපීම)


එම කෙටිමං පාඩමක් විය
ඉසෙඩ් කුල්ලා


20

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

git fetch origin branchName
git checkout branchName

මෙය දැනටමත් දුරස්ථව පවතීදැයි ඔබට දැක ගත හැකිය:

git branch -r

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


2
මෙම ප්‍රශ්නයට වැඩි දියුණුවක් නොමැති වන්නේ කෙසේද? මම වැරදියි, නමුත් මෙය නිසැකවම උපක්‍රමයක් ලෙස පෙනෙන්නට තිබුණි, දුරස්ථව සිට මා සතුව නොතිබූ ශාඛාවක් ලබා ගත්තේය ...
නිකලස් පීටර්සන්

16

මට උදව් කළේ එයයි

1) පවතින සියලුම දුරස්ථ ශාඛා බැලීම සඳහා (උදා: දුරස්ථ ශාඛා-නම ')

git branch -r

2) දුරස්ථ ශාඛා නාමයක් භාවිතා කරමින් දේශීය ශාඛාවක් සාදන්න

git fetch && git checkout 'remote-branch-name'

1
git pushවෙනත් තර්කයකින් තොරව ඔබ විධානය ක්‍රියාත්මක කරන විට කුමක් සිදුවේද ? නම් දේශීය ශාඛා වේ remote-branch-name(කිරීමට සොයා) දුරස්ථ ශාඛා නම් සමග ස්වයංක්රීයව සම්බන්ධ origin/remote-branch-name. නැතහොත් ඔබට ධාවනය කිරීමට git push -u origin remote-branch-name
අවශ්‍යද

1
මෙය HEAD වෙන් කළ තත්වයට හේතු වනු ඇත
Akin Hwan

15

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

git fetch && git checkout the-branch-name


13

මම ටයිප් කළා

git checkout <branch_name>

ලැබුණා

Branch <branch_name> set up to track remote branch <branch_name> from origin.
Switched to a new branch '<branch_name>'

git checkout ප්‍රලේඛනයෙන්: <branch_name> සොයාගත නොහැකි නමුත් ගැලපෙන නමක් සහිත හරියටම එක් දුරස්ථයක ලුහුබැඳීමේ ශාඛාවක් තිබේ නම්, ඊට සමාන ලෙස සලකන්න:git checkout -b <branch_name> --track <remote>/<branch_name>
Guillaume Vincent

11

සමහර අවස්ථාවලදී ඔබෙන් ඉල්ලා සිටින්නේ ප්‍රධාන ශාඛාව සමඟ සම්බන්ධ නොවී දුරස්ථ ශාඛාව පමණක් වැඩ කරන්න (මාගෙන් ඉල්ලා සිටි පරිදි). එබැවින් ඔබට අවශ්‍ය වන්නේ දුරස්ථ ශාඛාව පමණි.

එබැවින් දුරස්ථ ශාඛාව ක්ලෝන කිරීමට (ස්වාමියා නොමැතිව), මෙය කරන්න

git clone url --branch remote_branch_name

එහිදී, remote_branch_name යනු දුරස්ථ ශාඛාවේ නමයි

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

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git --branch v3.15

දුරස්ථ ශාඛාවේ නම සමඟ දුරස්ථ ශාඛාව ඔබේ ප්‍රාදේශීය ශාඛාවට ක්ලෝන කිරීමට මෙය සහතික කරයි.

දැන් ඔබ ඔබේ කේතය හා තල්ලුව සිදු කරන්නේ නම්, කේතය එම ශාඛාවට පමණක් ඉදිරිපත් කරනු ලැබේ.


ආශ්‍රිත: මම Git හි තනි ශාඛාවක් ක්ලෝන කරන්නේ කෙසේද? - "git 1.7.10 (2012 අප්‍රියෙල්) ඇත්ත වශයෙන්ම ඔබට එක් ශාඛාවක් පමණක් ක්ලෝන කිරීමට ඉඩ දෙයි:"
පීටර් මෝර්ටෙන්සන්

11

[ඉක්මන් පිළිතුර]

විකල්ප බොහොමයක් ඇත, මගේ ප්‍රියතම ඒවා නම්:

- විකල්ප 1:

git fetch --all
git checkout YourBranch

මෙම විකල්පය දුරස්ථව පවතින නමුත් ඔබේ දේශීය නොවන ශාඛාවක් භාවිතා කිරීම.

- විකල්ප 2:

git checkout -b 'YourBranch' origin/'YourRemote'

බොහෝ විට මෙය සරලම ක්‍රමයයි.


9

ඔබගේ දුරස්ථය git@xyz.git යැයි කියමු, ඔබට එහි අහඹු_ ශාඛා ශාඛාව අවශ්‍යය. ක්‍රියාවලිය පහත පරිදි විය යුතුය:

  1. පළමුවෙන් ඔබේ දුරස්ථ ලැයිස්තුව පරීක්ෂා කරන්න

    git remote -v

  2. ඉහත විධානයේ ප්‍රතිදානයේ ඔබට git@xyz.git දුරස්ථයක් නොමැති නම්, ඔබ එය එකතු කරනු ඇත

    git remote add xyz git@xyz.git

  3. දැන් ඔබට එම දුරස්ථයේ අන්තර්ගතය ලබා ගත හැකිය

    git fetch xyz

  4. දැන් එම දුරස්ථයේ ශාඛාව පරීක්ෂා කරන්න

    git checkout -b my_copy_random_branch xyz/random_branch

  5. විසින් ශාඛා ලැයිස්තුව පරීක්ෂා කරන්න

    git branch -a

දේශීය ශාඛාව my_copy_random_branch ඔබේ දුරස්ථයේ අහඹු_ ශාඛා ශාඛාව නිරීක්ෂණය කරයි.



7

git fetch && git checkout <your friend's branch name> උපක්‍රමය කළ යුතුයි


7

සියලුම දුරස්ථ ශාඛා ඔබේ ප්‍රදේශයට ලබා ගැනීම සඳහා ඔබට එක්-ලයිනර් විධානයක් ලබා දීමට සහ අලුතින් සාදන ලද දේශීය ශාඛාවට මාරුවීමට මට අවශ්‍යය:

git fetch && git checkout discover

ඉහත විධානය ක්‍රියාත්මක කිරීමෙන් පසු ඔබට පහත පණිවිඩය ලැබෙනු ඇත:

Switched to a new branch 'discover'
Branch discover set up to track remote branch discover from origin.

පළමු පේළියේ නව ශාඛාවකට මාරු වූ බව සඳහන් වේ - ඇයි අලුත්? එය දැනටමත් දුරස්ථව පවතී!

නමුත් ඇත්ත වශයෙන්ම ඔබ එය දේශීයව ද නිර්මාණය කළ යුතුය. ශාඛාව දුරස්ථ දර්ශකයෙන් ලබා ගෙන ඔබ වෙනුවෙන් දේශීයව නිර්මාණය කර ඇත.

මෙන්න discoverඔබේ ගබඩාවේ දුරස්ථ ශාඛාවෙන් සාදන ලද නව ශාඛාවක් discover.

නමුත් දෙවන පේළිය අපට පවසන පළමු එකට වඩා වැඩි තොරතුරු සපයයි:

අපගේ ශාඛාව එකම නමකින් දුරස්ථ ශාඛාව නිරීක්ෂණය කිරීම සඳහා පිහිටුවා ඇත .

git fetch සියලුම ශාඛා දේශීයව ලබා ගත්තද . නමුත් ඔබ git branchඑය පසුපස දුවන්නේ නම්, ඔබට පෙනෙන්නේ masterදේශීය ශාඛාවක් පමණි . මන්ද ?

ඔබ දුරස්ථව ඇති සෑම ශාඛාවක් සඳහාම එය දේශීයව ද නිර්මාණය කළ යුතු බැවිනි git checkout <branchname> ඉහත උදාහරණයේ දී අප විසින් සිදු කර ඇති ආකාරයට කළ යුතු බැවිනි.

git checkoutවිධානය ක්‍රියාත්මක කිරීමෙන් පසු ඔබට ධාවනය කළ හැකි git branchඅතර දැන් ඔබට ශාඛාව දෙකම දැකිය හැකිය:

  1. මාස්ටර් සහ 2. ඔබේ දේශීය ලැයිස්තුවෙන් සොයා ගන්න.

7

සියලුම දුරස්ථ ශාඛා ලබා ගැනීමට ඔබ කැමති නම්, කරුණාකර ටයිප් කරන්න:

git fetch --all

5

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

git pull origin your_branch_name

2
Rizo, git pull origin branch_name හොඳම විසඳුම විය යුතුය. මෙය විසඳුමක් ලෙස පළ කළ එකම පුද්ගලයා ඔබ වන අතර එය මට වැඩ කළේය. මෙය ක්‍රියාත්මක වන්නේ එය ඔබේ ශාඛාව ප්‍රධාන ශාඛාව සමඟ යාවත්කාලීන කරන බැවිනි. සරල හා සංකීර්ණ නොවේ.
ඉයන් පෝස්ටන් ෆ්‍රේමර්

3
මෙහි ඇති ගැටළුව නම්, එම දුරස්ථ ශාඛාව දුරස්ථ නොවන ඔබේ වර්තමාන ශාඛාව සමඟ ඒකාබද්ධ කිරීමට උත්සාහ කිරීමයි (එය ඔබේ දේශීය
ගබඩාවට

මෙය ඔබගේ වර්තමාන ශාඛාවට ඒකාබද්ධ වේ.
Eem Je

5

ඔබ සතුව ක්ලෝන කරන ලද ගබඩාවක් තිබේ නම් --depth 1ලැයිස්තුගත කර ඇති බොහෝ විධාන ක්‍රියා නොකරනු ඇත. උදාහරණයක් ලෙස, මෙහි බලන්න

% git clone --depth 1 https://github.com/repo/code
Cloning into 'code'...
cd code
remote: Counting objects: 1778, done.
remote: Compressing objects: 100% (1105/1105), done.
remote: Total 1778 (delta 87), reused 1390 (delta 58), pack-reused 0
Receiving objects: 100% (1778/1778), 5.54 MiB | 4.33 MiB/s, done.
Resolving deltas: 100% (87/87), done.
Checking connectivity... done.
Checking out files: 100% (1215/1215), done.
% cd code
% git checkout other_branch
error: pathspec 'other_branch' did not match any file(s) known to git.
% git fetch origin other_branch
remote: Counting objects: 47289, done.
remote: Compressing objects: 100% (15906/15906), done.
remote: Total 47289 (delta 30151), reused 46699 (delta 29570), pack-reused 0
Receiving objects: 100% (47289/47289), 31.03 MiB | 5.70 MiB/s, done.
Resolving deltas: 100% (30151/30151), completed with 362 local objects.
From https://github.com/repo/code
 * branch            other_branch-> FETCH_HEAD
% git checkout other_branch
error: pathspec 'other_branch' did not match any file(s) known to git.
%

මෙම අවස්ථාවේ දී මම නිධිය නැවත සකස් කරමි, නමුත් සමහර විට වෙනත් ශිල්පීය ක්‍රම තිබේ උදා: git නොගැඹුරු ක්ලෝන (ක්ලෝන - ඩෙප්ත්) දුරස්ථ ශාඛා මග හැරේ


4

පියවර පහත පරිදි වේ;

  1. git fetch originනැතහොත් git fetch --all, මෙය ඔබගේ දුරස්ථ ශාඛා සියල්ලම ඔබේ ප්‍රදේශයට ලබා දෙනු ඇති අතර පසුව ඔබට ක්‍රියා කළ හැකි දෙවන විකල්පය මෙය වේ.

  2. git checkout --track origin/<The_remote_branch you want to switch over>

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

git branch

එය ඔබ දැනට සිටින ශාඛාව පෙන්වයි.


3

ඔබේ දුරස්ථ ශාඛාව ඔබ දැනටමත් දන්නවා නම් ...

git remote
=> One
=> Two

ඔබ ඉවත් වීමට කැමති ශාඛා නම ඔබ දන්නවා, උදාහරණයක් ලෙස, br1.2.3.4 , ඉන්පසු කරන්න

git fetch One
=> returns all meta data of remote, that is, the branch name in question.

ඉතිරිව ඇත්තේ ශාඛාව පරීක්ෂා කිරීමයි

git checkout br.1.2.3.4

ඉන්පසු ඕනෑම නව අතු ඉවත් කරන්න.



2

ඔබගේ .git/configගොනුව පරීක්ෂා කරන්න , විශේෂයෙන් එම දුරස්ථය ලබා ගැනීමේදී ඇති ලුහුබැඳීම් මොනවාද .

[remote "randomRemote"]
    url = git@github.com:someUser/someRepo.git
    fetch = +refs/heads/*:refs/remotes/randomRemote/*

එය heads/*යොමු වී ඇත්නම් randomRemote/*, ඔබ දුවන විටgit fetch randomRemote , එය සියලු ශාඛා ලබා ගනී.

එවිට ඔබට එම ශාඛාව පරීක්ෂා කර බැලිය හැකිය.

එසේ නොමැතිනම්,

  1. මෙය භාවිතා කරමින් ඔබ දුරස්ථ ශාඛා ලුහුබැඳීමට එකතු කළ යුතුය. .git/configමෙය ක්‍රියාත්මක කිරීමෙන් පසු ඔබේ පරීක්ෂා කරන්න . ඔබට වැටහෙනු ඇත.

    git remote set-branches --add randomRemote randomBranch
    
  2. දුවන්න git fetch randomRemote. මෙය දුරස්ථ ශාඛාව ලබා ගනී.

  3. දැන් ඔබට ධාවනය කළ හැකිය git checkout randomBranch.


1

ඔබේ ශාඛා වෙන් වෙන්ව තබා ගැනීමට ඔබ 'git pull' භාවිතා කරයි. 'Lbranch' සහ 'rbranch' තේරුම් ගැනීමට අපහසු බැවින් මම සත්‍ය ගබඩාව සහ ශාඛා නාම භාවිතා කරමි.

අපි භාවිතා කරමු:

  • myteam.unfuddle.com = දුරස්ථ Git සේවාදායකය
  • tlc = නිධිය පවතින ව්‍යාපෘති ගිණුම ඉවත් කරන්න
  • daves_branch = දුරස්ථ ශාඛා නම

    ඔබට හෝ ඕනෑම සගයකුට මෙය ක්‍රියාත්මක කළ හැක්කේ කොපමණ ශාඛා තිබුණත් ඔබේ ශාඛාව පමණක් අදින්න:

    git init
    git pull git@myteam.unfuddle.com:myteam/tlc daves_branch:refs/remotes/origin/daves_branch
    

  • 0

    සරල විධානයක්, git checkout remote_branch_nameදුරස්ථ ශාඛාවේ සියලු වෙනස්කම් ඇති දේශීය ශාඛාවක් නිර්මාණය කිරීමට ඔබට උපකාරී වනු ඇත.


    -1
    git checkout -b branch_name
    git pull remote_name branch_name
    

    3
    මෙම ස්නිපටය ප්‍රශ්නයට පිළිතුරු දිය හැකි අතර, එය කරන්නේ කුමක්ද සහ එය දැනටමත් මෙහි ඇති පිළිතුරු විශාල සංඛ්‍යාවට වඩා වෙනස් වන්නේ කෙසේද යන්න පිළිබඳ පැහැදිලි කිරීමක් ඇතුළත් කිරීම වඩා හොඳය.
    ඩේවි ඩේව් ඩේව්

    2
    මම පෞද්ගලිකව මෙම විකල්පයට කැමති නැත. ඔබ මාස්ටර් වෙතින් නව ශාඛාවක් නිර්මාණය කර දුරස්ථ ශාඛාවෙන් දත්ත
    අදින්නේ නම්

    සමහර පැහැදිලි කිරීම් පිළිවෙලට වනු ඇත.
    පීටර් මෝර්ටෙන්සන්
    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.