গিটহাবের উপর নির্মিত একটি নতুন রিমোট শাখা ট্র্যাক করুন


183

আমি ইতিমধ্যে একটি গিথুব প্রকল্পের রিমোট মাস্টার শাখা ট্র্যাক করে একটি স্থানীয় মাস্টার শাখা পেয়েছি। এখন, আমার একজন সহযোগী একই প্রকল্পে একটি নতুন শাখা তৈরি করেছেন এবং আমি সে অনুযায়ী নিম্নলিখিতটি করতে চাই:

  1. স্থানীয়ভাবে একটি নতুন শাখা তৈরি করুন
  2. এই নতুন শাখাটিকে নতুন স্রষ্টা তৈরি করা ট্র্যাক করুন।

আমি কীভাবে এটি সঠিকভাবে করব?


2
গিট চেকআউট - ট্র্যাক-বি <স্থানীয় শাখা> <ক্রেটন> / <ট্র্যাক শাখা> এছাড়াও কাজ করে।
এমলিস্টার

14
... বা ঠিক git checkout -t <remote>/<whatever>। যদি কেবলমাত্র একটি রিমোট-ট্র্যাকিং শাখা থাকে যা আপনার মধ্যে শেষ হয় তবে <whatever>আপনি কেবল কী করতে পারেন git checkout <whatever>এবং গিটটি অনুধাবন করতে পারেন যা আপনার অর্থ।
লংগায়ার

উত্তর:


251
git fetch
git branch --track branch-name origin/branch-name

প্রথম কমান্ডটি নিশ্চিত করে যে আপনার স্থানীয় সংগ্রহস্থলে দূরবর্তী শাখা রয়েছে। দ্বিতীয় কমান্ড স্থানীয় শাখা তৈরি করে যা দূরবর্তী শাখা ট্র্যাক করে। এটি ধরে নেওয়া হয় যে আপনার দূরবর্তী নাম originএবং শাখার নাম branch-name

--track বিকল্প দূরবর্তী শাখাগুলির জন্য ডিফল্টরূপে সক্ষম করা হয়েছে এবং আপনি এটি বাদ দিতে পারেন।


3
আমি যখন এটি করি, তখন আমি একটি সতর্কতা পাই: 'শাখার নাম' পুনর্নবীকরণ অস্পষ্ট।
আল্ট্রাসাউরাস

19
সেই শাখার নাম সহ যদি কেবল একটি দূরবর্তী শাখা থাকে তবে আপনি কেবলমাত্র করতে পারেন git checkout <branchname>এবং গিটটি স্বয়ংক্রিয়ভাবে এটি চেক আউট করবে এবং একটি ট্র্যাকিং শাখা সেটআপ করবে। : শুধু পুনরাবৃত্তি করতে কি @Mark Longair এই মন্তব্যে উপরে বলেন চেয়েছিলেন stackoverflow.com/questions/11262703/...
রায়ান ওয়ালস

আমার দূরবর্তী শাখার নাম remotes/origin/develop? এটা ঠিক হওয়া উচিত নয় origin/develop? এগুলি কি একই রকম?
レ ッ ク ス

2
আমাকে করতে হয়েছিল git fetch --all, অন্যথায় নতুন শাখাগুলি আনা হবে না
mschrimpf

Eclipse এ কীভাবে করবেন? আমি যখন তাদের সাথে শেষ করি cmd, তখন গ্রহটি নতুন শাখাটি সনাক্ত করে?
ডেকার্ড

31

আপনার যদি কোনও বিদ্যমান স্থানীয় শাখা না থাকে তবে এটি সত্যই এত সহজ:

git fetch
git checkout <remote-branch-name>

উদাহরণস্বরূপ, যদি আপনি আনেন এবং এখানে একটি নতুন রিমোট ট্র্যাকিং শাখা বলা হয়ে থাকে origin/feature/Main_Page, কেবল এটি করুন:

git checkout feature/Main_Page

এটি দূরবর্তী শাখা হিসাবে একই নামের সাথে একটি স্থানীয় শাখা তৈরি করে, সেই প্রত্যন্ত শাখাটিকে ট্র্যাক করে। একই শাখার নাম সহ যদি আপনার একাধিক রিমোট থাকে তবে আপনি কম অস্পষ্ট ব্যবহার করতে পারেন:

git checkout -t <remote>/<remote-branch-name>

যদি আপনি ইতিমধ্যে স্থানীয় শাখা তৈরি করেছেন এবং এটি মুছতে চান না, দেখুন কীভাবে আপনি একটি বিদ্যমান গিট শাখা একটি দূরবর্তী শাখা ট্র্যাক করবেন?


1
git checkout 1.5-branch( remotes/upstream/1.5-branchএর আউটপুটে রয়েছে git branch -a) ফলাফলগুলি error: pathspec '1.5-branch' did not match any file(s) known to git.এটিকে পরিবর্তনের git checkout upstream/1.5-branchফলে পৃথক হেডের ফলাফল হয় এবং কোনও স্থানীয় শাখা তৈরি হয় না। আমি মনে করি উত্তরের এই অংশটি কেবল ভুল। এটি গিট ২.৪.৩ সহ
পাইওটর ডব্রোগস্ট

প্রথম কমান্ডটি আমার জন্য গিট ১.৯.৩ এ এমনকি বিভিন্ন রিমোটের জন্যও কাজ করে। এই আচরণটি পরিবর্তিত হয়েছে এটি সম্ভব। আপনার দ্বিতীয় আদেশের ফলাফলটি আমি প্রত্যাশা করব। -T ছাড়া, আপনি নির্দিষ্ট করে দিচ্ছেন না যে আপনি রিমোটের নির্দিষ্ট সংস্করণটি ছাড়া আর কিছু করতে চান।
কোটোল

1
আমি @ পাইওটারডব্রোগস্টের সাথে একমত, আমি আপনার এই বক্তব্যকে বিশ্বাস করি "এটি একই নামে একটি স্থানীয় শাখা তৈরি করে ..." ভুল হয়েছে। আনতে কী করবে (যখন এই পথে বলা হয়) তা দূরবর্তী প্রতিটি শাখার জন্য একটি রিমোট ট্র্যাকিং শাখা তৈরি করে। এর অর্থ আপনার স্থানীয় রেপোতে একটি শাখা যার নাম <remote>/<branch>। একটি রিমোট ট্র্যাকিং শাখা কেবল পঠনযোগ্য, এটি নির্দেশ করে যে সেই শাখাটি শেষ আনার সময়ে দূরবর্তীটিতে ছিল। কলিং checkoutআপনি, বিচ্ছিন্ন মস্তক মোডে যে শাখা সুত্র রাখে উপর পাযত্র বলছেন ঠিক যেমন। নোট করুন যে আনতে দূরবর্তী শাখাকে নির্দিষ্ট করে অনাকাঙ্ক্ষিত দূরবর্তী ট্র্যাকিং শাখা তৈরি করা এড়ানো হয়।
স্ক্যানি

2
আরও একবার পরিষ্কার হতে: আমি কমান্ডটি ব্যবহার করার পরামর্শ দিচ্ছি git checkout feature-branch। আমি git checkout origin/feature-branch উভয়ই নির্দেশ করেছিলাম যে কমান্ডটি ব্যবহার করার পরামর্শ দিচ্ছি না , ফলস্বরূপ একটি অপ্রয়োজনীয় বিচ্ছিন্ন মাথা তৈরি হবে।
কোটোল

অনেক সহজ এবং বিষয়। সাইগউইনে 2.8.3 গিটের সাথে দুর্দান্ত কাজ করে।
ফিলিপ আলভারেজ

29

প্রথমে আপনাকে দূরবর্তী সংগ্রহস্থল আনতে হবে:

git fetch remoteName

আপনি চাইলে রিমোট শাখাকে ট্র্যাক করতে আপনি নতুন শাখা তৈরি করতে এবং সেট আপ করতে পারেন তার চেয়ে বেশি:

git checkout -b newLocalBranch remoteName/remoteBranch

আপনি সর্বাধিক নির্দিষ্ট হিসাবে "গিট চেকআউট-বি" এর পরিবর্তে "গিট শাখা - ট্র্যাক" ব্যবহার করতে পারেন।

git branch --track newLocalBranch remoteName/remoteBranch

আপনি যদি checkout -bএকটি প্রারম্ভিক পয়েন্ট হিসাবে একটি দূরবর্তী শাখা ব্যবহার করে থাকেন, তবে এটি ব্যবহার করা আসলে এটি অপ্রয়োজনীয় --track

5
এছাড়াও, এই মন্তব্যে যেমন উল্লেখ করা হয়েছে , আপনি যদি কেবলমাত্র এটি git checkout <branchname>করেন এবং একই নামে একটি দূরবর্তী শাখা রয়েছে (আপনি একটি করার পরে git fetch), তবে স্থানীয় শাখাটি স্বয়ংক্রিয়ভাবে রিমোটটি ট্র্যাক করার জন্য স্থাপন করা হবে।

9

যখন শাখাটি কোনও দূরবর্তী শাখা নয় আপনি নিজের স্থানীয় শাখাটি সরাসরি দূরবর্তী স্থানে ঠেলাতে পারবেন।

git checkout master
git push origin master

বা যখন আপনার কোনও দেব শাখা রয়েছে

git checkout dev
git push origin dev

বা যখন দূরবর্তী শাখা উপস্থিত থাকে

git branch dev -t origin/dev

রিমোট শাখায় চাপ দেওয়ার জন্য আরও কিছু প্যাসিবিলাইট রয়েছে।


তারপরে আপনি তৃতীয় বিকল্পটি গ্রহণ করুন। যখন রিমোট শাখা উপস্থিত থাকে আপনি একটি স্থানীয় শাখা তৈরি করতে এবং রিমোট শাখাটি ট্র্যাক করতে পারেন :) এটি সর্বোচ্চ তবে সংক্ষিপ্ত থেকে সংস্করণ হিসাবে একই।
রেনা হাহলে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.