git - গিট দূরবর্তী শাখা fetch
branch git-branch (17)
আমার সহকর্মী এবং আমি একই রিপোজিটরিতে কাজ করছি, আমরা বিভিন্ন প্রকল্পগুলির জন্য টেকনিক্যালি প্রতিটি শাখায় দুইটি শাখায় বিভক্ত করেছি, কিন্তু তাদের সমানতা রয়েছে তাই আমরা মাঝে মাঝে শাখা থেকে * মাস্টারকে ফেরত দিতে চাই।
তবে, আমি শাখা আছে। আমার প্রশ্ন, আমার সহকর্মী বিশেষভাবে যে শাখা টানতে পারেন? রেপোর একটি git clone
তার জন্য স্থানীয়ভাবে শাখা তৈরি করতে পারে না বলে মনে হয়, যদিও আমি তাদের শেষের দিকে ধাক্কা পরে তাদের অনভিজ্ঞ অবস্থায় দেখতে পারি।
এছাড়াও, যখন আমি মূলত শাখা তৈরি করলাম তখন আমি -b checkout
করেছিলাম। যে অনেক পার্থক্য করে না নিশ্চিত না?
iMac:test_solar dave$ git branch -r
origin/HEAD -> origin/master
origin/daves_branch
origin/discover
origin/master
git fetch origin discover
git checkout discover
এই আমি চালানো কমান্ড। কিন্তু এটা স্পষ্টভাবে কাজ করছে না। আমি সেই শাখাটি যাচাই করতে সক্ষম হব এবং তারপরে বিভিন্ন সহযোগী বা ওয়ার্কস্টেশনের শাখায় পরিবর্তনগুলি ফিরিয়ে আনার চেষ্টা করব।
আপনার। .git/config
, .git/config
যে রিমোট জন্য fetch উপস্থিত কি ট্র্যাকিং।
[remote "randomRemote"]
url = [email protected]:someUser/someRepo.git
fetch = +refs/heads/*:refs/remotes/randomRemote/*
যদি এটি randomRemote/*
heads/*
দিকে নির্দেশ করে randomRemote/*
আপনি যখন git fetch randomRemote
চালান তখন এটি সমস্ত শাখাগুলি আনবে। তারপর আপনি শুধু যে শাখা চেকআউট করতে পারেন।
তা না হলে,
আপনি এই ব্যবহার করে ট্র্যাকিং দূরবর্তী শাখা যোগ করা প্রয়োজন। এই চলমান পর আপনার
.git/config
চেক করুন। তুমি বুঝবে. গিট দূরবর্তী সেট শাখা - র্যান্ডম যোগ করুন randomBranchরান
git fetch randomRemote
। এই দূরবর্তী শাখা আনতে হবে।এখন আপনি
git checkout randomBranch
চালাতেgit checkout randomBranch
আপনি আপনার শাখা পৃথক রাখতে 'গিট পুল' ব্যবহার করুন। 'Lbranch' এবং 'rbranch' থেকে ডাইসিফার করা কঠিন হওয়ার পরে আমি প্রকৃত রেপো এবং শাখা নামগুলি ব্যবহার করতে সহায়তা করব।
এর ব্যবহার করা যাক:
আপনি, বা কোন সহকর্মী, এটি কেবল আপনার শাখাটি টেনে আনতে চালাতে পারেন, কোনও শাখাগুলি কতটা গুরুত্বপূর্ণ নয়:
git init git pull [email protected]:myteam/tlc daves_branch:refs/remotes/origin/daves_branch
আপনি রিমোট শাখাকেও এক শটতে আনতে এবং চেকআউট করতে পারেন: -
git fetch && git checkout the-branch-name
আমার ব্র্যাঞ্চ চেকআউট করতে যা দূরবর্তী অবস্থান থেকে এবং স্থানীয়ভাবে নয় - এটি আমার জন্য কাজ করেছে:
git fetch --all
git checkout myBranch
আমি এই বার্তা পেয়েছিলাম:
Branch myBranch set up to track remote branch myBranch from origin
Switched to a new branch 'myBranch'
আমি টাইপ করেছি
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 'your_branch' origin/'remote branch'
এটি করার সবচেয়ে সহজ উপায়, অন্তত আমার জন্য:
git fetch origin <branchName>
কি আমাকে সাহায্য করেছিল
1) সমস্ত উপলব্ধ দূরবর্তী শাখার দেখতে (যেমন 'রিমোট-শাখা-নাম')
git branch -r
2) দূরবর্তী শাখা নাম ব্যবহার করে একটি স্থানীয় শাখা তৈরি করুন
git fetch && git checkout 'remote-branch-name'
নিম্নরূপ পদক্ষেপ;
git fetch origin
বাgit fetch --all
সব, এটি আপনার দূরবর্তী শাখাগুলিকে আপনার স্থানীয়ে আনবে এবং এটির সাথে দ্বিতীয় বিকল্পটি আপনি প্রক্রিয়া করতে পারবেন।git checkout --track origin/<The_remote_branch you want to switch over>
তারপরে এই শাখায় কাজ করুন এবং আপনি যে শাখায় আছেন কিনা তা টাইপ করে যাচাই করতে পারেন
git branch
এটি বর্তমানে আপনি যে শাখাটি দেখছেন তা প্রদর্শন করে।
মাঝে মাঝে আপনি মাস্টার শাখার সাথে উধাও না হয়ে কেবল দূরবর্তী শাখার কাজ করতে বলেন (যেমনটি আমাকে বলা হয়েছিল)। তাই আপনার প্রয়োজন দূরবর্তী শাখা।
সুতরাং একা দূরবর্তী শাখা ক্লোন (মাস্টার ছাড়া), এই কাজ
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
এটি রিমোট শাখার নামে আপনার স্থানীয় শাখাতে রিমোট শাখাটি ক্লোন করে তা নিশ্চিত করবে।
এখন আপনি যদি আপনার কোডটি ধাক্কা দেন এবং ধাক্কা দেন তবে কোডটি সেই শাখাটিতে জমা দেওয়া হবে।
যদি আপনি ইতিমধ্যে আপনার রিমোট শাখা যেমন জানেন ...
git remote
=> One
=> Two
এবং আপনি প্রাক্তন চেকআউট করতে চান শাখা নাম জানি। তারপর br.2.2.4
git fetch One
=> returns all meta data of remote i.e. the branch name in question.
বাকি যে বাকি শাখা চেকআউট হয়
git checkout br.1.2.3.4
তারপর এটি বন্ধ কোন নতুন শাখা করা।
রিমোট শাখা ট্র্যাক করে এমন একটি স্থানীয় শাখা তৈরি করতে হবে। নিম্নলিখিত কমান্ড daves_branch নামক একটি স্থানীয় শাখা তৈরি করবে, রিমোট শাখা উত্স / daves_branch ট্র্যাকিং করবে। আপনি আপনার পরিবর্তন ধাক্কা যখন দূরবর্তী শাখা আপডেট করা হবে।
গিট সাম্প্রতিক সংস্করণ জন্য:
git checkout --track origin/daves_branch
--track
git checkout -b [branch] [remotename]/[branch]
যেখানে [রিমোটনাম] এই ক্ষেত্রে উৎপন্ন হয় এবং [শাখা] দ্বিগুণ একই, daves_branch এই ক্ষেত্রে।
Git জন্য 1.5.6.5 আপনি এই প্রয়োজন:
git checkout --track -b daves_branch origin/daves_branch
গিট 1.7.2.3 এবং উচ্চতর এর জন্য এটি যথেষ্ট (হয়তো শুরু হতে পারে তবে এটি দ্রুততম যেটি আমি দ্রুত খুঁজে পেতে পারি):
git checkout daves_branch
উল্লেখ্য যে সাম্প্রতিক গিট সংস্করণগুলির সাথে, এই কমান্ডটি স্থানীয় শাখা তৈরি করবে না এবং আপনাকে একটি 'পৃথক হেড' অবস্থায় রাখবে। যদি আপনি একটি স্থানীয় শাখা চান, তবে --track
বিকল্পটি ব্যবহার করুন। এখানে সম্পূর্ণ বিবরণ: http://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Tracking-Branches - http://git-scm.com/book/en/v2/Git-Branching-Remote-Branches#Tracking-Branches
সমস্ত রিমোট এবং তাদের শাখাগুলি দেখতে git branch -r
(স্থানীয় এবং দূরবর্তী শাখা উভয়) বা git branch -r
(শুধুমাত্র দূরবর্তী শাখার) ব্যবহার করুন। আপনি git checkout -t remotes/repo/branch
দূরবর্তীতে একটি git checkout -t remotes/repo/branch
করতে পারেন এবং একটি স্থানীয় শাখা তৈরি করতে পারেন।
সেই রিমোটের জন্য সমস্ত রেফারেন্স এবং ট্যাগগুলি দেখতে একটি git ls-remote কমান্ড রয়েছে।
git branch <name> --track origin/<name>
git fetch --all & git checkout <branch name>
শিরোনাম এবং প্রশ্ন বিভ্রান্ত হয়:
- গিট দূরবর্তী শাখা fetch
- কিভাবে আমার সহকর্মী বিশেষ করে যে শাখা টান।
প্রশ্নটি যদি রিমোট শাখা চেকআউটের সাথে কাজ করার জন্য কিভাবে অথবা কোনও দূরবর্তী শাখাটি কীভাবে রিমোট শাখা পেতে পারি, তাহলে একটি সহজ সমাধান হল:
গিট (> = 1.6.6) দিয়ে আপনি ব্যবহার করতে পারবেন:
git checkout <branch_name>
যদি স্থানীয় <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'
git fetch
git branch -r
git checkout <branch_name>