গিট: নতুন দূরবর্তী শাখা দেখতে পাচ্ছেন না


115

সহকর্মী একটি নতুন রিমোট শাখা উত্স / dev / হোমপেজে ঠেলেছেন এবং আমি যখন চালাব তখন তা দেখতে পাচ্ছি না:

$ git branch -r

আমি এখনও প্রত্যক্ষদর্শী প্রত্যন্ত শাখা দেখতে পাচ্ছি।

আমি এটি ধরে নিয়েছি কারণ আমার স্থানীয় রিমোট রেফগুলি আপ টু ডেট নয় তাই যখন আমি গিট টান চালালাম তখন কিছুই ঘটেনি যেহেতু গিট টান কেবল বর্তমান কার্যক্ষম শাখায় টানছে সঠিক? গিট পুশের বিপরীতে কোনটি সেই সমস্ত শাখাকে ধাক্কা দেয় যা সংশ্লিষ্ট দূরবর্তী শাখায় পরিবর্তন করে?



1
ভুলে যেতে পরিচালিত git pull, ধন্যবাদ
জেলিনাউক্লিনা

1
আমার ক্ষেত্রে git fetch <name-of-remote>কৌতুক করেছে। রিমোটের নাম ছাড়া এটি কার্যকর হয়নি।
মেন্নো দেইজ - ভ্যান রিজস্বিক

উত্তর:


163

প্রথমে ডাবল পরীক্ষা করে দেখুন যে কমান্ডটি ব্যবহার করে শাখাটি আসলে দূরবর্তীভাবে ঠেলাঠেলি করা হয়েছে git ls-remote origin। যদি নতুন শাখা আউটপুটে উপস্থিত হয়, চেষ্টা করে কমান্ডটি দিন git fetch: এটি ব্রাঙ্ক রেফারেন্সগুলি দূরবর্তী সংগ্রহস্থল থেকে ডাউনলোড করা উচিত।

যদি আপনার দূরবর্তী শাখাটি এখনও উপস্থিত না থেকে থাকে তবে ডাবল পরীক্ষা করুন ( ls-remoteআউটপুটে) রিমোটের শাখার নাম কী এবং বিশেষত যদি এটি শুরু হয় refs/heads/। এটি কারণ, ডিফল্টরূপে, এর মান remote.<name>.fetchহ'ল:

+refs/heads/*:refs/remotes/origin/*

যাতে কেবলমাত্র দূরবর্তী রেফারেন্সগুলি যাদের নাম দিয়ে শুরু হয় refs/heads/স্থানীয়ভাবে ম্যাপ করা হবে রিমোট-ট্র্যাকিং রেফারেন্সের অধীনে refs/remotes/origin/(যেমন, তারা দূরবর্তী ট্র্যাকিং শাখায় পরিণত হবে)


4
গিট আনার উত্সটি করার পরে আমি নতুন রিমোট শাখা দেখতে সক্ষম হয়েছি, তবে আমি ঠিক গিট আনতে পার্থক্য কি তা নিশ্চিত নই? আমি গিট রিমোট আপডেট সম্পর্কে পড়েছি, তবে কী হবে তা পরিষ্কার ছিল না। আমার কি এখান থেকে নতুন কোনও দূরবর্তী শাখার জন্য গিট আনতে হবে?
হাইব্রিড

1
@ হাইব্রিড9 আপনি যদি ব্যবহার করেন তবে গিটটি git fetchনির্দিষ্ট করা ডিফল্ট রিমোটোজি রিপোসিটরিগুলি থেকে রেফারেন্সগুলি ডাউনলোড করবে .git/config: সাধারণত এটি বলা হবে origin, সুতরাং উভয় আদেশই সমান, তবে আপনার নির্দিষ্ট কনফিগারেশনটি কোনও কারণে আলাদা হতে পারে। না, আপনাকে git fetchপ্রতিটি শাখার জন্য দেওয়ার দরকার নেই, যেমন (ডিফল্ট হিসাবে) এটি সমস্ত শাখা নিয়ে আসে।
মার্কো লিওগ্র্যান্ডে

1
@ হাইব্রিড 9 + এর git pullসমতুল্য (বা আপনি যদি ডিফল্ট পরিবর্তন করেছেন), তাই আপনি যথারীতি ব্যবহার চালিয়ে যেতে পারেন এবং নতুন দূরবর্তী শাখাগুলি নিজেরাই পপ আপ করবে। git fetchgit mergegit rebasegit pull
মার্কো লিওগ্র্যান্ডে

1
আমি মূলত গিট টান দৌড়েছি কিন্তু আমি কখনই সেই নতুন দূরবর্তী শাখাটি দেখিনি যা আমাকে সত্যই বিভ্রান্ত করেছে। আমি যতক্ষণ না গিট আনার উত্স চালিয়েছি। আমি আমার প্রশ্নের উত্তর দেওয়ার সময়কে প্রশংসা করি।
হাইব্রিড

2
@ হাইব্রিড আমারও একই সমস্যা আছে। git ls-remote gerritrepo:projectনতুন দূরবর্তী শাখা দেখায় তবে git branch -aতা করে না ... আমাকে আরও একটি ক্লোন তৈরি করতে হবে এবং কেবল তখনই নতুন শাখাটি উপস্থিত হবে
বিক্রম

78

.git/configরয়েছে কিনা তা পরীক্ষা করুন

[remote "origin"]
    url = …
    fetch = +refs/heads/master:refs/remotes/origin/master

যদি তা হয় তবে এটি পরিবর্তন করুন

[remote "origin"]
    url = …
    fetch = +refs/heads/*:refs/remotes/origin/*

তারপরে আপনার এটি ব্যবহার করতে সক্ষম হওয়া উচিত:

$ git fetch
remote: Counting objects: …
remote: Compressing objects: ..
Unpacking objects: …
remote: …
From …
 * [new branch]            branchname -> origin/branchname
$ git checkout branchname
Branch branchname set up to track remote branch branchname from origin.
Switched to a new branch 'branchname'

12
প্রাথমিক অগভীর ক্লোন হওয়ার পরে আমার সাথে এটি ঘটেছিল।
আরকটেকনিক

পারফেক্ট !!! অনেক ধন্যবাদ! কমান্ডটি দিয়ে একটি কাস্টম হোমব্রু ট্যাপ ইনস্টল করার সময় আমার ক্ষেত্রে এটি ঘটেছিল brew tap user/repo: রেপোর স্থানীয় অনুলিপিটির দ্বারা ক্লোন করা আপনার brewযে সেটিংস উল্লেখ করেছিলেন তা ছিল এবং আমার রেপোতে থাকা অন্যান্য শাখাগুলি দেখতে এবং ব্যবহার করা সম্ভব ছিল না। আবার ধন্যবাদ! :) +1!
rmbianchi

3
নিম্নলিখিত কমান্ডটি .git / কনফিগারেশন ফাইলটিতে ম্যানুয়াল সম্পাদনার পরিবর্তে ব্যবহার করা যেতে পারে । git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"এবং তারপর git fetch originসব শাখা পেতে উৎপত্তি
dotnetCarpenter

এটি একটি চমৎকার এক!
ম্যাডজ

47

সবচেয়ে সহজ উত্তর:

git fetch origin <branch_name>


2
এটি আক্ষরিকভাবে আমার জন্য কাজ করেছিল।
থিওডোর আর স্মিথ

3
এটি আমার পক্ষে কাজ করে না। আমি এই ত্রুটিটি fatal: Couldn't find remote ref <branch_name>
পেয়েছি

3
হ্যাঁ এটি আমার পক্ষেও কাজ করেছিল, এই গিট চেকআউটটি ভাল কাজ করার পরে !!
হোসামি

30

একটি এরকম Git দূরবর্তী আপডেট এছাড়াও দূরবর্তী সংগ্রহস্থল থেকে পাওয়া যায় শাখা তালিকা আপডেট করা হবে।

আপনি যদি 1.8.3.0 সংস্করণ হিসাবে টর্টোজাইজিট ব্যবহার করছেন তবে আপনি "গিট -> সিঙ্ক" করতে পারেন এবং উইন্ডোটির নীচের বামে প্রদর্শিত হবে এমন একটি "রিমোট আপডেট" বোতাম থাকবে। ক্লিক করুন। তারপরে আপনার "গিট -> স্যুইচ / চেকআউট" করতে সক্ষম হওয়া উচিত এবং আপনি যে শাখাগুলি নির্বাচন করতে পারেন তার ড্রপডাউনতে নতুন দূরবর্তী শাখা উপস্থিত করা উচিত।


18
git remote updateএটি করার একটি পুরানো উপায়, নতুন পছন্দের আদেশটি git fetch

আমার সংস্করণ টর্টোসজিট (২.৮.০.০) এর নীচে বাম দিকের বোতামটির তীরের নীচে একাধিক বিকল্প রয়েছে এবং এটি পূর্বে আপনি কী নির্বাচন করেছেন তা মনে পড়ে। এর অর্থ বোতামটি "রিমোট আপডেট" না বলে। আপনি যদি এটি ব্যবহার না করে থাকেন তবে এটি "টানুন" বলবে। সুতরাং তীরটিতে ক্লিক করুন এবং বিকল্পগুলির তালিকায় আপনি "রিমোট আপডেট" দেখতে পাবেন।
মাইকেল হিন্ডস

13

ধরা যাক আমরা মুক্তি / 1.0.5 এর জন্য অনুসন্ধান করছি are

যখন git fetch -allহয় কাজ করছে না এবং আপনি দূরবর্তী শাখা দেখতে পারে না যে git branch -rএই নির্দিষ্ট শাখা প্রদর্শন করুন।

1. দূরবর্তী সমস্ত শাখাগুলি মুদ্রণ করুন (শাখা, ট্যাগ, ...):

git ls-remote origin আপনি সন্ধান করছেন এমন দূরবর্তী শাখাটি প্রদর্শন করা উচিত।

e51c80fc0e03abeb2379327d85ceca3ca7bc3ee5        refs/heads/fix/PROJECT-352
179b545ac9dab49f85cecb5aca0d85cec8fb152d        refs/heads/fix/PROJECT-5
e850a29846ee1ecc9561f7717205c5f2d78a992b        refs/heads/master
ab4539faa42777bf98fb8785cec654f46f858d2a        refs/heads/release/1.0.5
dee135fb65685cec287c99b9d195d92441a60c2d        refs/heads/release/1.0.4
36e385cec9b639560d1d8b093034ed16a402c855        refs/heads/release/1.0
d80c1a52012985cec2f191a660341d8b7dd91deb        refs/tags/v1.0

নতুন শাখা 'রিলিজ / 1.0.5' আউটপুটে প্রদর্শিত হবে।

2. একটি প্রত্যন্ত শাখা আনতে বাধ্য করুন:

git fetch origin <name_branch>:<name_branch>

$ git fetch origin release/1.0.5:release/1.0.5

remote: Enumerating objects: 385, done.
remote: Counting objects: 100% (313/313), done.
remote: Compressing objects: 100% (160/160), done.

Receiving objects: 100% (231/231), 21.02 KiB | 1.05 MiB/s, done.
Resolving deltas: 100% (98/98), completed with 42 local objects.
From http://git.repo:8080/projects/projectX
 * [new branch]        release/1.0.5 -> release/1.0.5

এখন আপনার স্থানীয়ভাবে রেফ রয়েছে, আপনি এই শাখাটি চেকআউট (বা যাই হোক না কেন)।

কাজ শেষ!


1
আপনি একজন জীবন রক্ষাকারী :)
চাকরী

# 2 যা আমি খুঁজছিলাম। ধন্যবাদ!
ম্যাথু

4

এটি তুচ্ছ মনে হলেও আমার সমস্যাটি ছিল আমি সঠিক প্রকল্পে ছিলাম না। আপনি যে প্রকল্পে রয়েছেন আশা করছেন তা নিশ্চিত করুন; অন্যথায়, আপনি সঠিক শাখা নীচে টানতে সক্ষম হবেন না।


Oooops! ভাল একটা!
মার্চ

2

আমি নিষ্ঠুর শক্তি ব্যবহার করেছি এবং রিমোটটি সরিয়ে তারপর যুক্ত করেছি

git remote rm <remote>
git remote add <url or ssh>

1

পরিশেষে আমার পক্ষে কাজটি হ'ল হ'ল git fetchকমান্ডটিতে দূরবর্তী সংগ্রহস্থলের নাম যুক্ত করা :

git fetch core

এখন আপনি তাদের সকলকে এটির মতো দেখতে পাবেন:

git branch --all

0

আপনি রিমোট শাখা / এন গিট আনুন এবং & গিট চেকআউট রিমোটব্র্যাঞ্চ চেকআউট করতে পারেন

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