গিট আনার দূরবর্তী শাখা


2260

আমার সহকর্মী এবং আমি একই ভাণ্ডারটিতে কাজ করছি। আমরা একে একে বিভিন্ন প্রকল্পের জন্য প্রযুক্তিগতভাবে দুটি শাখায় শাখা করেছি, তবে তাদের মিল রয়েছে, তাই আমরা মাঝে মাঝে masterfrom থেকে * ফিরে আসতে চাই branch

যাইহোক, আমি আছে branch। আমার সহকর্মী কীভাবে বিশেষভাবে সেই শাখাটি টানতে পারেন?

কোনও git cloneসংগ্রহস্থল তার জন্য স্থানীয়ভাবে শাখাগুলি তৈরি করে বলে মনে হয় না, যদিও আমি আমার শেষের দিকে ধাক্কা দেওয়ার পরে এগুলি অনভিজ্ঞ অবস্থায় লাইভ দেখতে পাচ্ছি।

এছাড়াও, আমি যখন প্রাথমিকভাবে শাখাটি তৈরি করেছি তখন আমি করেছি -b checkout। এটি কি অনেক পার্থক্য করে?

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

$ git fetch origin discover
$ git checkout discover

এগুলি আমি চালিত কমান্ডগুলি। তবে এটি অবশ্যই কাজ করছে না।

আমি সেই শাখাটি পরীক্ষা করে দেখতে সক্ষম হতে চাই এবং তারপরে বিভিন্ন সহযোগী বা ওয়ার্কস্টেশনগুলি থেকে পরিবর্তিত শাখাগুলি কেবল ধাক্কা দিতে এবং প্রতিশ্রুতিবদ্ধ



33
আমি ব্যবহার করেছি:, তারপরে git fetch --allসমস্ত শাখা দেখতে git branch:, তারপরে আমি শাখাটি চেকআউট করব:git checkout nameofnewbranch
জেফ ম্যাটসন

আপনার প্রশ্নটি দেখুন /programming/1072261/push-and-pull-branches-in-git/47780374#47780374
রিজো


6
git fetch origin discover:discover && git checkout discover
গায়ান ওয়েরাকুট্টি

উত্তর:


3054

আপনাকে একটি স্থানীয় শাখা তৈরি করতে হবে যা একটি দূরবর্তী শাখা ট্র্যাক করে। নিম্নলিখিত কমান্ডটি দ্যাভস ব্র্যাঙ্ক নামে একটি স্থানীয় শাখা তৈরি করবে , যা দূরবর্তী শাখার উত্স / ডেভস_বাংকে সনাক্ত করে । আপনি যখন আপনার পরিবর্তনগুলি ধাক্কা দিবেন তখন দূরবর্তী শাখাটি আপডেট করা হবে।

গীটের সর্বশেষ সংস্করণগুলির জন্য:

git checkout --track origin/daves_branch

--trackজন্য সাধারণভাবে সংক্ষেপে হয় git checkout -b [branch] [remotename]/[branch]যেখানে [remotename] হল মূল এই ক্ষেত্রে এবং অন্যান্য [শাখা] দুবার একই, তাই daves_branch এই ক্ষেত্রে।

গিট 1.5.5.5 এর জন্য আপনার এটির দরকার ছিল:

git checkout --track -b daves_branch origin/daves_branch

গিট ১.7.২.৩ এবং উচ্চতর ক্ষেত্রে এটি যথেষ্ট (এটি সম্ভবত আগে শুরু হয়েছিল, তবে এটি দ্রুত পাওয়া যায় এটিই প্রথম নিশ্চিত):

git checkout daves_branch

নোট করুন যে সাম্প্রতিক গিট সংস্করণগুলির সাথে, এই আদেশটি কোনও স্থানীয় শাখা তৈরি করবে না এবং আপনাকে একটি 'বিচ্ছিন্ন হেড' অবস্থায় রাখবে। আপনি যদি একটি স্থানীয় শাখা চান, ব্যবহার করুন--track বিকল্পটি ।

সম্পূর্ণ বিবরণ এখানে: 3.5 গিট শাখা - দূরবর্তী শাখা, ট্র্যাকিং শাখা


133
দূরবর্তী রেফারেন্স সহ আপনার রেপো আপডেট হয়েছে তা নিশ্চিত করার জন্য "গিট ফেচ" এবং "গিট চেকআউট - ট্র্যাক উত্স / আবিষ্কার" যথেষ্ট হওয়া উচিত। তারপরে আপনি সেই শাখায় প্রতিশ্রুতিবদ্ধ করতে পারেন এবং আপনার পরিবর্তনগুলির সাথে দূরবর্তী সিঙ্ক করতে একটি "গিট পুশ" করতে পারেন।
রালফিথিনেঞ্জ

33
আমি এটি চেষ্টা করেছি এবং "মারাত্মক: গিট চেকআউট: পাথ আপডেট করার শাখাগুলি স্যুইচিংয়ের সাথে বেমানান। আপনি কি 'আপস্ট্রিম / ডেভেলপ' চেকআউট করার পরিকল্পনা করেছিলেন যা প্রতিশ্রুতি হিসাবে সমাধান করা যায় না?" আমি কি ভুল কিছু করছি?
নিল বার্নওয়েল

42
দেখে মনে হচ্ছে গিটটি 1.5.6.5 এর পরিবর্তে এটির দরকার রয়েছে: গিট চেকআউট - ট্র্যাক-বি উত্স / দাভেস_বাং
চার্লি

35
এটি আমার জন্য বিশৃঙ্খলা সৃষ্টি করেছিল, এটি একটি স্থানীয় শাখা তৈরি করেছে যার নাম / <ব্র্যাঞ্চ> যা এখন দূরবর্তী শাখার উত্সের সাথে দ্ব্যর্থক </ ব্র্যাঙ্ক> এবং আমি কীভাবে পাগল লোকাল শাখা থেকে মুক্তি পাব জানি না!
অ্যালান মুর

24
আপনার স্থানীয় শাখার নামটি স্পষ্টভাবে যুক্ত করতে হবে, অন্যথায় গিট পুরো শাখার পথ দিয়ে একটি নতুন স্থানীয় শাখা তৈরি করবে, যেমন @ অ্যালানমুর এবং @ ডেরেকএমএক্স ২2১ উপরে বর্ণিত:git checkout -b --track daves_branch origin/daves_branch
মাইক স্কট

961

আমি fetchএরপরে ব্যবহার করেছি checkout...

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

... যেখানে <rbranch>দূরবর্তী শাখা বা উৎস রেফ এবং <lbranch>এখনো হয় অবর্তমান স্থানীয় শাখা বা গন্তব্য সুত্র আপনি ট্র্যাক করতে চান এবং যা আপনি সম্ভবত দূরবর্তী শাখা অথবা উৎস রেফ নামেই করতে চান। এর ব্যাখ্যাতে বিকল্পগুলির মধ্যে এটি ব্যাখ্যা করা হয়েছে <refspec>

গিটটি এত স্মার্ট এটি দূরবর্তী শাখার প্রথম কয়েকটি অক্ষরের পরে আমি ট্যাব দিলে এটি স্বয়ংক্রিয়ভাবে প্রথম কমান্ডটি সম্পন্ন করে । অর্থাৎ, আমাকে স্থানীয় শাখার নামও দিতে হবে না, গিট স্বয়ংক্রিয়ভাবে আমার জন্য দূরবর্তী শাখার নামটি অনুলিপি করে। ধন্যবাদ গিট!

এছাড়াও অনুরূপ স্ট্যাক ওভারফ্লো পোস্টের উত্তর হিসাবে দেখা যায়, আপনি যদি স্থানীয় শাখার নাম না রাখেন 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>স্থানীয়ভাবে।

আমার ধারণা, আপনি যদি স্থানীয়ভাবে একটি দূরবর্তী শাখাটি অনুলিপি করতে চান তবে এটি এখনই সহায়ক arily অন্যথায়, আমি এখন স্বীকৃত উত্তরটি ব্যবহার করব , যা চেকআউট বর্ণনার প্রথম বিভাগে এবং পরে ব্যাখ্যাগুলির অধীনে বিকল্প বিভাগে বিশদভাবে ব্যাখ্যা করা হয়েছে --track, যেহেতু এটি এক-লাইনার। ঠিক আছে ... ওয়ান-লাইনারের ধরণ, কারণ আপনাকে এখনওgit fetch <remote> আগে চালাতে হবে ।

এফওয়াইআই: এর ক্রম <refspecs>(উত্স: গন্তব্য) দূরবর্তী শাখাগুলি মোছার জন্য উদ্ভট পূর্ব গিট 1.7 পদ্ধতিটি ব্যাখ্যা করে । এটি হ'ল গন্তব্য রেফস্পেকের মধ্যে কিছুই ঠেলাবেন না।


8
আপনি ধরে নিবেন গিট অটো-কমপ্লেশন সেটআপ। কোড
ওয়ারিয়ার.

2
এটি স্থানীয় শাখায় দূরবর্তী কোড পাওয়ার জন্য আমার পক্ষে কাজ করেছিল। এটি আমার স্থানীয় শাখাটি দূরবর্তী শাখার ট্র্যাক করার জন্য পায় নি।
অ্যাকনোসিস

1
কোনও কারণে, আমার git fetch remote branchজন্য মোটেও একটি শাখার মাথা যোগ করেনি, যদিও সমস্ত রেফগুলি আনা হয়েছে, সুতরাং যখন আমি স্বীকৃত উত্তরের পদক্ষেপগুলি অনুসরণ করার চেষ্টা করেছি, তখন আমি ত্রুটি পেয়েছি pathspec did not match any file(s) known to git., তবে rbranch:lbranchপদ্ধতির কাজ হয়েছিল। মজার বিষয় হল, এটি একই উপসর্গ দিয়ে শুরু হওয়া সমস্ত ট্যাগও এনেছে, যেমন এটি ওয়াইল্ডকার্ড ( rbranch*) is
Haridsv

3
নীট: গিট স্বয়ংক্রিয়ভাবে পূর্ণতা দেয় না, এটি ব্যাশ শেল এটি করছে।
বৈধতা দিন

1
এফডব্লিউআইডাব্লু, আমি মনে করি এই উত্তর এবং স্বীকৃত উত্তরের মধ্যে পার্থক্য হ'ল এটি আপনাকে fetchআদেশটি করতে বলে । এটি গৃহীত উত্তরটি বোধগম্য হয়েছে কারণ ওপি নোট করেছেন যে তিনি ইতিমধ্যে আনয়ন করেছিলেন। এটি আমি অন্তত ইস্যুতে অন্তর্ভুক্ত ছিল।
tenor528

373

যদি আপনি একটি নতুন দূরবর্তী শাখা "চেকআউট" করার চেষ্টা করছেন (এটি কেবলমাত্র দূরবর্তীটিতে বিদ্যমান, তবে স্থানীয়ভাবে নয়), আপনার যা প্রয়োজন তা এখানে:

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

এটি ধরে নিয়েছে যে আপনি উত্স থেকে আনতে চান । যদি তা না হয় তবে আপনার প্রত্যন্ত নামের দ্বারা উত্সটি প্রতিস্থাপন করুন ।


1
আমার জন্য কাজ করেছিলাম, আমি সঠিক দূরবর্তী শাখাটি আনি নি তাই গ্রহণযোগ্য উত্তরটি আমার জন্য একটি বিভ্রান্তিকর বার্তা দিয়ে ব্যর্থ হতে থাকে। +1
নাথান হিন্চে

সাধারণত, আমি গিট আনয়ন ব্যবহার করি তবে জিনিসটি গিট আনতে এবং গিট আনতে উত্সের মধ্যে পার্থক্য কী?
পিং ওউ

@ পিংউউ ধরে নিচ্ছেন যে আপনি যে শাখাটি আনতে চান তা মূল দূরবর্তী অঞ্চলে থাকে git fetchএবং উভয়ই git fetch remoteএকই কাজ করবে। আপনার যদি অন্য কোনও দূরবর্তী থেকে আনার দরকার হয় তবে আপনি originএটি ব্যবহার করে তা করতে পারেন git fetch <other_remote_name>। এই পরিস্থিতি অত্যন্ত অস্বাভাবিক, কেবলমাত্র এখানে সম্পূর্ণতার জন্য উল্লেখ করা হয়েছে।
পনির_টিকা

1
আমি এই সমস্ত সমাধান চেষ্টা করে পিসির বিরুদ্ধে আমার মাথা প্রায় আঘাত করেছিলাম। দেখা যাচ্ছে, আমার শাখার নামটিতে একটি টাইপো ছিল, মূর্খ হি।
দেব ইয়েগো

126

স্থানীয়ভাবে নয়, দূর থেকে বিদ্যমান মাই ব্রাঙ্ক চেক আউট করতে - এটি আমার পক্ষে কাজ করেছে:

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?
অ্যান্ড্রু স্যামুয়েলসেন

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এটি তৈরির জন্য কেবল দৌড়াতে পারি। ধন্যবাদ!
স্কিভিডব্রথ

2
গিট সংস্করণ উপর নির্ভর করে এখানে অন্য কোথাও বলা হয়েছে সর্বশেষ সংস্করণটির জন্য কেবল গিট চেকআউট প্রয়োজন <উত্সের শাখার নাম>। একই নাম
লোকাল

--allএটি কখনই ভাল ধারণা নয়, কারণ এটি প্রতিটি শাখায় প্রতিটি ফাইল ডাউনলোড করবে। এতে আরও সময় এবং স্থান লাগবে। এটা তোলে শাখা নামের সঙ্গে নির্দিষ্ট হতে ভালো এবং পছন্দ করি এই
মধু

53

ব্যবহারের git branch -a(স্থানীয় ও দূরবর্তী উভয় শাখা) অথবা git branch -r(শুধুমাত্র দূরবর্তী শাখা) সমস্ত remotes ব্যবহার এবং তাদের শাখা দেখতে। এরপরে আপনি রিমোটটিতে কিছু করতে পারেন git checkout -t remotes/repo/branchএবং একটি স্থানীয় শাখা তৈরি করতে পারেন।

সেই রিমোটের জন্য সমস্ত রেফ এবং ট্যাগগুলি দেখতে একটি গিট-এলএস-রিমোট কমান্ডও রয়েছে।


git checkout remotes/repo/branchগিট চেকআউটটি কোনও দূরবর্তী রেপো নয়, একটি প্যাথস্পেকের সন্ধান করে।
এরিন

1
হ্যাঁ, দূরবর্তী রেপোতে কোনও শাখা চেকআউট করা কি সম্ভব? স্পষ্টতই (বা সম্ভবত এটি এতটা স্পষ্ট ছিল না), রিমোটগুলি প্রথম এনেছে যাতে আপনার স্থানীয়ভাবে থাকে। গিট বইয়ের তাদের উপর একটি ভাল বিভাগ রয়েছে: git-scm.com/book/en/Git-Branching- রিমোট- শাখাগুলি
ড্যানিয়েল লি

43

শিরোনাম এবং প্রশ্ন গুলিয়ে গেছে:

  • গিট আনার দূরবর্তী শাখা
  • কীভাবে আমার সহকর্মী সেই শাখাটি বিশেষভাবে টানতে পারেন।

যদি প্রশ্নটি হয়, আমি কীভাবে কাজ করতে একটি দূরবর্তী শাখা পেতে পারি, বা আমি কীভাবে গিট একটি দূরবর্তী শাখাটি চেকআউট করতে পারি? , একটি সহজ সমাধান হ'ল:

গিট (> = 1.6.6) এর সাহায্যে আপনি ব্যবহার করতে পারবেন:

git checkout <branch_name>

যদি স্থানীয় <branch_name>না পাওয়া যায় তবে মিলের নামের সাথে এক দূরবর্তীতে একটি ট্র্যাকিং শাখা উপস্থিত থাকে তবে এটি এর সমতুল্য গণ্য করুন:

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

গিট চেকআউটের জন্য ডকুমেন্টেশন দেখুন

আপনার বন্ধুর জন্য:

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

ধন্যবাদ গিলিয়াম! আমি ঠিক এই আদেশটি ব্যবহার করেছি এবং এটি সম্পর্কে আমার সঠিক কেসটি
লেনিয়েল ম্যাকাফেরি

<! - গিট চেকআউট <emote- ব্র্যাঙ্ক- নাম> -> প্রত্যাশার মতো কাজ করে, ধন্যবাদ গিলিয়াম!
সচিদানন্দ নায়েক

36

এটি করার সহজতম উপায়, কমপক্ষে আমার জন্য:

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

1
অন্যান্য শাখা নিয়ে আসে না
বেঞ্জামিন হেরেল

7
@ বেঞ্জামিনহরেল প্রশ্নটি বলছে যে সমস্ত শাখা নয় "একটি দূরবর্তী শাখা আনুন"। যে জন্য আপনার জন্য এই helpfull হতে পারে অনুসরণ stackoverflow.com/questions/10312521/...
জেমস Rochabrun

2
এই fetchকমান্ডটি ব্যবহারের পরে প্রয়োজনীয় শাখা স্থানীয় মেশিনে পাওয়া যাবে। git checkout -b 'your_branch' origin/'remote branch'এই শাখাটি চেকআউট করা প্রয়োজন।
অভিজিৎ

30

ব্যবহার করুন:

git checkout -b serverfix origin/serverfix

এটি একটি সাধারণ পর্যাপ্ত অপারেশন যা গিট --trackশর্টহ্যান্ড সরবরাহ করে :

git checkout --track origin/serverfix

আসলে, এটি এত সাধারণ যে শর্টকাটের জন্য একটি শর্টকাটও রয়েছে। আপনি যে শাখার নামটি চেকআউট করার চেষ্টা করছেন তা যদি (ক) উপস্থিত না থাকে এবং (খ) কেবলমাত্র একটি রিমোটের নামের সাথে মেলে তবে গিট আপনার জন্য একটি ট্র্যাকিং শাখা তৈরি করবে:

git checkout serverfix

দূরবর্তী শাখার চেয়ে আলাদা নামের সাথে স্থানীয় একটি শাখা স্থাপন করতে, আপনি সহজেই আলাদা স্থানীয় শাখার নাম সহ প্রথম সংস্করণটি ব্যবহার করতে পারেন:

git checkout -b sf origin/serverfix

এখন, আপনার স্থানীয় শাখাটি sfস্বয়ংক্রিয়ভাবে এখান থেকে টানবে origin/serverfix

উত্স: প্রো গিট, দ্বিতীয় সংস্করণ , স্কট চকন এবং বেন স্ট্রাব লিখেছেন (পাঠযোগ্যতার জন্য কাটা)


এই শর্টহ্যান্ডগুলি একটি পাঠ ছিল
জেড.ফুল্লা


18

রিমোটে বিদ্যমান একটি শাখা আনতে, সবচেয়ে সহজ উপায়:

git fetch origin branchName
git checkout branchName

এটি ইতিমধ্যে এর সাথে দূরবর্তীটিতে উপস্থিত রয়েছে কিনা তা আপনি দেখতে পারবেন:

git branch -r

এটি আপনার স্থানীয়তে দূরবর্তী শাখাটি আনবে এবং স্বয়ংক্রিয়ভাবে দূরবর্তীটিকে ট্র্যাক করবে।


2
এই প্রশ্নটির কীভাবে আরও বেশি অগ্রগতি নেই? আমি ভুল হতে পারি তবে এটি নিশ্চিতভাবেই চালাকিটি করেছিল বলে মনে হয়েছিল, আমার কাছে দূরবর্তী থেকে স্থানীয়তে নেই এমন একটি শাখা নিয়ে এসেছিল ...
নিকোলাস পিটারসন

15

যা আমাকে সাহায্য করেছিল

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
এটি হেডকে বিচ্ছিন্ন রাষ্ট্রের কারণ করবে
আকিন হুয়ান

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 -b <branch_name> --track <remote>/<branch_name>
গিলিয়াম ভিনসেন্ট

11

অনেক সময় আপনাকে মাস্টার শাখার সাথে ঝাঁকুনি না দিতে এবং কেবল দূরবর্তী শাখায় কাজ করতে বলা হয় (যেমন আমাকে বলা হয়েছিল)। সুতরাং আপনার যা দরকার তা হ'ল দূরবর্তী শাখা।

সুতরাং একা রিমোট শাখা ক্লোন করতে (মাস্টার ছাড়াই), এটি করুন

git clone url --branch remote_branch_name

যেখানে, রিমোট_ব্রঞ্চ_নাম রিমোট শাখার নাম

উদাহরণ স্বরূপ,

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

এটি নিশ্চিত করবে যে আপনি দূরবর্তী শাখার নাম সহ আপনার স্থানীয় শাখায় দূরবর্তী শাখাটি ক্লোন করেছেন।

এখন আপনি যদি আপনার কোডটি প্রতিশ্রুতিবদ্ধ হন এবং চাপ দেন তবে কোডটি কেবলমাত্র সেই শাখায় জমা দেওয়া হবে।


সম্পর্কিত: আমি কীভাবে গিতে একটি শাখা ক্লোন করব? - "গিট ১.7.১০ (এপ্রিল ২০১২) আসলে আপনাকে কেবল একটি শাখা ক্লোন করতে দেয়:"
পিটার মর্টেনসেন

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
রিজো, গিট পুলের মূল শাখা_নাম সেরা সমাধান হওয়া উচিত। আপনি একমাত্র ব্যক্তি যিনি এটি সমাধান হিসাবে পোস্ট করেছেন এবং এটি আমার পক্ষে কাজ করেছে। এটি কাজ করে কারণ এটি মাস্টার শাখার সাথে আপনার শাখাটি আপডেট করবে। সহজ এবং জটিল।
ইয়ান পোস্টন ফ্রেমার

3
এটির সাথে সমস্যাটি হ'ল এটি সেই দূরবর্তী শাখাকে আপনার কারেন্ট শাখায় মার্জ করার চেষ্টা করবে যা দূরবর্তী নয় (যেহেতু এটি আপনার স্থানীয় রেপোর জন্য নতুন)
জেড খোুলা

এটি আপনার বর্তমান শাখায় মার্জ হবে।
Eem Jee

4

আপনার যদি এমন কোনও সংগ্রহস্থল থাকে যা ক্লোন করা --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.
%

এই ক্ষেত্রে আমি সংগ্রহস্থলটি পুনরায় সংস্থান করতে চাই, তবে সম্ভবত অন্যান্য কৌশল রয়েছে যেমন গিট অগভীর ক্লোন (ক্লোন - ডিপথ) দূরবর্তী শাখাগুলি মিস করে


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

তারপরে এটি কোনও নতুন শাখা তৈরি করুন।


3

নিম্নরূপ পদক্ষেপ;

  1. git fetch originবা git fetch --all, এটি আপনার স্থানীয়তে সমস্ত দূরবর্তী শাখাগুলি আনবে এবং তারপরে এটি দ্বিতীয় বিকল্পটি দিয়ে আপনি প্রক্রিয়া করতে পারবেন।

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

তারপরে এই শাখায় কাজ করুন এবং আপনি সেই শাখায় আছেন কিনা তা টাইপ করে যাচাই করতে পারবেন

git branch

এটি বর্তমানে আপনি যে শাখায় রয়েছেন তা প্রদর্শন করে।



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

আপনার শাখা পৃথক রাখতে আপনি 'গিট টান' ব্যবহার করেন। আমি লিব্রাঞ্চ 'এবং' আরব্র্যাঞ্চ 'বোঝার পক্ষে শক্ত হওয়ায় সাহায্যের জন্য আমি প্রকৃত সংগ্রহশালা এবং শাখার নামগুলি ব্যবহার করব।

আসুন ব্যবহার করুন:

  • myteam.unfuddle.com = দূরবর্তী গিট সার্ভার
  • tlc = অন্বেষণ প্রকল্প অ্যাকাউন্ট যেখানে সংগ্রহস্থল বিদ্যমান
  • দ্যাভস_ব্রঞ্চ = প্রত্যন্ত শাখার নাম

    আপনি বা যে কোনও সহকর্মী, কেবল আপনার শাখাটি টানতে এটি চালাতে পারেন, সেখানে যতগুলি শাখাই থাকুক না কেন:

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

  • 0

    একটি সহজ কমান্ড, git checkout remote_branch_nameআপনাকে একটি স্থানীয় শাখা তৈরি করতে সহায়তা করবে যা দূরবর্তী শাখায় সমস্ত পরিবর্তন রয়েছে।


    -2
    git checkout -b branch_name
    git pull remote_name branch_name
    

    3
    যদিও এই স্নিপেটটি প্রশ্নের উত্তর দিতে পারে, এটি ইতিমধ্যে এখানে কীভাবে খুব সংখ্যক উত্তর থেকে পৃথক হয় তা কী করে সে সম্পর্কে কিছু ব্যাখ্যা অন্তর্ভুক্ত করা ভাল।
    ডেভিড্যাভ ডেভ

    2
    আমি ব্যক্তিগতভাবে এই বিকল্পটি পছন্দ করি না। কারণ আপনি যদি মাস্টার থেকে একটি নতুন শাখা তৈরি করছেন এবং তারপরে দূরবর্তী শাখা থেকে ডেটা
    টানছেন

    কিছু ব্যাখ্যা ক্রম হবে।
    পিটার মর্টেনসেন
    আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
    Licensed under cc by-sa 3.0 with attribution required.