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



github (22)

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

git checkout --track origin/other_remote_branch

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

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

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

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

  • git checkout origin/test দেয় * (no 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'

অন্যান্য ছেলেরা এবং gals সমাধান দিতে, কিন্তু সম্ভবত আমি আপনাকে কেন বলতে পারেন।

গিট চেকআউট পরীক্ষা যা কিছুই না

Does nothing সমান doesn't work , তাই আমি মনে করি যখন আপনি আপনার টার্মিনালে 'git checkout test' টাইপ করবেন এবং এন্টার কী টিপুন, কোনও বার্তা প্রদর্শিত হবে না এবং কোন ত্রুটি ঘটে না। আমি কি সঠিক?

যদি উত্তর 'হ্যাঁ' হয়, আমি আপনাকে কারণ বলতে পারেন।

কারণ আপনার কাজের গাছটিতে 'test' নামে একটি ফাইল (বা ফোল্ডার) রয়েছে।

যখন git checkout xxx পার্সড,

  1. Git প্রথমে শাখা নাম হিসাবে xxx দেখায়, কিন্তু পরীক্ষার নামে কোন শাখা নেই।
  2. তারপর গিট মনে করে xxx একটি পথ, এবং সৌভাগ্যবশত (অথবা দুর্ভাগ্যবশত), পরীক্ষার নামে একটি ফাইল আছে। তাই git checkout xxx মানে xxx ফাইল কোন পরিবর্তন বাতিল।
  3. যদি xxx নামক ফাইল না থাকে তবে জিটি কিছু নিয়ম অনুসারে xxx তৈরি করার চেষ্টা করবে। remotes/origin/xxx উপস্থিত থাকলে নিয়মগুলির মধ্যে একটি হল xxx নামক একটি শাখা তৈরি করা।

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

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 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

এটি একটি রিমোট DWIM উত্স ( documentation ) জন্য DWIM করবে:

$ git checkout -t remote_name/remote_branch

একটি নতুন রিমোট যোগ করার জন্য আপনাকে প্রথমে নিম্নলিখিতটি করতে হবে:

$ git remote add remote_name location_of_remote
$ git fetch remote_name

প্রথম রিমোট বিদ্যমান জিট বলে, দ্বিতীয় commits পায়।


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

git fetch

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

git checkout BranchName

git fetch && git checkout your-branch-name


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

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

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

git fetch && git checkout test

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


git branch -r বলে যে বস্তুর নামটি অবৈধ, কারণ সেই শাখা নামটি গিটের স্থানীয় শাখা তালিকায় নেই। মূল থেকে আপনার স্থানীয় শাখার তালিকা আপডেট করুন:

git remote update

এবং তারপর আবার আপনার রিমোট শাখা চেক আউট করার চেষ্টা করুন।

এটা আমার জন্য কাজ করে।

আমি বিশ্বাস করি যে git fetch সমস্ত দূরবর্তী শাখায় টানবে, যা মূল পোস্টার চেয়েছিল না।


যদি শাখাটি 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

নিম্নোক্ত বাশ স্ক্রিপ্টের সাহায্যে আপনি সমস্ত দূরবর্তী শাখার ট্র্যাকিং শুরু করতে পারেন:

#!/bin/bash
git fetch --all
for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`
  do git branch -f --track "$branch" "origin/$branch"
done

এখানে একটি একক লাইন সংস্করণও রয়েছে:

git fetch --all; for branch in `git branch -r --format="%(refname:short)" | sed 's/origin\///'`; do git branch --track "$branch" "origin/$branch" ; done ;

কমান্ড

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 -b <BRANCH-NAME> <REMOTE-NAME>/<BRANCH-NAME>

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


যদি রিমোট শাখা নামটি বিশেষ বৈশিষ্ট্যগুলির সাথে শুরু হয় তবে চেকআউট কমান্ডে এটির কাছাকাছি একক উদ্ধৃতি ব্যবহার করতে হবে অথবা অন্যথায় আপনি কোন শাখা সম্পর্কে কথা বলছেন তা জিটটি জানবে না।

উদাহরণস্বরূপ, আমি #9773 নামে একটি রিমোট শাখাকে চেকআউট করার চেষ্টা করেছি কিন্তু কমান্ড নীচের ছবিতে দেখানো ঠিকমত কাজ করেনি:

কিছু কারণে আমি তীক্ষ্ণ প্রতীক (#) এর সাথে কিছু করতে পারতাম কিনা, এবং তারপরে আমি '#9773' চেয়ে '#9773' রাইটেনের মতো একক উদ্ধৃতি সহ শাখার নামটি ঘিরে চেষ্টা করেছি এবং এটি জরিমানা করে।

$ git checkout -b '#9773' origin/'#9773'

এই ক্ষেত্রে, সম্ভবত আপনি একটি স্থানীয় test শাখা তৈরি করতে চান যা দূরবর্তী test শাখাকে ট্র্যাক করছে:

$ git branch test origin/test

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


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

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

git fetch origin branch_name

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

git checkout -b branch_name origin/branch_name

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


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

git checkout -b feature/branch remotes/origin/feature/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 origin desired-branch
From github.com:MYTEAM/my-repo
    * branch            desired-branch -> FETCH_HEAD

Sidenote: আধুনিক গিট (> = 1.6.6 ) দিয়ে, আপনি শুধু ব্যবহার করতে পারবেন

git checkout test

(নোট করুন যে এটি 'পরীক্ষা' নয় 'মূল / পরীক্ষা') যাদুকরী DWIM -mery সম্পাদন এবং আপনার জন্য স্থানীয় শাখা 'পরীক্ষা' তৈরি করুন, যার জন্য আপস্ট্রিম রিমোট-ট্র্যাকিং শাখা 'মূল / পরীক্ষা' হবে।

git branch আউটপুটের * (no branch) অর্থ নেই যে আপনি নামহীন শাখায় আছেন, তথাকথিত "বিচ্ছিন্ন HEAD" রাষ্ট্র (HEAD পয়েন্টগুলি সরাসরি প্রত্যক্ষ করতে এবং কিছু স্থানীয় শাখার প্রতীকী রেফারেন্স নয়)। আপনি যদি এই নামহীন শাখায় কিছু করেন তবে আপনি সর্বদা বর্তমান কমিটির বাইরে স্থানীয় শাখাটি তৈরি করতে পারেন:

git checkout -b test HEAD

দূরবর্তী URL গুলি স্যুইচিং

ওপেন টার্মিনাল।

প্রথম পদক্ষেপ: - আপনার স্থানীয় প্রকল্পে বর্তমান কার্যকারী ডিরেক্টরিটি পরিবর্তন করুন।

দ্বিতীয় পদক্ষেপ: - আপনি যে রিমোটটি পরিবর্তন করতে চান তার নাম পেতে আপনার বিদ্যমান রিমোটগুলি তালিকাভুক্ত করুন।

তৃতীয় ধাপ: - git remote -v

origin  https://github.com/USERNAME/REPOSITORY.git (fetch)

origin  https://github.com/USERNAME/REPOSITORY.git (push)

গিট রিমোট সেট-url কমান্ড সহ আপনার রিমোটের URL টি HTTPS থেকে SSH এ পরিবর্তন করুন।

চতুর্থ ধাপ: - git remote set-url origin [email protected]:USERNAME/REPOSITORY.git

এখন যাচাই করুন যে রিমোট ইউআরএল পরিবর্তিত হয়েছে।

5 ম ধাপ: - git remote -v নতুন রিমোট URL যাচাই করুন

origin  [email protected]:USERNAME/REPOSITORY.git (fetch)
origin  [email protected]:USERNAME/REPOSITORY.git (push)




git git-checkout remote-branch