git - আমি কিভাবে একটি রিমোট গিট শাখা চেক আউট?




গিটহাব (18)

হালনাগাদ

Jakub এর উত্তর আসলে এই উন্নতি। গিট সংস্করণ ≥ 1.6.6, শুধুমাত্র একটি রিমোট সহ, আপনি কেবল এটি করতে পারেন:

git fetch
git checkout test

ব্যবহারকারী মাসকুমি একটি মন্তব্যে উল্লেখ করেছেন, আপনার যদি একাধিক রিমোট থাকে তবে git checkout test আধুনিক জিটে কাজ করবে না। এই ক্ষেত্রে ব্যবহার

git checkout -b test <name of remote>/test

ওল্ড উত্তর

আপনি দূরবর্তী শাখায় স্থানীয়ভাবে কাজ শুরু করার আগে, নীচের উত্তরগুলিতে বলা হিসাবে এটি আনতে হবে।

একটি শাখা আনতে, আপনি কেবল প্রয়োজন:

git fetch origin

এটি আপনার জন্য দূরবর্তী শাখাগুলি আনবে। চেকআউটের জন্য উপলব্ধ শাখাগুলি আপনি দেখতে পারেন:

git branch -v -a

হাতে রিমোট শাখার সাথে আপনাকে স্থানীয় শুল্কের অনুলিপি দেওয়ার জন্য আপনাকে যে শাখাটি আগ্রহী তা চেক করতে হবে:

git checkout -b test origin/test

https://code.i-harness.com

কেউ একটি git push origin test রিপোজিটরিতে git push origin test test দিয়ে test নামে একটি শাখা ধাক্কা দেয়। আমি git branch -r সঙ্গে শাখা দেখতে পারেন।

এখন আমি দূরবর্তী test শাখা চেক করার চেষ্টা করছি।

আমি চেষ্টা করেছিলাম:

  • git checkout test যা কিছুই না

  • git checkout origin/test দেয় * (no branch) । যা বিভ্রান্তিকর। আমি কিভাবে "কোন শাখা" হতে পারে?

আমি কিভাবে একটি রিমোট গিট শাখা চেক আউট?


গৃহীত উত্তর আপনার জন্য কাজ না?

প্রথম এবং নির্বাচিত উত্তর টেকনিক্যালি সঠিক হলেও, আপনি এখনও সমস্ত বস্তু পুনরুদ্ধার করেছেন এবং রিমোট রিপোজিটরি থেকে রেফারেন্সের সম্ভাবনা রয়েছে। যদি সেটি হয়, আপনি নিম্নলিখিত ত্রুটি পাবেন:

$ git checkout -b remote_branch origin/remote_branch

মারাত্মক: জিট চেকআউট: আপডেট করার পদ্ধতি শাখা শাখার সাথে অসঙ্গতিপূর্ণ।
আপনি কি 'origin / remote_branch' চেকআউট করতে চান যা প্রতিশ্রুতি হিসাবে সমাধান করা যাবে না?

সমাধান

যদি আপনি এই বার্তাটি পান তবে আপনাকে প্রথমে git checkout remote_branch git fetch origin যেখানে git checkout remote_branch চালানোর আগে git checkout remote_branch রিমোট রিপোজিটরির নাম। এখানে প্রতিক্রিয়া সহ একটি সম্পূর্ণ উদাহরণ:

$ git fetch origin
remote: Counting objects: 140, done.
remote: Compressing objects: 100% (30/30), done.
remote: Total 69 (delta 36), reused 66 (delta 33)
Unpacking objects: 100% (69/69), done.
From https://github.com/githubuser/repo-name
   e6ef1e0..5029161  develop    -> origin/develop
 * [new branch]      demo       -> origin/demo
   d80f8d7..359eab0  master     -> origin/master

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

আপনি যেহেতু দেখতে পারেন, চলমান git fetch origin কোনও রিমোট শাখাগুলি পুনরুদ্ধার করেছে আমরা আমাদের স্থানীয় মেশিনে ট্র্যাক করার জন্য সেটআপ করা হয়নি। সেখান থেকে, আমরা এখন রিমোট শাখায় একটি রেফারেন্স পেয়েছি, আমরা কেবল git checkout remote_branch চালাতে git checkout remote_branch এবং আমরা দূরবর্তী ট্র্যাকিংয়ের সুবিধাগুলি লাভ করব।


আপনি চেষ্টা করতে পারেন

git fetch remote
git checkout --track -b local_branch_name origin/branch_name

অথবা

git fetch
git checkout -b local_branch_name origin/branch_name

আমি উপরের সমাধান চেষ্টা, কিন্তু এটি কাজ করে না। এটি ব্যবহার করে দেখুন, এটি কাজ করে:

git fetch origin 'remote_branch':'local_branch_name'

এটি রিমোট শাখাটি আনবে এবং একটি স্থানীয় স্থানীয় শাখা তৈরি করবে (যদি ইতিমধ্যে বিদ্যমান না থাকে) নাম local_branch_name এবং local_branch_name দূরবর্তীটি ট্র্যাক করবে।


আমি নিম্নলিখিত কমান্ড ব্যবহার করি:

git checkout --track origin/other_remote_branch

এই উত্তর কেউ আমার জন্য কাজ। এই কাজ করেছে:

git checkout -b feature/branch remotes/origin/feature/branch


একটি খালি ফোল্ডার তৈরি করার জন্য কমান্ড অনুসরণ করুন। যে লিখুন এবং এই কমান্ড ব্যবহার করুন:

saifurs-Mini:YO-iOS saifurrahman$ git clone your_project_url
Cloning into 'iPhoneV1'...
remote: Counting objects: 34230, done.
remote: Compressing objects: 100% (24028/24028), done.
remote: Total 34230 (delta 22212), reused 15340 (delta 9324)
Receiving objects: 100% (34230/34230), 202.53 MiB | 294.00 KiB/s, done.
Resolving deltas: 100% (22212/22212), done.
Checking connectivity... done.
saifurs-Mini:YO-iOS saifurrahman$ cd iPhoneV1/
saifurs-Mini:iPhoneV1 saifurrahman$ git checkout 1_4_0_content_discovery
Branch 1_4_0_content_discovery set up to track remote branch 1_4_0_content_discovery from origin.
Switched to a new branch '1_4_0_content_discovery'

একটি জিট রিপোজিটরি ক্লোন করতে, করুন:

git clone <either ssh url /http url>

উপরের কমান্ডটি সমস্ত শাখাগুলি পরীক্ষা করে দেখায়, তবে কেবলমাত্র master শাখার সূচনা হবে। আপনি যদি অন্যান্য শাখা চেকআউট করতে চান, তাহলে:

git checkout -t origin/future_branch (for example)

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

আপনি যদি চেকআউটে আপনার স্থানীয় শাখার নামটি ওভাররাইড করতে চান:

git checkout -t -b enhancement origin/future_branch

এখন আপনার স্থানীয় শাখার নাম future_branch , তবে আপনার দূরবর্তী শাখার নাম future_branch

Documentation


কমান্ড

git fetch --all
git checkout -b <ur_new_local_branch_name> origin/<Remote_Branch_Name>

সমান

 git fetch --all

এবং তারপর

 git checkout -b fixes_for_dev origin/development

উভয় development থেকে একটি latest fixes_for_dev তৈরি করবে


কেবল দূরবর্তী শাখার নাম দিয়ে git checkout চালান। গিট স্বয়ংক্রিয়ভাবে একটি স্থানীয় শাখা তৈরি করবে যা দূরবর্তী ট্র্যাক করবে:

git fetch
git checkout test

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

git checkout --track origin/test

অথবা

git checkout -b test origin/test

2.19 , গিট checkout.defaultRemote কনফিগারেশন শিখেছে, যা এমন একটি অস্পষ্টতা সমাধান করার সময় একটি রিমোটকে ডিফল্ট হিসাবে নির্দিষ্ট করে।


প্রথম, আপনাকে করতে হবে:

git fetch # যদি আপনি শাখার নাম সম্পর্কে জানেন না

git fetch origin branch_name

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

git checkout -b branch_name origin/branch_name

-b আপনার নির্বাচিত দূরবর্তী শাখা থেকে নির্দিষ্ট -b নতুন শাখা তৈরি করবে।


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

git checkout -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

অন্যান্য উত্তর আমার বিনয়ী ক্ষেত্রে আধুনিক গিট সঙ্গে কাজ করে না। রিমোট শাখা যদি নতুন হয় তবে আপনাকে প্রথমে টেনে আনতে হবে, তবে আমি সেই ক্ষেত্রে পরীক্ষা করে দেখিনি।


যদি শাখাটি origin দূরবর্তী থেকে অন্য কিছুতে থাকে তবে আমি নিম্নলিখিতটি করতে চাই:

$ git fetch
$ git checkout -b second/next upstream/next

এটি upstream রিমোটের next শাখায় second/next নামে একটি স্থানীয় শাখায় চেকআউট করবে। যার মানে যদি আপনার ইতিমধ্যে একটি স্থানীয় শাখার নাম থাকে তবে এটি দ্বন্দ্ব করবে না।

$ git branch -a
* second/next
  remotes/origin/next
  remotes/upstream/next

শাখা উৎপত্তি এবং শাখা চেকআউট।

$ git fetch origin desired-branch
From github.com:MYTEAM/my-repo
    * branch            desired-branch -> FETCH_HEAD

git fetch && git checkout your-branch-name


git remote show <origin name> কমান্ড সমস্ত শাখাগুলি তালিকাভুক্ত করবে (ট্র্যাক করা শাখার সহ)। তারপরে আপনি রিমোট শাখা নামটি সন্ধান করতে পারেন যা আপনাকে আনতে হবে।

উদাহরণ:

$ git remote show origin

রিমোট শাখাগুলি আনতে এই পদক্ষেপগুলি ব্যবহার করুন:

git fetch <origin name> <remote branch name>:<local branch name>
git checkout <local branch name > (local branch name should the name that you given fetching)

উদাহরণ:

$ git fetch origin test:test
$ git checkout test

ঠিক আছে , উত্তরটি সহজ ... আপনি মূলত শাখাটি দেখেন তবে আপনার কাছে এখনও একটি স্থানীয় অনুলিপি নেই! ...

আপনি শাখা fetch হবে ...

আপনি সহজেই শাখাটিতে fetch এবং তারপর চেকআউট করতে পারেন, এটি করতে একটি লাইন কমান্ড ব্যবহার করুন:

git fetch && git checkout test

পার্থক্যগুলি ভাগ করে নেওয়ার জন্য আমি নীচের চিত্রটি তৈরি করেছি, কীভাবে fetch কাজ করে এবং এটি কীভাবে pull :


নতুন তৈরি শাখা পেতে

git fetch

অন্য শাখায় সুইচ করতে

git checkout BranchName






remote-branch