দূরবর্তী গিট সংগ্রহস্থল থেকে নির্দিষ্ট প্রতিশ্রুতি পুনরুদ্ধার করুন


189

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

আমি গিটে নতুন, কোন উপায় আছে?


1
আপনার বিদ্যমান রেপো কি ইতিমধ্যে দূরবর্তীটির ক্লোন, বা এটি সম্পূর্ণ আলাদা?
চার্লসবি

ঠিক আছে, রেপোটি লিনাক্স কার্নেলের উত্স, এবং এটির তুলনায় অনেকটা একই
বরুণ চিত্রে

সুতরাং এটি একটি ক্লোন না না?
চার্লসবি

1
বেপারটা এমন না. এটি বিবেচনা করুন, দূরবর্তী রেপোটি ডি এর মাথায় থাকুক এবং খনিটি A এর মাথায় থাকে এবং B, C, D এর দ্বারা পিছনে থাকে। আমি এক রেপো ও C অন্য ও D বি যেমন অন্য এক থেকে থেকে বি কমিট একত্রীকরণ করতে ইচ্ছুক, সি, এই Repos মধ্যে D করে বিভিন্ন তাদের নিজস্ব বিশেষত্ব সাথে আছেন
বরুণ চিত্রে

1
@ ভারুনচিট্রে আপনি কি ভনসির অন্যান্য উত্তর গ্রহণ করতে পারবেন?
চার্লসবি

উত্তর:


109

গিট সংস্করণ 2.5+ (Q2 2015) দিয়ে শুরু করা, একটি একক প্রতিশ্রুতি আনা (সম্পূর্ণ রেপো ক্লোনিং ছাড়াই) আসলে সম্ভব।

দেখুন কমিট 68ee628 দ্বারা ফ্রেডরিক মিশ্রিত ( moroten) , 21 মে 2015.
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে a9d3493 কমিট , ২01২ জুন 2015)

আপনার এখন একটি নতুন কনফিগার আছে (সার্ভারের দিকে)

uploadpack.allowReachableSHA1InWant

upload-packকোনও রেফ টিপ থেকে পৌঁছনীয় এমন কোনও অবজেক্টের জন্য জিজ্ঞাসা করে এমন আনার অনুরোধ গ্রহণ করার অনুমতি দিন । তবে নোট করুন যে বস্তুটির পুনঃব্যবহারযোগ্যতা গণনা করা গণনা ব্যয়বহুল।
ডিফল্ট false

যদি আপনি সেই অগভীর ক্লোন ( git fetch --depth=1) এর সাথে সার্ভার-সাইড কনফিগারেশনটি একত্রিত করেন তবে আপনি একটি একক প্রতিশ্রুতি চাইতে পারেন (দেখুন t/t5516-fetch-push.sh:

git fetch --depth=1 ../testrepo/.git $SHA1

git cat-fileকমিটটি ব্যবহার করতে পারেন দেখুন যে প্রতিশ্রুতি আনা হয়েছে:

git cat-file commit $SHA1

" git upload-pack" যে পরিবেশন করে " " এমন কমিটগুলি git fetchপরিবেশন করতে বলা যেতে পারে যা কোনও রেফের ডগায় নেই, যতক্ষণ না তারা রেফারেন্স থেকে uploadpack.allowReachableSHA1InWant কনফিগারেশন ভেরিয়েবলের সাথে পৌঁছাতে পারে ।


সম্পূর্ণ ডকুমেন্টেশন হ'ল:

upload-pack: allyচ্ছিকভাবে পৌঁছনীয় sha1 আনার অনুমতি দিন

সঙ্গে uploadpack.allowReachableSHA1InWantসার্ভার প্রান্তের উপর কনফিগারেশন অপশন সেট, " git fetchচান" লাইনটি নাম একটি বস্তু যে বিজ্ঞাপনে করা হয় নি (সম্ভবত ব্যান্ডের বা submodule পয়েন্টার থেকে প্রাপ্ত করা হয়েছে) "একটি সঙ্গে একটি অনুরোধ করতে পারেন"।
কেবলমাত্র শাখার টিপস থেকে আগমনের যোগ্য অবজেক্টগুলি, অর্থাত্ বিজ্ঞাপনযুক্ত শাখা এবং গোপনীয় শাখাগুলির মিলন transfer.hideRefsপ্রক্রিয়া করা হবে।
দ্রষ্টব্য যে পুনরায় ব্যবহারযোগ্যতা যাচাই করতে ইতিহাস পিছনে ফিরে যেতে একটি যুক্ত খরচ রয়েছে associated

একটি নির্দিষ্ট কমিটের সামগ্রী প্রাপ্ত করার সময় এই বৈশিষ্ট্যটি ব্যবহার করা যেতে পারে, যার জন্য sha1 জানা যায়, পুরো সংগ্রহস্থলটির ক্লোনিংয়ের প্রয়োজন ছাড়াই, বিশেষত যদি অগভীর আনতে ব্যবহৃত হয়

দরকারী ক্ষেত্রে যেমন

  • ইতিহাসে বড় ফাইল রয়েছে এমন সংগ্রহস্থল,
  • সাবমডিউল চেকআউটের জন্য কেবল প্রয়োজনীয় ডেটা আনা,
  • যখন কোন সংখ্যার পরিবর্তে সংখ্যার পরিবর্তে কমিটের শর্তে বিবেচনা করেন, তবে এটি কোন সঠিক শাখার সাথে এবং জেরিটের অন্তর্গত তা না জানিয়ে কোনও শএ ভাগ করে নেওয়ার সময়।
    (জেরিটের কেস ইতিমধ্যে সমাধান করা হয়েছে allowTipSHA1InWantযেহেতু প্রতিটি গেরিট পরিবর্তনের রেফারেন্স রয়েছে))

গিট 2.6 (Q3 2015) সেই মডেলটিকে উন্নত করবে। কমিট 2 বিসি 31 ডি 1
দেখুন , জেফ কিং ( ) দ্বারা সিসি 118 এ 6 (28 জুলাই 2015) কমিট করুন(দ্বারা একীভূত junio সি Hamano - - মধ্যে কমিট 824a0be , 19 আগস্ট 2015)peff
gitster

refs: সমর্থন নেতিবাচক transfer.hideRefs

আপনি যদি transfer.hideRefsকনফিগারেশনটি ব্যবহার করে রেফের একটি শ্রেণিবিন্যাস আড়াল করেন তবে পরে সেই কনফিগারেশনটিকে "লুকোচুরি" রাখতে ওভাররাইড করার কোনও উপায় নেই।
এই প্যাচটি একটি "নেতিবাচক" আড়াল কার্যকর করে যার ফলে ম্যাচগুলি তাত্ক্ষণিকভাবে লুকিয়ে রাখা হিসাবে চিহ্নিত করা হয়, এমনকি অন্য ম্যাচটি এটি লুকিয়ে রাখলেও।
আমরা কনফিগারেশনের মাধ্যমে কীভাবে আমাদের খাওয়ানো হয় তার থেকে আমরা ম্যাচগুলি বিপরীত ক্রমে প্রয়োগ করার যত্ন নিই, কারণ এটি আমাদের স্বাভাবিক "শেষের একটি জয়" কনফিগার অগ্রাধিকারের কাজকে (এবং এন্ট্রিগুলিতে .git/configউদাহরণস্বরূপ, ওভাররাইড হবে)/etc/gitconfig ) দেয়।

সুতরাং আপনি এখন এটি করতে পারেন:

git config --system transfer.hideRefs refs/secret
git config transfer.hideRefs '!refs/secret/not-so-secret'

refs/secretএকটি নির্দিষ্ট রেপোতে একটি পাবলিক বিট ব্যতীত সমস্ত ভাণ্ডারে লুকিয়ে রাখতে ।


গিট 2.7 (নভেম্বর / ডিসেম্বর 2015) আবার উন্নতি করবে:

দেখুন কমিট 948bfa2 , কমিট 00b293e (05 নভেম্বর 2015), 78a766a কমিট , কমিট 92cab49 , কমিট 92cab49 , কমিট 92cab49 (03 নভেম্বর 2015), কমিট 00b293e , কমিট 00b293e (05 নভেম্বর 2015), এবং 92cab49 কমিট , 92cab49 কমিট , কমিট 92cab49 , লুকাস ফ্লিচার () দ্বারা 92cab49 (03 নভেম্বর 2015 ) প্রতিশ্রুতিবদ্ধ । সাহায্যপ্রাপ্ত: এরিক সানশাইন ( )(দ্বারা একীভূত জেফ রাজা - - মধ্যে dbba85e কমিট , 20 নভেম্বর 2015)lfos
sunshineco
peff

config.txt: hideRefsনেমস্পেসের সাথে শব্দার্থবিজ্ঞানের ডকুমেন্ট করুন

এই মুহুর্তে, কোনও transfer.hideRefsনামস্থান সেট করা থাকলে কী আচরণ করা উচিত তার কোনও স্পষ্ট সংজ্ঞা নেই is
সেক্ষেত্রে hideRefsউপসর্গগুলি মিলিয়ে ফেলা নামগুলি মিলিয়ে ব্যাখ্যা করুন । এইভাবে hideRefsপ্যাটার্নগুলি বর্তমানে রিসিভ-প্যাকটিতে পরিচালনা করা হয়।

লুকানো রেফ: সম্পূর্ণ রেফের সাথে ম্যাচ করার জন্য সমর্থন যুক্ত করুন

স্ট্রিপড রেফগুলির সাথে ম্যাচিংয়ের পাশাপাশি, এখন hideRefsযে কোনও প্যাটার্ন যুক্ত করা যেতে পারে যা পুরো (আনস্ট্রিপড) রেফের সাথে মিলে যায়।
স্ট্রিপড এবং পূর্ণ ম্যাচের মধ্যে পার্থক্য করার জন্য, এই নতুন নিদর্শনগুলি অবশ্যই একটি সারফ্লেক্স ( ^) দিয়ে উপস্থাপিত করা উচিত ।

অতএব নতুন ডকুমেন্টেশন :

transfer.hideRefs:

যদি কোনও নেমস্পেস ব্যবহার করা হয়, transfer.hiderefsনিদর্শনগুলির সাথে মিলে যাওয়ার আগে প্রতিটি রেফারেন্স থেকে নেমস্পেস উপসর্গটি ছিটিয়ে দেওয়া হবে ।
উদাহরণস্বরূপ, যদি refs/heads/masterনির্দিষ্ট করা হয় transfer.hideRefsএবং বর্তমান নামস্থানটি হয় fooতবে refs/namespaces/foo/refs/heads/master বিজ্ঞাপনগুলি বাদ দেওয়া হয় refs/heads/masterএবং refs/namespaces/bar/refs/heads/masterতথাকথিত "হ্যাভ" লাইন হিসাবে বিজ্ঞাপন দেওয়া হয়।
স্ট্রিপিংয়ের আগে রেফগুলি ম্যাচ করার জন্য, ^রেফ নামের সামনে একটি যুক্ত করুন । যদি আপনি একত্রিত হন !এবং ^, !অবশ্যই প্রথমে নির্দিষ্ট করা উচিত।


আর .. কনফিগারেশনে মন্তব্যগুলিতে উল্লেখ করেছে uploadpack.allowAnySHA1InWant, যা upload-packকোনও fetchঅনুরোধ গ্রহণ করতে দেয় যা যে কোনও বস্তুর জন্য জিজ্ঞাসা করে। (ডিফল্ট এ false)।

দেখুন f8edeaa কমিট দ্বারা (নভেম্বর 2016, গীত v2.11.1) ডেভিড "novalis" টার্নার ( novalis) :

upload-pack: allyচ্ছিকভাবে কোনও sha1 আনার অনুমতি দিন

আমরা রিপোসিটরির সম্পূর্ণরূপে সমস্ত কিছু অ্যাক্সেস করার জন্য ব্যবহারকারীর উপর নির্ভর করি সেই ক্ষেত্রে একটি পুনর্বাসন চেক করা কিছুটা নির্বোধ বলে মনে হচ্ছে।

এছাড়াও, এটি একটি বিতরণ সিস্টেমে যথাযোগ্য - সম্ভবত একটি সার্ভার একটি রেফের বিজ্ঞাপন দেয়, তবে অন্যটির পরে সেই রেফের উপর জোর চাপ দেওয়া হয়েছিল এবং সম্ভবত দুটি এইচটিটিপি অনুরোধ এই বিভিন্ন সার্ভারের দিকে পরিচালিত হয়েছে।


4
আপনি কীভাবে কেবল এই একক প্রতিশ্রুতি দিয়ে একটি রেপো ক্লোন তৈরি করবেন তার আরও একটি সম্পূর্ণ উদাহরণ দিতে পারেন? আমি চেষ্টা করেছিলাম কিন্তু ব্যর্থ হয়েছি .. ধন্যবাদ!
লার্স বিল্কে

1
আমি গিটহাবের দিকে এগিয়ে যেতে চাই। হতে পারে তারা এটিকে অনুমতি দেয় না।
লার্স বিল্কে

2
@ লার্সবিল্ক আমরা ক্লোন বা এখানে টানার কথা বলছি, ধাক্কা না দিয়ে। এবং আমি নিশ্চিত যে গিটহাবের সার্ভারে এখনও গিট 2.5 নেই।
ভোনসি

2
এখন আরও ভাল, সেখানে uploadpack.allowAnySHA1InWantপুনঃব্যবহারযোগ্যতা-গণনা জরিমানা (এবং ডস ভেক্টর) ছাড়া রয়েছে।
আর .. গীটহাব বন্ধ করুন সহায়তা বরফ

1
ধন্যবাদ! আমি মজার বিষয় বোধ করি যে তারা এটিকে "ব্যবহারকারীর অ্যাক্সেসের উপর ভরসা" হিসাবে বর্ণনা করে "রেপো লেখকদের বিশ্বাস করে যে এলোমেলো বাজে কথা প্রকাশ না করার জন্য তারা পাবলিক করার উদ্দেশ্যে নয়"।
আর .. গীটহাব বন্ধ করুন ICE

97

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

ব্যান্ডউইদথে একটি নতুন সংগ্রহশালা থেকে সংগ্রহ করা খুব সস্তা, কারণ এটি কেবল আপনার পরিবর্তনগুলি ডাউনলোড করবে। গিট ন্যূনতম লোড সহ সঠিক জিনিস তৈরি করার দিক থেকে ভাবুন।

গিট .gitফোল্ডারে সবকিছু সঞ্চয় করে । একটি প্রতিশ্রুতি আনা এবং বিচ্ছিন্নভাবে সংরক্ষণ করা যায় না, এটির জন্য সমস্ত পূর্বপুরুষ প্রয়োজন। তারা আন্তঃসম্পর্কিত


ডাউনলোডের আকার হ্রাস করতে আপনি গিটকে কেবল একটি নির্দিষ্ট শাখার সাথে সম্পর্কিত অবজেক্ট আনতে বা প্রতিশ্রুতি দিতে বলতে পারেন:

git fetch origin refs/heads/branch:refs/remotes/origin/branch

এটি কেবলমাত্র দূরবর্তী শাখায় থাকা কমিটগুলি branch (এবং কেবল যেগুলি আপনি মিস করেন) ডাউনলোড করবেন এবং এটি এতে সংরক্ষণ করবেনorigin/branch । তারপরে আপনি মার্জ বা চেকআউট করতে পারেন।

আপনি কেবলমাত্র একটি SHA1 প্রতিশ্রুতি নির্দিষ্ট করতে পারেন:

git fetch origin 96de5297df870:refs/remotes/origin/foo-commit

এটি কেবলমাত্র নির্দিষ্ট SHA-1 96de5297df870 (এবং এর পূর্বপুরুষদের যেটি আপনি মিস করেন) এর প্রতিশ্রুতি ডাউনলোড করবেন এবং এটি (অস্তিত্বহীন) দূরবর্তী শাখা হিসাবে সংরক্ষণ করবে origin/foo-commit


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

1
এটি এখনও গিট আনার সাথে প্রচুর ডেটা (430 এমবি) ডাউনলোড করে। প্রয়োজনীয় প্রতিশ্রুতি মাত্র কয়েক কেবিএস। এটি করার জন্য কোন বিশেষ আদেশ নেই? এবং আমি যদি 'গিট ফেচড' রেপো সরিয়ে নিতে চাই তবে কী হবে? এটা কোথায় রাখা হয়?
বরুণ চিত্রে

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

6
শেষ কমান্ড (SHA1 কমিট ব্যবহার করে) আমার পক্ষে কাজ করে না। কমান্ডটি নিঃশব্দে কিছু সময়ের জন্য "কিছু" করে এবং তারপরে কোনও বার্তা বা স্পষ্ট পার্শ্ব-প্রতিক্রিয়া ছাড়াই বের হয়।
এইচআরজে

1
@ এইচআরজে হ্যাঁ, আমি গিতের সাথে উবুন্টু 16.04 এও এর মুখোমুখি হয়েছি 2.7.4-0ubuntu1.3। যাইহোক, 2.16.2-0ppa1~ubuntu16.04.1গিট-কোর পিপিএ থেকে ব্যবহার করার সময় , এটি যেমনটি করা উচিত তেমন কাজ করে। ঠিক হয়ে গেছে এমন বাগের মতো শোনাচ্ছে। তাত্ক্ষণিক অনুসন্ধানের সাথে এর উল্লেখ খুঁজে পাওয়া যায়নি। যদি কেউ আমাকে এটির একটি পয়েন্টার পেতে পারেন তবে আমি এই ফিক্সটি ব্যাকপোর্ট করতে চাই।
gertvdijk

62

আমি আমার গিট রেপোতে টান দিয়েছি:

git pull --rebase <repo> <branch>

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

git reset --hard <commit-hash>

আশাকরি এটা সাহায্য করবে.


1
উত্তরগুলির কোনওটিই কাজ করেনি, যদিও এটি আমার জীবন বাঁচায়! একটি গুচ্ছ ধন্যবাদ!
মাইচেল্টিনটিউক

ক্লোনিংয়ের পরে রিসেট --হার্ড আমার পক্ষে কাজ করেছিল! ধন্যবাদ।
নিক-ACNB

3
-১: "ধ্বংসাত্মক" কমান্ডগুলি যেমন git reset --hardসাধারণ সমাধানগুলিতে ভাগ করা হয় তখন লোকেরা তাদের ডেটা হারাতে পারে এমন ফাঁদগুলিতে নিয়ে যেতে পারে (বা, এই ক্ষেত্রে: যেখানে তাদের ডেটা ফিরে পাওয়া অনর্থক)।
yaauie

54

আপনি সহজেই এর সাথে একটি রিমোট রেপোর একক প্রতিশ্রুতি আনতে পারেন

git fetch <repo> <commit>

কোথায়,

  • <repo>দূরবর্তী রেপো নাম (যেমন origin) বা এমনকি একটি দূরবর্তী রেপো ইউআরএল (উদাঃ) হতে পারেhttps://git.foo.com/myrepo.git ) হতে পারে
  • <commit> SHA1 কমিট হতে পারে

উদাহরণ স্বরূপ

git fetch https://git.foo.com/myrepo.git 0a071603d87e0b89738599c160583a19a6d95545

প্রতিশ্রুতি আনার পরে (এবং নিখোঁজ পূর্বপুরুষদের) আপনি কেবল এটির সাথে চেকআউট করতে পারেন

git checkout FETCH_HEAD

নোট করুন যে এটি আপনাকে "বিচ্ছিন্ন মাথা" অবস্থায় নিয়ে আসবে।


10
আমি যখন fetchআপনার মতো নির্দিষ্ট রেভ করার চেষ্টা করি তখন গিটটি ত্রুটি কোড 1 এবং কোনও আউটপুট না দিয়ে ব্যর্থ হয়। এটি কি এমন কিছু ছিল যা পূর্ববর্তী সংস্করণগুলিতে কাজ করত? (আমি v2.0.2।)
জ্যাক ও'কনোর

2
সম্পাদনা: এটি ইতিমধ্যে স্থানীয়ভাবে প্রতিশ্রুতিবদ্ধ থাকলে এটি কাজ করে, যেমন আমি ইতিমধ্যে একটি পূর্ণ কাজ করেছি fetch, যদিও সেক্ষেত্রে আমি নিশ্চিত না যে ব্যবহারটি কী।
জ্যাক ও'কনর

2
প্রকৃতপক্ষে, এটি আমার কাছে গিট ২.০.২ এর সাথে আর কাজ করবে বলে মনে হয় না। :(
ফ্লো

2
git checkout FETCH_HEADসাহায্য করে।
lzl124631x

1
এই পদ্ধতিটি অগভীর আনার (উদাহরণস্বরূপ --depth=1) দিয়ে কাজ করবে না !
কিংমেকিং

16

আপনি সহজেই এর সাথে রিমোট রেপো আনতে পারবেন:

git fetch <repo>

কোথায়,

  • <repo>দূরবর্তী রেপো নাম (যেমন origin) বা এমনকি একটি দূরবর্তী রেপো ইউআরএল (যেমনhttps://git.foo.com/myrepo.git ) হতে পারে

উদাহরণ স্বরূপ:

git fetch https://git.foo.com/myrepo.git 

আপনি রেপোগুলি আনার পরে আপনি যে কমিটগুলি চান তা মার্জ করতে পারেন (যেহেতু প্রশ্নটি একটি প্রতিশ্রুতি পুনরুদ্ধারের বিষয়ে, পরিবর্তে আপনি কেবল একটি কমিট বেছে নিতে চেরি-পিক ব্যবহার করতে পারেন):

git merge <commit>
  • <commit> SHA1 কমিট হতে পারে

উদাহরণ স্বরূপ:

git cherry-pick 0a071603d87e0b89738599c160583a19a6d95545

অথবা

git merge 0a071603d87e0b89738599c160583a19a6d95545

যদি আপনি সর্বশেষতম প্রতিশ্রুতিবদ্ধ হন যে আপনি মার্জ করতে চান তবে আপনি FETCH_HEAD ভেরিয়েবলটিও ব্যবহার করতে পারেন:

git cherry-pick (or merge) FETCH_HEAD

এটির জন্য কোনও মেশিনে গিট অ্যাকাউন্ট সেটআপ প্রয়োজন। এটি কোনও পরীক্ষার অ্যাকাউন্টের অধীনে কাজ করে না। আপনার কি এমন কিছু আছে যা পরীক্ষার অ্যাকাউন্টের অধীনে কাজ করে?
jww

তুমি কি মনে কর ? আপনি গিট আনতে পারবেন না?
সেরজিও

উম্মম তাহলে কমান্ড হবে git config set uploadpack.allowReachableSHA1InWant ?
আলেকজান্ডার মিলস

2

এটি সেরা কাজ করে:

git fetch origin specific_commit
git checkout -b temp FETCH_HEAD

নাম "টেম্প" যা আপনি চান ... এই শাখাটি যদিও অনাথ হতে পারে


স্পষ্টত না 1.8.x মত পুরোনো Git সংস্করণের সাথে
sorin

1

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

1) স্থানীয় এবং খালি খণ্ডার তৈরি করুন গিট ইডিতে

2) গিট রিমোট অ্যাড অরিজিন " url-of-repository "

3) গিট আনতে উত্স [আপনি সংযুক্ত না করা হলে এটি আপনার ফাইলগুলি আপনার স্থানীয় ওয়ার্কস্পেসে স্থানান্তরিত করবে না]

4) গিট চেরি-পিক " আপনার-প্রয়োজন-লম্বা-কমিট-হ্যাশ-লিখুন "

সম্পন্ন.এভাবে, আপনার কাছে কেবলমাত্র আপনার স্থানীয় ক্ষেত্রে সেই নির্দিষ্ট কমিটের ফাইল থাকবে।

লিখুন দীর্ঘ কমিট-হ্যাশ:

আপনি এটি -> গিট লগ - ব্যাখ্যাটি = অনলাইনলাইন ব্যবহার করে পেতে পারেন



0

যদি অনুরোধ করা প্রতিশ্রুতি দূরবর্তী রেপোতে টানার অনুরোধ থাকে তবে আপনি এটির আইডি দ্বারা এটি পেতে পারেন:

# Add the remote repo path, let's call it 'upstream':
git remote add upstream https://github.com/repo/project.git

# checkout the pull ID, for example ID '60':
git fetch upstream pull/60/head && git checkout FETCH_HEAD
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.