গিট অগভীর ক্লোনকে কীভাবে একটি সম্পূর্ণ ক্লোনায় রূপান্তর করবেন?


213

এই প্রশ্নটির ফলোআপ : আমার যদি অগভীর ক্লোন থাকে তবে কীভাবে এটি সমস্ত ক্লোন তৈরি করতে পুরানো সমস্ত প্রতিশ্রুতি আনবে?


4
আপনি কি @ sdram এর উত্তর চিহ্নিত করতে বিবেচনা করছেন? এটাই সঠিক।
আয়নিক বিজাউ

উত্তর:


92

সম্পাদনা: git fetch --unshallow এখন একটি বিকল্প (ধন্যবাদ জ্যাক ও'কনর)।

আপনি চালাতে পারেন git fetch --depth=1000000(ধরে নিই যে ভাণ্ডারটির এক মিলিয়নেরও কম কমিট রয়েছে)।


237
এখন যে git fetch --unshallowউপস্থিত (@ sdram এর উত্তর হিসাবে), এই উত্তর আর সেরা হয় না।
জ্যাক ও'কনোর

1
@ এসড্রামের উত্তর আমার পক্ষে কার্যকর হয়নি (গিট সংস্করণ ২.১.১), তবে এই উত্তরটি কার্যকর হয়েছিল।
কে - এসই খারাপ

2
কোনও উত্তরই আমার পক্ষে কাজ করেনি। উভয় কমান্ড সমস্ত অনুপস্থিত কমিটগুলি আনতে সফল হয়েছিল, কিন্তু যখন আমি নতুন
কমিটগুলি ঠেকানোর

3
git fetch --depth=2147483647কমান্ডটি সরবরাহ করার পক্ষে সবচেয়ে সম্ভাব্য গভীরতা।
ক্লেক

5
আমি ব্যবহার করেছি git fetch --unshallow, তবে এটি এখনও সমস্ত শাখা দেখায় না।
সিড

674

নীচের কমান্ড (গিট সংস্করণ 1.8.3) অগভীর ক্লোনটিকে নিয়মিত রূপান্তর করবে

git fetch --unshallow

তারপরে, উত্সের সমস্ত শাখায় অ্যাক্সেস পেতে (মন্তব্যগুলিতে @ পিটার ধন্যবাদ)

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

36
এটি - ইউনিয়ন-শাখা পার্শ্ব প্রতিক্রিয়াটিকে পূর্বাবস্থায় ফিরিয়ে আনবে না। এটি করতে, .git / কনফিগার সম্পাদনা করুন এবং আনুন = + রেফার্স / হেডস / বিআরএনএইচএমএম পরিবর্তন করুন: রেফস / রিমোটস / অরিজিন / ব্র্যানচামেকে আনতে = + রেফার্স / হেডস / *: রেফস / রিমোটস / উত্স / *
পিটার কর্ডেস

3
এটি দূরবর্তী শাখাগুলি ট্র্যাক করে স্থানীয় শাখা তৈরি করে না, তাই আপনাকে এখনও সেটআপ পেতে বি-বিআরএনএম / উত্স / বিআরএনআর চেকআউট করতে হবে।
পিটার কর্ডেস

26
আরও দেখুন stackoverflow.com/questions/17714159/... : git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"; git fetch origin একটি উত্তর থেকে editting .git / কনফিগ হাতে হিসাবে একই সেখানে উচিত
পিটার Cordes

এটি কেবল তখনই কাজ করে যদি রেপো অগভীর হিসাবে চিহ্নিত হয়। আমি কীভাবে মনে করতে পারি না তবে এমন পরিস্থিতি রয়েছে যেখানে স্পষ্টভাবে অগভীর ক্লোন না করে আপনি অসম্পূর্ণ রেপো দিয়ে শেষ করতে পারেন। @ svick এর stackoverflow.com/a/6802238/260122 উত্তর যে প্রতিটি সময় কাজ করে।
ক্লেক

git fetch --unshallow --update-head-ok origin '+refs/heads/*:refs/heads/*'আমার জন্য কাজ করেছেন
gzaripov

19

আমার কোনও রেপো আরও গভীর করা দরকার কেবলমাত্র একটি নির্দিষ্ট প্রতিশ্রুতি হিসাবে।

পড়ার পরে man git-fetch, আমি জানতে পারি যে কেউ প্রতিশ্রুতি নির্দিষ্ট করতে পারে না, তবে একটি তারিখ নির্দিষ্ট করতে পারে:

git fetch --shallow-since=15/11/2012

যাদের বর্ধনশীল গভীরতরকরণ প্রয়োজন তাদের জন্য আরও manএকটি উক্তি:

--deepen=<depth>

- ডিপথের অনুরূপ, এটি প্রতিটি প্রত্যন্ত শাখার ইতিহাসের অগ্রভাগের পরিবর্তে বর্তমান অগভীর সীমানা থেকে কমিটের সংখ্যা নির্দিষ্ট করে।


1

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

git fetch --update-shallow

0

উপরের বার্তাগুলির কোনওটিই কৌশলটি করেনি। আমি অগভীর ক্লোন থেকে শুরু করে গিট ট্যাগ নিয়ে কাজ করার চেষ্টা করছি।

প্রথমে চেষ্টা করেছি

git fetch --update-shallow

অর্ধপথে যে ধরণের কাজ। তবুও, কোনও ট্যাগ উপলব্ধ নেই!

git fetch --depth=1000000

এই শেষ কমান্ডটি সত্যিই ট্যাগগুলি এনেছে এবং আমি শেষ পর্যন্ত সম্পাদন করতে পারি

git checkout -b master-v1.1.0 tags/v1.1.0

এবং এটি দিয়ে করা।

আছে HTH

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