git - গিটহাব
আমি কিভাবে একটি রিমোট গিট শাখা চেক আউট? (18)
কেউ একটি git push origin test
রিপোজিটরিতে git push origin test
test
দিয়ে test
নামে একটি শাখা ধাক্কা দেয়। আমি git branch -r
সঙ্গে শাখা দেখতে পারেন।
এখন আমি দূরবর্তী test
শাখা চেক করার চেষ্টা করছি।
আমি চেষ্টা করেছিলাম:
git checkout test
যা কিছুই নাgit checkout origin/test
দেয়* (no branch)
। যা বিভ্রান্তিকর। আমি কিভাবে "কোন শাখা" হতে পারে?
আমি কিভাবে একটি রিমোট গিট শাখা চেক আউট?
হালনাগাদ
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
গৃহীত উত্তর আপনার জন্য কাজ না?
প্রথম এবং নির্বাচিত উত্তর টেকনিক্যালি সঠিক হলেও, আপনি এখনও সমস্ত বস্তু পুনরুদ্ধার করেছেন এবং রিমোট রিপোজিটরি থেকে রেফারেন্সের সম্ভাবনা রয়েছে। যদি সেটি হয়, আপনি নিম্নলিখিত ত্রুটি পাবেন:
$ 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
।
কমান্ড
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