গিট দিয়ে শাখা কিভাবে ডাউনলোড করবেন?


214

আমি গিটহাবের একটি প্রকল্প হোস্ট করেছি। আমি একটি কম্পিউটারে একটি শাখা তৈরি করেছি, তারপরে আমার পরিবর্তনগুলি এটি দিয়ে গিটহাবের দিকে ঠেলে দিয়েছি:

git push origin branch-name

এখন আমি একটি অন্য কম্পিউটারে আছি এবং আমি এই শাখাটি ডাউনলোড করতে চাই। সুতরাং আমি চেষ্টা করেছি:

git pull origin branch-name

... তবে এই সমস্ত কি আমার নতুন শাখার পরিবর্তনগুলি নিয়ে আমার মাস্টার শাখাটি ওভাররাইট করা হয়েছিল।

বিদ্যমান শাখাগুলি ওভাররাইট না করে আমার দূরবর্তী শাখাটি সঠিকভাবে টানতে আমাকে কী করতে হবে?

উত্তর:


375

সম্পর্কিত প্রশ্নের জন্য ধন্যবাদ , আমি জানতে পেরেছিলাম যে আমাকে একটি নতুন স্থানীয় শাখা হিসাবে দূরবর্তী শাখাটি "চেকআউট" করতে হবে এবং একটি নতুন স্থানীয় শাখার নাম নির্দিষ্ট করতে হবে।

git checkout -b newlocalbranchname origin/branch-name

অথবা আপনি এটি করতে পারেন:

git checkout -t origin/branch-name

পরেরটি একটি শাখা তৈরি করবে যা দূরবর্তী শাখাটিও ট্র্যাক করতে প্রস্তুত।


আপডেট: আমি মূলত এই প্রশ্নটি পোস্ট করার পরে 5 বছর হয়ে গেছে। আমি অনেক কিছু শিখেছি এবং গিটটি তখন থেকেই উন্নত হয়েছে। আমার স্বাভাবিক কর্মপ্রবাহ এখন অন্যরকম।

আমি যদি প্রত্যন্ত শাখাগুলি আনতে চাই তবে আমি কেবল চালাই:

git pull

এটি সমস্ত প্রত্যন্ত শাখাগুলি আনবে এবং বর্তমান শাখাকে একীভূত করবে। এটি এমন আউটপুট প্রদর্শন করবে যা দেখতে এরকম কিছু দেখাচ্ছে:

From github.com:andrewhavens/example-project
   dbd07ad..4316d29  master     -> origin/master
 * [new branch]      production -> origin/production
 * [new branch]      my-bugfix-branch -> origin/my-bugfix-branch
First, rewinding head to replay your work on top of it...
Fast-forwarded master to 4316d296c55ac2e13992a22161fc327944bcf5b8.

এখন গিট আমার নতুন সম্পর্কে জানে my-bugfix-branch। এই শাখায় স্যুইচ করতে, আমি কেবল চালাতে পারি:

git checkout my-bugfix-branch

সাধারণত, আমি শাখাটি পরীক্ষা করে নেওয়ার আগে আমার এটি তৈরি করা দরকার, তবে গিটের নতুন সংস্করণগুলিতে এটি জানতে যথেষ্ট যথেষ্ট স্মার্ট যে আপনি এই দূরবর্তী শাখার স্থানীয় কপি চেকআউট করতে চান ।


আমি এলেবেলে 1.7.2.5 ব্যবহার করছি, এবং কমান্ড যে আমার জন্য কাজ ছিল: git branch --track XX origin/XX। আপনার আদেশ আমাকে ত্রুটি দেয়।
ডিমিটার্ভ

8
আপনার যদি সমস্ত দূরবর্তী শাখাগুলি ডাউনলোড না করা থাকে তবে এটি ব্যর্থ হতে পারে। এগুলি নীচে টানতে "গিট রিমোট আপডেট" করুন।
বেন ওয়াল্ডিং 22

1
প্রকৃতপক্ষে, এটি এমনকি "git চেকআউট শাখার নাম" আরও ছোট হতে পারে। ব্রাঞ্চ-নামটি যদি দূরবর্তী ট্র্যাকিং শাখার (যেমন উত্স / শাখা-নাম) একই হয় তবে এটি স্বয়ংক্রিয়ভাবে স্থানীয় ট্র্যাকিং শাখা।
ডেভিডএন

64

আমার মতো কোনও গিট নবাবিদের জন্য, এখানে কয়েকটি পদক্ষেপ রয়েছে যা আপনি দূরবর্তী সংগ্রহস্থল ডাউনলোড করতে অনুসরণ করতে পারেন এবং তারপরে আপনি যে শাখায় দেখতে চান সেটি স্যুইচ করুন। তারা সম্ভবত কোনওভাবে গিটকে গালি দিয়েছে, তবে এটি আমার পক্ষে কাজ করেছে! :-)

আপনি যে কোডটি ডাউনলোড করতে চান তার জন্য ক্লোজ করুন (উদাহরণস্বরূপ আমি গিথুবে এলআরস্ট্রি প্রকল্পটি বেছে নিয়েছি ):

$ git clone https://github.com/lukeredpath/LRResty.git
$ cd LRResty

আপনি এই মুহুর্তে কোন শাখা ব্যবহার করছেন তা পরীক্ষা করুন (এটি মাস্টার শাখা হওয়া উচিত):

$ git branch    
* master

আপনি যে শাখাটি চান তা পরীক্ষা করে দেখুন, আমার ক্ষেত্রে এটি 'অর্কিফাইড' বলা হয়:

 $ git checkout -b arcified origin/arcified
 Branch arcified set up to track remote branch arcified from origin.
 Switched to a new branch 'arcified'

নিশ্চিত করুন যে আপনি এখন যে শাখাটি চেয়েছিলেন তা ব্যবহার করছেন:

$ git branch    
* arcified
  master

আপনি যদি কোডটি পরে আবার আপডেট করতে চান তবে চালান git pull:

$ git pull
Already up-to-date.

"তারা সম্ভবত কোনও উপায়ে গিটকে আপত্তি জানায়" - না, ঠিক এটি সঠিক।
বিগ ম্যাকলার্জহিউজ

27

আপনি গিট রিমোট যেমন ব্যবহার করতে পারেন:

git fetch origin

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

git branch --track [local-branch-name] origin/remote-branch-name

আপনার কাছে এখন স্থানীয়-শাখা-নামে দূরবর্তী গিথুব শাখার সামগ্রী থাকবে।

আপনি সেই স্থানীয়-শাখা-নামটি স্যুইচ করতে এবং কাজ শুরু করতে পারেন:

git checkout [local-branch-name]

17

তুমি ব্যবহার করতে পার :

git clone <url> --branch <branch>

শুধুমাত্র শাখার বিষয়বস্তু ক্লোন / ডাউনলোড করতে।

এটি বিশেষত আমার পক্ষে সহায়ক ছিল, যেহেতু আমার শাখার বিষয়বস্তুগুলি মাস্টার শাখা থেকে সম্পূর্ণ পৃথক ছিল (যদিও এটি সাধারণত ক্ষেত্রে হয় না)। সুতরাং, উপরের অন্যদের দ্বারা প্রদত্ত প্রস্তাবনাগুলি আমাকে সহায়তা করে না এবং আমি শাখাটি পরীক্ষা করে দেখে এবং গিট টান দেওয়ার পরেও আমি মাস্টারের একটি অনুলিপি পেয়ে যাব।

এই কমান্ডটি আপনাকে সরাসরি শাখার সামগ্রী সরবরাহ করবে। এটা আমার জন্য কাজ করেছে।


1
এটি সেরা উত্তর। সহজ এবং কার্যকর।
ডেরেক

2
এটি আমার পক্ষে কাজ করে না বলে মনে হয়। এটি বলেছে যে ইতিমধ্যে সেই নামের একটি ফোল্ডার রয়েছে (যা অবশ্যই আছে)
জনাথন তুজমান

1
@ জোনাথন এটি আপনার বিদ্যমান শাখার সাথে একটি নতুন শাখা সংযোজন করবে না। এটি কেবলমাত্র একটি তাজা অনুলিপি ক্লোন করতে ব্যবহার করা যেতে পারে। আপনি যদি ইতিমধ্যে ভান্ডারটি ক্লোন না করে থাকেন তবে কেন ইতিমধ্যে সেই নামের একটি ফোল্ডার থাকা উচিত তা আমি দেখতে পাচ্ছি না। অন্য কোনও জায়গায় ক্লোনিং করার চেষ্টা করুন।
পুরাতন মার্কাস

নতুন শাখা সহ একটি বিদ্যমান প্রকল্প আপডেট করে না
ড্যাজল

16

গিট অন গিট ব্যাশ থেকে আপনার নতুন মেশিনের ফোল্ডারে নেভিগেট করুন।

আপনার পছন্দ মতো যে কোনও শাখা থেকে কোড ডাউনলোড করতে নীচের কমান্ডটি ব্যবহার করুন

git clone 'git ssh url' -b 'Branch Name'

এটি সংশ্লিষ্ট শাখার কোডটি ডাউনলোড করবে।


9

গিট ক্লোন এবং সিডির রেপো নাম:

$ git clone https://github.com/PabloEzequiel/iOS-AppleWach.git
Cloning into 'iOS-AppleWach'...
$ cd iOS-AppleWach

আমি চাই সেই শাখায় (একটি গিটহাব পৃষ্ঠা) স্যুইচ করুন:

$ git checkout -b gh-pages origin/gh-pages
Branch gh-pages set up to track remote branch gh-pages from origin.
Switched to a new branch 'gh-pages'

এবং শাখা টানুন:

$ git pull
Already up-to-date.

ম:

$ ls
index.html      params.json     stylesheets


0

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

git fetch <remoteName> <branchName>

উদাহরণ:

git fetch origin MyRemoteBranch

-8

একটি নতুন ডিরেক্টরি তৈরি করুন এবং পরিবর্তে একটি ক্লোন করুন।

গিট ক্লোন (উত্সের ঠিকানা) (শাখার নাম)


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