git - গিট রিমোট আপডেট এবং fetch মধ্যে পার্থক্য?




git-remote git-fetch (2)

হ্যা এবং না. git remote update শুধুমাত্র একটি নয়, সমস্ত remotes থেকে fetches।

remote update শুধুমাত্র একটি শেল স্ক্রিপ্ট (সম্ভাব্য) কিনা তা দেখার জন্য কোডটি দেখেন না, মূলত, প্রতিটি দূরবর্তী জন্য fetch চালায়। git fetch অনেক granular হতে পারে।

git remote update কি git remote update git fetch সমতুল্য git remote update ?


আপডেট: আরো তথ্য!

আমি শুরু থেকে এটি করা উচিত: আমি গিট এর গিট রেপোতে (যেমন মেটা!) গিট রিলিজ নোট তৈরি করেছি।

grep --color=always -R -C30 fetch Documentation/RelNotes/* | less

তারপরে আমি --all জন্য less অনুসন্ধান করেছি, এবং এইটি আমি গিট সংস্করণ 1.6.6 এর জন্য রিলিজ নোটের অধীনে পেয়েছি:

git fetch শিখেছি - সমস্ত এবং - --multiple বিকল্প, অনেক সংগ্রহস্থল থেকে fetch চালানোর জন্য, এবং --prune বিকল্প --prune গিয়েছিলাম দূরবর্তী ট্র্যাকিং শাখা অপসারণ। এই git remote update এবং git remote prune কম প্রয়োজনীয় করা (যদিও remote update বা remote prune অপসারণ করার কোন পরিকল্পনা নেই)।

২3 শে ডিসেম্বর, ২009 পর্যন্ত সংস্করণ 1.6.6 মুক্তি পায় নি এবং মূল পোস্টার 6 ই ডিসেম্বর ২009 এ তার প্রশ্ন জিজ্ঞাসা করেছিলেন।

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

আরো বিস্তারিত সঙ্গে মূল উত্তর

xenoterracide এর উত্তর এখন 3.5 বছর বয়সী, এবং তারপরে v1.6.5.5 বেশ কয়েকটি সংস্করণে চলে গেছে ( v1.6.5.5 এই লেখার সাথে v1.6.5.5 থেকে v1.6.5.5 চলে গেছে) এবং git remote update জন্য বর্তমান ডকুমেন্টেশনটি দেখছে এবং git fetch , এটি উভয় মূল বিকল্প এবং আর্গুমেন্ট দেওয়া, একাধিক remotes থেকে নতুন commits fetching মূলত একই ফাংশন সঞ্চালন করতে পারে মনে হচ্ছে।

সব রিমোট আনয়ন

একাধিক remotes আনতে একটি উপায় হল - সব পতাকা সঙ্গে:

git fetch --all

এটি আপনার সমস্ত কনফিগার করা রিমোট থেকে আনা হবে, অনুমান করে যে আপনার কাছে remote.<name>.skipFetchAll তাদের জন্য সেট করা আছে:

সত্য হলে, git-fetch (1) অথবা git-remote (1) এর আপডেট উপ comm্যান্ড ব্যবহার করে আপডেট করার সময় এই দূরবর্তীটি ডিফল্টভাবে বাদ দেওয়া হবে। - গিট-কনফিগারেশন ডকুমেন্টেশন

এই ব্যবহার করার সমতুল্য হবে

git remote update

কোন দূরবর্তী গোষ্ঠীকে আনতে, এবং আপনার রেপো কনফিগারেশনে remotes.default সেট না থাকা remotes.default এবং আপনার কোনও remote.<name>.skipDefaultUpdate নেই এমনও উল্লেখ না করে remote.<name>.skipDefaultUpdate সত্যতে সেট করুন।

Git এর কনফিগারেশনের জন্য বর্তমান 1.8.3.2 ডকুমেন্টেশন remotes.default সেটিং উল্লেখ করে না, তবে আমি এটি সম্পর্কে সর্বশক্তিমান Google এর সাথে পরামর্শ করেছিলাম এবং remotes.default কাছ থেকে এই সহায়ক ব্যাখ্যাটি খুঁজে পেয়েছি:

$ git config remotes.default 'origin mislav staging'
$ git remote update

# fetches remotes "origin", "mislav", and "staging"

আপনি remote update কমান্ড দ্বারা প্রাপ্ত করা রিমোটগুলির একটি ডিফল্ট তালিকা সংজ্ঞায়িত করতে পারেন। এটি আপনার সহপাঠীদের কাছ থেকে রিমোট হতে পারে, একটি ওপেনসোর্স প্রকল্পের বিশ্বস্ত সম্প্রদায়ের সদস্যদের, বা অনুরূপ।

সুতরাং সম্ভবত, যদি আপনার remotes.default সেট থাকে, এবং আপনার সমস্ত রিমোট এতে তালিকাভুক্ত না হয়, তবে git remote update আপনার রেপো "সচেতন" যে সমস্ত রিমোটগুলি আনবে না।

remote.<name>.skipDefaultUpdate সেটিংস, গিট ডক্সগুলি এভাবে ব্যাখ্যা করে:

সত্য হলে, git-fetch (1) অথবা git-remote (1) এর আপডেট উপ comm্যান্ড ব্যবহার করে আপডেট করার সময় এই দূরবর্তীটি ডিফল্টভাবে বাদ দেওয়া হবে।

Remotes একটি নির্দিষ্ট গ্রুপ প্রাপ্ত

সমস্ত রিমোট আনতে পরিবর্তে, উভয় fetch এবং remote update আপনাকে অনেকগুলি রিমোট এবং রিমোটের গোষ্ঠীগুলি আনতে সহায়তা করে:

git fetch [<options>] <group>
git fetch --multiple [<options>] [(<repository> | <group>)…]

git fetch [<options>] <group> আপনাকে একাধিক রেমোট সংগ্রহ করতে দেয় যা একটি গোষ্ঠীর অংশ ( মসলভ থেকে আরেকটি উদাহরণ ধারার জন্য ):

$ git config remotes.mygroup 'remote1 remote2 ...'
$ git fetch mygroup

git fetch --multiple আপনাকে একাধিক সংগ্রহস্থল এবং সংগ্রহস্থলের দলগুলি একবারে ( ডক্স থেকে) git fetch --multiple দেয়:

কয়েকটি <repository> এবং <group> আর্গুমেন্ট নির্দিষ্ট করার অনুমতি দিন। না <refspec>s নির্দিষ্ট করা যেতে পারে।

git remote update ডকুমেন্টেশন মধ্যে git remote update

git remote update জন্য সারসংক্ষেপগুলি নিম্নরূপ নিম্নরূপ কমান্ড সিনট্যাক্স উল্লেখ করে:

git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]

শেষ অংশটি লক্ষ্য করুন, [(<group> | <remote>)…] ? পূর্ববর্তী বিন্দু ... বোঝায় যে আপনি একাধিক গোষ্ঠী উল্লেখ করতে পারেন এবং কমান্ডের সাথে রিমোট করতে পারেন, যার মানে এটি git fetch --multiple হিসাবে একই আচরণ করে - git fetch --multiple ... কিভাবে দুটি মধ্যে সিনট্যাক্স অনুরূপ হয়?

যাইহোক, একই নথিতে, update কমান্ডের ব্যাখ্যাটি একাধিক গোষ্ঠী এবং দূরবর্তী আর্গুমেন্টগুলি নির্দিষ্ট করার বিষয়ে কিছুই বলে না, কেবল এটি

রিমোট দ্বারা সংজ্ঞায়িত হিসাবে রিপোজিটোরির একটি নামযুক্ত সেটের নামগুলির জন্য [স্প্যানিশ ভাষায়] আপডেটগুলি সন্ধান করুন remotes.<group>

git remote update একাধিক পৃথক রিমোট এবং একাধিক রিমোট গোষ্ঠী উল্লেখ করার সাথে সাথে একাধিক git fetch --multiple করে - এটি অস্পষ্ট।

একটি একক দূরবর্তী প্রাপ্ত

অবশেষে, সবাই একটি একক রিমোট আনতে সহজ কেস জানেন:

git fetch <remote>

এটি আপনি ব্যবহার করতে পারেন যে ক্ষেত্রে হতে পারে

git remote update <remote>

একই জিনিস করতে, কিন্তু আমি পূর্ববর্তী বিভাগে উল্লেখ করেছি, git remote update জন্য ডকুমেন্টেশন কমান্ডের সাথে একাধিক রেমোট ছাড়া অন্য কিছু আনতে পারে কিনা তা সম্পর্কে স্পষ্ট নয়।

শেষ করি

হিসাবে আমি ব্যাখ্যা করেছি, git fetch এবং git remote update একাধিক remotes থেকে fetching বিষয়ে অনুরূপ আচরণ। তারা অনুরূপ সিনট্যাক্স এবং আর্গুমেন্টগুলি ভাগ করে, যদিও git fetch ছোট, তাই লোকেদের সম্ভবত এটি টাইপ এবং ব্যবহার করা সহজতর।

git remote update কেবলমাত্র একটি রিমোট আনতে ব্যবহার করা যেতে পারে না, তবে যেভাবে আমি লক্ষ্য করেছি, ডকুমেন্টেশান এটি পরিষ্কার করে না।

সরাইয়া

গিট চীনামাটির বাসন কমান্ডের মধ্যে কার্যকারিতা মধ্যে সদৃশ, উপরে জিট git fetch এবং git remote update দ্বারা git fetch , অনন্য নয়। আমি git rebase --onto এবং git cherry-pick সাথে একই রকম পরিস্থিতি লক্ষ্য করেছি, এতে উভয়ই নতুন বেস git rebase --onto প্যাচ করার জন্য কয়েকটি সীমাবদ্ধতা নিতে পারে।

আমি অনুমান করেছি যে জিট বছর ধরে বিকাশ করেছে, কিছু কার্যকারিতা (অনিবার্যভাবে?) অনুলিপি করা হয়েছে, সম্ভবত কখনও কখনও শেষ-ব্যবহারকারীদের জন্য সুবিধা হিসাবে (উদাহরণস্বরূপ, cherry-pick জন্য একটি পরিসর পাস করা সহজ, একক প্রেরণ করার চেয়ে সহজ একটি পরিসীমা বাছাই এবং উপর)। V1.7.2 রিলিজ নোটে বর্ণিত হিসাবে দৃশ্যত cherry-pick সর্বদা কৃতিত্বের একটি সীমা গ্রহণ করে না:

git cherry-pick cherry-pick A..B একটি পরিসীমা git cherry-pick শিখেছি (উদাহরণস্বরূপ cherry-pick A..B এবং cherry-pick --stdin cherry-pick A..B ), তাই git revert হয়নি; এই nicer sequencing নিয়ন্ত্রণ rebase [-i] সমর্থন করে না rebase [-i] , যদিও।





git-fetch