git - একটি বিদ্যমান গিট শাখা একটি রিমোট শাখা ট্র্যাক করুন?




গিটহাব (13)

আমি দূরবর্তী শাখার ট্র্যাক করে এমন একটি নতুন শাখা তৈরি করতে জানি, তবে কিভাবে আমি একটি বিদ্যমান শাখাটি দূরবর্তী শাখাকে ট্র্যাক করতে পারি?

আমি জানি আমি শুধু .git/config ফাইল সম্পাদনা করতে .git/config , কিন্তু মনে হচ্ছে এটি একটি সহজ উপায় হওয়া উচিত।


'ট্র্যাক' অপশন ব্যবহার করুন

  • একটি git pull পরে:

    git checkout --track <remote-branch-name>

  • বা:

    git fetch && git checkout <branch-name>


1- ব্যবহার করে আপনার স্থানীয় মেটা-ডেটা আপডেট করুন: git fetch --all

2- আপনার রিমোট এবং স্থানীয় শাখাগুলি ব্যবহার করে দেখান: গিট শাখা-এ , নীচের স্ক্রীনশটটি দেখুন

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

গিট চেকআউট শাখা নাম

উদাহরণ:

4- আপনার স্থানীয় শাখাটি দূরবর্তী শাখাতে লিঙ্ক করে ব্যবহার করুন:

গিট শাখা - সেট আপস্ট্রিম-থেকে নাম OfRemoteBranch

NB: nameOfRemoteBranch : পদক্ষেপ 2 "গিট শাখা -আর" এর আউটপুট থেকে অনুলিপি করতে

ব্যবহারের উদাহরণ:


অথবা সহজভাবে:

যদি আপনি ইতিমধ্যে এটিতে নেই তবে শাখাটিতে স্যুইচ করুন:

[za]$ git checkout branch_name

চালান

[za]$ git branch --set-upstream origin branch_name
Branch origin set up to track local branch brnach_name by rebasing.

এবং আপনি প্রস্তুত:

 [za]$ git push origin branch_name

আপনি কীভাবে চলছে তা ট্র্যাকিং কী তা দেখতে কনফিগার ফাইলটিতে নজর রাখতে পারেন:

 [za]$ git config -e

এটি জানাতেও ভালো লাগছে, এটি দেখায় কোন শাখাগুলি ট্র্যাক করা হয় এবং কোনগুলি তা নয়। :

  [za]$ git remote show origin 

আপনি git_remote_branch সরঞ্জামটি খুঁজে পেতে পারেন। এটি দূরবর্তী শাখাগুলি তৈরি, প্রকাশ, মোছা, ট্র্যাকিং এবং পুনঃনামকরণের জন্য সহজ কমান্ড সরবরাহ করে। একটি চমৎকার বৈশিষ্ট্য হল আপনি grb কমান্ডটি জিজ্ঞাসা করতে পারেন এটি কীভাবে git কমান্ডগুলি চালানো হবে তা ব্যাখ্যা করতে।

grb explain create my_branch github
# git_remote_branch version 0.3.0

# List of operations to do to create a new remote branch and track it locally:
git push github master:refs/heads/my_branch
git fetch github
git branch --track my_branch github/my_branch
git checkout my_branch

আপনি নিম্নলিখিতটি করতে পারেন (অনুমান করছেন যে আপনি মাস্টারে চেক আউট করেছেন এবং রিমোট শাখা মাস্টারে ধাক্কা দিতে চান):

যদি আপনি ইতিমধ্যে এটি না থাকে তাহলে 'দূরবর্তী' সেট আপ করুন

git remote add origin ssh://...

এখন ট্র্যাক করতে মাস্টারকে কনফিগার করুন:

git config branch.master.remote origin
git config branch.master.merge refs/heads/master

এবং ধাক্কা:

git push origin master

আমি -u বিকল্প হিসাবে pushing একটি পার্শ্ব প্রতিক্রিয়া হিসাবে এই কাজ

$ git push -u origin branch-name

সমতুল্য দীর্ঘ বিকল্প --set-upstream

git-branch কমান্ডটি --set-upstream বোঝে, কিন্তু এর ব্যবহার বিভ্রান্তিকর হতে পারে। সংস্করণ 1.8.0 ইন্টারফেস পরিবর্তন।

git branch --set-upstream অপসৃত হয় এবং একটি অপেক্ষাকৃত দূরবর্তী ভবিষ্যতে সরানো হতে পারে। git branch [-u|--set-upstream-to] আর্গুমেন্ট একটি সানর আদেশ দিয়ে চালু করা হয়েছে।

...

এটি git branch --set-upstream origin/master বলে প্রলুব্ধকর ছিল, কিন্তু এটি বর্তমানে চেক আউট শাখার সাথে সংহত করার জন্য স্থানীয় শাখার "মূল / মাস্টার" ব্যবস্থার ব্যবস্থা করার জন্য গিটকে বলে, যা ব্যবহারকারীর অর্থের অভাব ছিল। বিকল্প বাতিল করা হয়; পরিবর্তে নতুন --set-upstream-to (সংক্ষিপ্ত এবং মিষ্টি -u ) বিকল্পটি ব্যবহার করুন।

বলুন আপনার একটি স্থানীয় foo শাখা রয়েছে এবং এটি এটি আপস্ট্রিমের মতো একই নামে শাখার সাথে আচরণ করতে চায়। এই সঙ্গে ঘটতে

$ git branch foo
$ git branch --set-upstream-to=origin/foo

অথবা শুধুই

$ git branch --set-upstream-to=origin/foo foo

আমি বিশ্বাস করি যে গিট 1.5.x হিসাবে আপনি একটি স্থানীয় শাখা তৈরি করতে পারেন $BRANCH একটি রিমোট শাখা origin/$BRANCH ব্র্যাঞ্চ ট্র্যাক, এই মত।

প্রদেয় যে $BRANCH এবং origin/$BRANCH বিদ্যমান, এবং আপনি বর্তমানে $BRANCH (যদি আপনার কাছে স্যুইচ করুন) চেক আউট করেনি, তা করবেন:

git branch -f --track $BRANCH origin/$BRANCH

এটি একটি ট্র্যাকিং শাখা হিসাবে $BRANCH recreates। ইতিমধ্যেই বিদ্যমান $BRANCH সত্ত্বেও এই বাহিনী সৃষ্টি করেছে। স্বাভাবিক ডিফল্ট স্থানে থাকলে --track ঐচ্ছিক (অর্থাৎ, git-config পরামিতি branch.autosetupmergebranch.autosetupmerge সত্য)।

দ্রষ্টব্য, যদি origin/$BRANCH এখনও বিদ্যমান না থাকে তবে আপনি এটিতে আপনার স্থানীয় $BRANCH রিমোট রিপোজিটরিতে ধাক্কা দিয়ে তৈরি করতে পারেন:

git push origin $BRANCH

স্থানীয় শাখাটিকে ট্র্যাকিং শাখাতে উন্নীত করার পূর্ববর্তী কমান্ড অনুসরণ করে।


এই খুব কাজ করবে

git branch --set-upstream-to=/< remote>/< branch> < localbranch>

এখানে, github এবং git version 2.1.4 ব্যবহার করে, ঠিক করুন:

$ git clone [email protected]:user/repo.git

এবং remelts itelsef দ্বারা আসে, এমনকি যদি স্থানীয়ভাবে সংযুক্ত নাও হয়:

$ git remote show origin

* remote origin
  Fetch URL: [email protected]:user/repo.git
  Push  URL: [email protected]:user/repo.git
  HEAD branch: master
  Remote branches:
    develop tracked         <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    master  tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local ref configured for 'git push':
    master pushes to master (up to date)

কিন্তু অবশ্যই, এখনও কোন স্থানীয় শাখা:

$ git branch
* master                  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

দেখুন? এখন আপনি যদি শুধুমাত্র develp চেকআউট, এটি স্বয়ংক্রিয়ভাবে জাদু করবেন:

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

খুব সহজ!

সারাংশ। শুধু এই 2 আদেশ চালান:

$ git clone [email protected]:user/repo.git
$ git checkout develop

এটি এই প্রশ্নের সরাসরি উত্তর নয়, তবে আপস্ট্রিম শাখা কনফিগার করার চেষ্টা করার সময় আমার কাছে একই সমস্যা থাকা সত্ত্বেও আমি এখানে একটি নোট রেখে যেতে চাই।

Push.default সতর্ক থাকুন

পুরোনো গিট সংস্করণগুলির সাথে, ডিফল্টটি মিলছে , যা আপনার কাছে যদি অবাঞ্ছিত আচরণ করে তবে উদাহরণস্বরূপ:

স্থানীয় শাখা "মাস্টার" মূল / মাস্টার ট্র্যাকিং

দূরবর্তী শাখা "আপস্ট্রিম" আপস্ট্রিম / মাস্টার ট্র্যাকিং

"আপ প্রিমিয়ার " শাখায় যখন "আপ প্রিমিয়ার " শাখায় আপনি "গিট ধাক্কা" করার চেষ্টা করেন, push.default মেলিং গিট সহ স্বয়ংক্রিয়ভাবে স্থানীয় শাখার "মাস্টার" কে "আপস্ট্রিম / মাস্টার" -এ একত্রিত করার চেষ্টা করবে, যা সম্পূর্ণ বিশৃঙ্খলার সৃষ্টি করবে।

এটি আরও বর্বর আচরণ দেয়:

জিটি কনফিগারেশন - গ্লোবাল push.default আপস্ট্রিম


খুব সংক্ষিপ্ত

git branch --set-upstream yourLocalBranchName origin/develop

এটি আপনার yourLocalBranchName দূরবর্তী শাখাকে ট্র্যাক করবে।


নতুন শাখা তৈরির জন্য, আমরা নিম্নলিখিত কমান্ড ব্যবহার করতে পারি

 git checkout --track -b example origin/example 
ইতিমধ্যে তৈরি শাখার জন্য দূরবর্তী মধ্যে লিঙ্ক তৈরি করার জন্য তারপর যে শাখা থেকে কমান্ড নিচে ব্যবহার করুন

 git branch -u origin/remote-branch-name


সম্পাদনা .git/config সম্ভবত সবচেয়ে সহজ এবং দ্রুততম উপায়। যে রিমোট শাখা হ্যান্ডলিং জন্য Git কমান্ড কি করছেন, যাইহোক।

আপনি যদি ফাইলটিকে হাত দ্বারা মুকুট করতে চান না (এবং এটি করা কঠিন নয়), আপনি এটি করার জন্য সবসময় git config ব্যবহার করতে পারেন ... কিন্তু আবার, এটি কেবল .git/config ফাইল সম্পাদনা করতে যাচ্ছে, যাহাই হউক না কেন।

git checkout ব্যবহার করে ( --track পতাকাটি পাস করে) যখন স্বয়ংক্রিয়ভাবে রিমোট শাখাকে স্বয়ংক্রিয়ভাবে ট্র্যাক করার উপায় রয়েছে, তবে এই কমান্ডগুলি নতুন শাখাগুলির সাথে কাজ করে, বিদ্যমান নয়।








git-branch