অগভীর ক্লোন - ডিপথ 1 দিয়ে কমিট করা, কমিট তৈরি করা এবং আপডেটগুলি আবার টানতে কি নিরাপদ?


280

--depth 1বিকল্প git clone:

নির্দিষ্ট ইতিহাসের সংখ্যার সংক্ষিপ্ত ইতিহাসের সাথে একটি অগভীর ক্লোন তৈরি করুন । অগভীর সংগ্রহশালার অনেকগুলি সীমাবদ্ধতা রয়েছে (আপনি এটির কাছ থেকে ক্লোন করতে বা আনতে পারবেন না, এখান থেকে চাপতেও পারবেন না) তবে আপনি যদি দীর্ঘ ইতিহাসের সাথে কেবলমাত্র একটি বৃহত প্রকল্পের সাম্প্রতিক ইতিহাসে আগ্রহী হন এবং আপনি চান প্যাচ হিসাবে সংশোধন পাঠান।

তবে আমি সাফল্যের সাথে একটি অগভীর ক্লোন তৈরি করেছি, কিছু পরিবর্তন ঘটিয়েছি এবং এই পরিবর্তনগুলি (বেয়ার ক্লোন) উত্সে ফিরে এসেছি ।

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

আমি অগভীর ক্লোনটির ধারণা পছন্দ করি - যেমন ড্রুপাল কোর: 7. থেকে শুরু করে ড্রুপাল ৪ এ কী হয়েছে তা আমার জানা দরকার নেই - তবে আমি নিজেকে পায়ে গুলি করতে চাই না।

তাহলে কি অগভীর ক্লোনটি নিরাপদ করা, এতে কমিটস বিকাশ করা, উত্স থেকে আপডেটগুলি ধরে রাখতে আবার টানুন?


13
এখানে ক্লোন গভীরতায় একটি শালীন আলোচনা ছিল
অ্যান্ডি

হ্যাঁ, আমি এটিও পড়েছি, অ্যান্ডি ধন্যবাদ। --orphanধারণা অনুরূপ বলে মনে হয় এবং আমি একটি খেলা আছে মনস্থ। তারপরেও কিছুটা স্বল্পতা নেই যে ডক্সগুলি বাস্তবের সাথে মেলে না [কারণ --orphan
ডকসটি কার


1
গিট 1.9 (Q1 2014) পুরোপুরি অগভীর রেপো ক্লোনিংকে সমর্থন করবে! দেখুন নিচের আমার উত্তর
VonC

1
গিট 2.5 (কিউ 2 2015) একটি একক আনার প্রতিশ্রুতি সমর্থন করে! " দূরবর্তী গিট সংগ্রহস্থল থেকে একটি নির্দিষ্ট প্রতিশ্রুতিটি টানুন " উল্লেখ করে আমি আমার উত্তর সম্পাদনা করেছি ।
ভোনসি

উত্তর:


304

দ্রষ্টব্য যে গিট 1.9 / 2.0 (Q1 2014) সীমাবদ্ধতাটি সরিয়ে দিয়েছে । এনগুইন থাই এনগ্যাক দুয় ( ) থেকে, 82fba2b কমিট করুন
দেখুন :pclouds

এখন যে গিটটি অগভীর ক্লোন থেকে বা কোনও ডেটা স্থানান্তরকে সমর্থন করে, এই সীমাবদ্ধতাগুলি আর সত্য নয়।

ডকুমেন্টেশন এখন সার্চ :

--depth <depth>::

নির্দিষ্ট ইতিহাসে সংখ্যার সংক্ষিপ্ত আকারের একটি ইতিহাস সহ একটি 'অগভীর' ক্লোন তৈরি করুন।

এটি 0d7d285 , f2c681c , এবং c29a7b8 এর মতো কমিট থেকে শুরু করে যা ক্লোন, সেন্ড-প্যাক / রিসিভ-প্যাক সহ / অগভীর ক্লোনগুলি সমর্থন করে।
স্মার্ট-http এখন অগভীর আনয়ন / ক্লোনকে সমর্থন করে

সমস্ত বিশদ বিবরণ " shallow.c: এর জন্য নতুন কমিটগুলি নির্বাচন করার জন্য 8 টি পদক্ষেপ রয়েছে.git/shallow

জুন 2015 আপডেট করুন: 2.5 গিট এমনকি একটি একক প্রতিশ্রুতি আনার জন্য অনুমতি দেবে !
(চূড়ান্ত অগভীর ক্ষেত্রে)


জানুয়ারী ২০১ 2016 আপডেট করুন: গিট ২.৮ (ম্যাক ২০১)) এখন আনুষ্ঠানিকভাবে একটি ন্যূনতম ইতিহাস পাওয়ার অনুশীলনের দলিল করে।
প্রতিশ্রুতি দেখুন 99487cf , প্রতিশ্রুতি 9cfde9e (30 ডিসেম্বর 2015), প্রতিশ্রুতি 9cfde9e (30 ডিসেম্বর 2015), প্রতিশ্রুতিবদ্ধ bac5874 (29 ডিসেম্বর 2015), এবং প্রতিশ্রুতি 1de2e44 (28 ডিসেম্বর 2015) স্টিফেন পি। স্মিথ দ্বারা ( commit `)
(দ্বারা একীভূত junio সি Hamano - gitster- মধ্যে কমিট 7e3e80a , 20 জানুয়ারী 2016)

এটি " Documentation/user-manual.txt"

A স্যুইচটি <<def_shallow_clone,shallow clone>>নির্দিষ্ট করে তৈরি করা হয় git-clone --depth
পরে গভীরতা পরিবর্তন করা যেতে পারে git-fetch --depthসুইচ, বা সম্পূর্ণ ইতিহাস দিয়ে পুনরুদ্ধার --unshallow

<<def_shallow_clone,shallow clone>>সাম্প্রতিক ইতিহাসে যতক্ষণ একত্রীকরণের ভিত্তি রয়েছে ততক্ষণ ইয়ের অভ্যন্তরে মার্জ হয়ে যাবে।
অন্যথায়, এটি সম্পর্কিত নয় এমন ইতিহাসগুলিকে মার্জ করার মতো হবে এবং এর ফলে বিশাল সংঘাত হতে পারে।
এই সীমাবদ্ধতাটি এই জাতীয় সংগ্রহস্থলটিকে মার্জ ভিত্তিক ওয়ার্কফ্লোতে ব্যবহারের জন্য অনুপযুক্ত করে তুলতে পারে।

2020 আপডেট করুন:

  • git fetch --shallow-exclude=সমস্ত ইতিহাস আনতে প্রতিরোধের জন্য গিট 2.11.1 প্রবর্তিত বিকল্প
  • git fetch --shallow-since=পুরানো কমিটগুলি আনা প্রতিরোধের জন্য গিট 2.11.1 প্রবর্তিত বিকল্প ।

অগভীর ক্লোন আপডেট প্রক্রিয়া সম্পর্কে আরও তথ্যের জন্য, " গিট অগভীর ক্লোনটি কীভাবে আপডেট করবেন? " দেখুন।


রিচার্ড মাইকেল মন্তব্য করেছেন :

ব্যাকফিল ইতিহাস: git pull --unshallow

আর Olle Härstedt যোগ মন্তব্য :

ব্যাকফিল করার অংশ ইতিহাসের: git fetch --depth=100


3
" হ্যাঁ , যতক্ষণ না আপনার গিট সংস্করণ 4+ বছরের পুরানো এবং একীভূত বেসটি সাম্প্রতিক ইতিহাসে রয়েছে"
বোরিস

3
@ বোরিস এই উত্তরটি আমাকে অনেক সহায়তা করে যেহেতু আমি অগভীর ক্লোন ব্যবহার করার বিষয়ে সন্দেহবাদী ছিলাম। পূর্বে এটি কখনও কখনও ভেঙে যায় যখন আমি কোন কমিট করি এবং মার্জ করি। এই উত্তরটি সংক্ষিপ্ত ইতিহাস, এটি কেন ঘটে এখন এটি কেন কাজ করে এবং কীভাবে এটি সঠিকভাবে করা যায় of
ইয়ানা আগুন সিসওয়ান্তো

6

আমার অনুরূপ প্রশ্নের কিছু উত্তর দেখুন কেন-না-ছাঁচ-থেকে-অ-অগভীর-ক্লোন এবং গিট তালিকার সাম্প্রতিক থ্রেডের লিঙ্ক।

পরিশেষে, 'গভীরতা' পরিমাপটি রেপোসের মধ্যে সামঞ্জস্যপূর্ণ নয়, কারণ তারা (ক) আপনার মাথা, বা (খ) প্রতিশ্রুতি (গুলি) আপনি ক্লোন / আনা, বা (গ) অন্য কিছুের চেয়ে পৃথক হেড থেকে পরিমাপ করেন they আপনার মনে ছিল।

হার্ড বিট একটি এর ব্যবহারের কেসটি সঠিকভাবে পেয়েছে (অর্থাত্ স্ব-সামঞ্জস্যপূর্ণ), যাতে বিতরণ করা হয়েছে, এবং তাই সম্ভবত বিচ্ছিন্ন রেপো এখনও সুখে এক সাথে কাজ করবে।

এটি checkout --orphanঠিক 'সেট আপ-আপ' পর্যায়ে দেখায় তবে "ক্লোন" পদক্ষেপে এখনও পরিষ্কার (অর্থাত্ একটি সহজ বোধগম্য একটি লাইন কমান্ড) গাইডেন্সের অভাব রয়েছে। বরং দেখে মনে হচ্ছে আপনার initএকটি রেপো রাখতে হবে, একটি remoteট্র্যাকিং শাখা স্থাপন করুন (আপনি কেবল একটি শাখা চান?) এবং তারপরে fetchসেই একক শাখা, যা ভুল হওয়ার আরও বেশি সুযোগ নিয়ে দীর্ঘায়িত বোধ করে।

সম্পাদনা: 'ক্লোন' পদক্ষেপের জন্য এই উত্তরটি দেখুন


1
ট্যাঙ্কস ফিলিপ। একটি প্রত্যন্ত শাখা আনতে এখনও পুরো ইতিহাস টানতে হবে (এএফআইএইকি)। আপেক্ষিক গভীরতার বিষয়ে আপনি সঠিক, সত্যই আমি ইতিহাসের কিছু উপযুক্ত পয়েন্ট চাই (যেমন আমার ক্ষেত্রে গিট মার্জ-বেস 7.x 7.0)
আর্টফুলবট

@artfulrobot: '--orphan' পদ্ধতি আপনাকে একটি সংক্ষিপ্ত সরু 'ক্লোন' তৈরি করতে সহায়তা করে (অর্থাত্ একটি কেন্দ্রীভূত অংশ) এবং তারপরে এটি ব্যবহার করার মতো এটি একটি যথাযথ রেপো। এটি এমন কিছু যা আমি এখনও রাগে চেষ্টা করি নি তবে শীঘ্রই এটি প্রমাণ করার দরকার need
ফিলিপ ওকলি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.