উত্তর:
আপডেট: আরও তথ্য!
আমার প্রথম থেকেই এটি করা উচিত ছিল: আমি গিটের গিট রেপোতে গিট রিলিজ নোটগুলিকে গ্রেপ্তার করেছি (তাই মেটা!)
grep --color=always -R -C30 fetch Documentation/RelNotes/* | less
তারপরে আমি less
অনুসন্ধান করেছি --all
এবং এটিই আমি গিট সংস্করণ ১..6..6 এর রিলিজ নোটের আওতায় পেয়েছি :
git fetch
শিখেছি--all
এবং--multiple
বিকল্পগুলি, অনেকগুলি সংগ্রহস্থল থেকে আনার জন্য চালানো এবং--prune
বাসি হয়ে যাওয়া দূরবর্তী ট্র্যাকিং শাখাগুলি সরানোর বিকল্প। এগুলি তৈরিgit remote update
এবংgit remote prune
কম প্রয়োজনীয় (সরানোর কোনও পরিকল্পনা নেইremote update
এবংremote prune
যদিও)।
সংস্করণ 1.6.6 ২৩ শে ডিসেম্বর, ২০০৯ পর্যন্ত প্রকাশিত হয়নি এবং আসল পোস্টার ২০০৯ সালের asked ই ডিসেম্বর তার প্রশ্ন জিজ্ঞাসা করেছিল।
আপনি যেমন প্রকাশের নোটগুলি থেকে দেখতে পাচ্ছেন, গিটের লেখকরা এই সত্যটি সম্পর্কে সচেতন ছিলেন যে git remote update
কমান্ড কার্যকারিতাটি কিছুটা নকল হয়ে গিয়েছিল git fetch
তবে তারা এটি সরিয়ে না নেওয়ার সিদ্ধান্ত নিয়েছে, সম্ভবত বিদ্যমান স্ক্রিপ্টগুলি এবং প্রোগ্রামগুলির সাথে পশ্চাদপদ সামঞ্জস্যের জন্য, বা সম্ভবত এটি মাত্র অনেক বেশি কাজ এবং উচ্চতর অগ্রাধিকার আইটেম রয়েছে।
আরও বিশদ সহ আসল উত্তর
xenoterracide এর উত্তর এখন 3.5 বছরের পুরানো, এবং গিট তখন থেকেই বেশ কয়েকটি সংস্করণে চলে গেছে (এটি এই লেখার হিসাবে v1.6.5.5 থেকে v1.8.3.2 এ চলে গেছে ), এবং বর্তমান ডকুমেন্টেশনের দিকে তাকিয়ে আছে git remote update
এবং git fetch
এটি দেখে মনে হচ্ছে যেমন তারা উভয়ই মূল বিকল্পগুলি এবং যুক্তি দিয়ে একাধিক রিমোটগুলি থেকে নতুন কমিট আনার একই ফাংশন সম্পাদন করতে পারে।
একাধিক রিমোট আনার একটি উপায় --all
পতাকা সহকারে :
git fetch --all
এটি আপনার সমস্ত কনফিগার করা রিমোটগুলি থেকে ধরে নেওয়া হবে, ধরে নেওয়া হবে যে আপনি remote.<name>.skipFetchAll
তাদের জন্য সেট করেননি:
সত্য হিসাবে, গিট-ফেচ (1) বা গিট-রিমোট (1) এর আপডেট সাবকম্যান্ড ব্যবহার করে আপডেট করার সময় এই রিমোটটি ডিফল্টরূপে এড়িয়ে যায় । - গিট কনফিগার ডকুমেন্টেশন
এটি ব্যবহারের সমতুল্য হবে
git remote update
আনার জন্য কোনও দূরবর্তী গ্রুপ উল্লেখ না করে remotes.default
এবং আপনার রেপো কনফিগারেশনে সেট না করে এবং আপনার প্রত্যন্তগুলির কোনওোটাই remote.<name>.skipDefaultUpdate
সত্য হয়ে যায় নি।
গীত কনফিগারেশন জন্য বর্তমান 1.8.3.2 ডকুমেন্টেশন উল্লেখ না remotes.default
সেটিং, কিন্তু আমি এটা সম্পর্কে পরাক্রমশালী গুগল আলোচনা থেকে এই সহায়ক ব্যাখ্যা পাওয়া Mislav Marohnić :
$ git config remotes.default 'origin mislav staging'
$ git remote update
# fetches remotes "origin", "mislav", and "staging"
remote update
কমান্ড দ্বারা আনার জন্য আপনি রিমোটগুলির একটি ডিফল্ট তালিকা নির্ধারণ করতে পারেন । এগুলি আপনার সতীর্থ, কোনও ওপেনসোর্স প্রকল্পের বিশ্বস্ত সম্প্রদায়ের সদস্যদের কাছ থেকে দূরবর্তী হতে পারে similar
সুতরাং সম্ভবতঃ, যদি আপনি remotes.default
সেট করে রেখেছেন এবং আপনার সমস্ত রিমোট এতে তালিকাভুক্ত না হয়ে থাকে, তবে git remote update
আপনার রেপো "সচেতন" এমন সমস্ত রিমোটগুলি আনবে না।
হিসাবে remote.<name>.skipDefaultUpdate
সেটিং গীত ডক্স এটা thusly ব্যাখ্যা:
সত্য হিসাবে, গিট-ফেচ (1) বা গিট-রিমোট (1) এর আপডেট সাবকম্যান্ড ব্যবহার করে আপডেট করার সময় এই রিমোটটি ডিফল্টরূপে এড়িয়ে যায় ।
সব রিমোটের আনার সময় পরিবর্তে উভয় fetch
এবং remote update
আপনি একাধিক remotes ব্যবহার এবং remotes ব্যবহার আনতে দলের নির্দিষ্ট করার অনুমোদন দেবে:
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
একবারে ( ডক্স থেকে ) আনতে আপনাকে বেশ কয়েকটি সংগ্রহস্থল এবং সংগ্রহস্থল গোষ্ঠী নির্দিষ্ট করার অনুমতি দেয় :
বেশ কয়েকটি
<repository>
এবং<group>
তর্কগুলি নির্দিষ্ট করার অনুমতি দিন । কোন<refspec>s
নির্দিষ্ট করা যেতে পারে।
git remote update
ডকুমেন্টেশনে অস্পষ্টতা
জন্য সারসংক্ষেপgit remote update
নির্দিষ্ট করে কমান্ড সিনট্যাক্স নিম্নরূপ যে:
git remote [-v | --verbose] update [-p | --prune] [(<group> | <remote>)…]
শেষ অংশ লক্ষ্য করুন [(<group> | <remote>)…]
,? পিছনের বিন্দুগুলি ...
বোঝায় যে আপনি একাধিক গোষ্ঠী এবং কমান্ডটি ব্যবহার করে রিমোটগুলি নির্দিষ্ট করতে পারবেন, যার অর্থ এটি একইরূপে আচরণ করবে 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
একাধিক রিমোট থেকে আনার ক্ষেত্রে একইরকম আচরণ করব। তারা অনুরূপ সিনট্যাক্স এবং তর্কগুলি ভাগ করে নিলেও git fetch
সংক্ষিপ্ত, তাই লোকেরা সম্ভবত এটি টাইপ করা এবং ব্যবহার করা সহজ করে।
এটি এমন ক্ষেত্রে হতে পারে যা git remote update
কেবলমাত্র একটি একক দূরবর্তী আনতে ব্যবহার করা যায় না git fetch
, তবে আমি উল্লেখ করেছি যে ডকুমেন্টেশনটি এটি পরিষ্কার করে না।
সরাইয়া
গিট পোরস্লেইন কমান্ডগুলির মধ্যে কার্যকারিতাটির অনুলিপি, এর দ্বারা git fetch
এবং git remote update
উপরে উদাহরণ দিয়ে দেওয়া , অনন্য নয়। আমি একই অবস্থা লক্ষ্য করেছি git rebase --onto
এবং git cherry-pick
, যে উভয় একটি নতুন বেস কমিট সম্মুখের প্যাচ করার জন্য বদ্ধ পরিকর একটি সীমার গ্রহণ করতে পারেন।
আমি অনুমান করি যে কয়েক বছর ধরে গিট যেমন বিবর্তিত হয়েছে, কিছু কার্যকারিতা (অনিবার্যভাবে?) নকল করা হয়েছিল, সম্ভবত কখনও কখনও শেষ-ব্যবহারকারীদের সুবিধার্থে (উদাহরণস্বরূপ, cherry-pick
একক প্রতিশ্রুতি বার বার করার চেয়ে, একটি রেঞ্জটি পাস করা সহজ) ler একটি ব্যাপ্তি বাছাই করতে)। V1.7.2 রিলিজ নোটগুলিতে বর্ণিতcherry-pick
হিসাবে দৃশ্যত সবসময় কমিটস এর কিছু পরিসীমা গ্রহণ করেনি :
git cherry-pick
অনেকগুলি কমিট (যেমনcherry-pick A..B
এবংcherry-pick --stdin
) বাছাই করতে শিখেছি , তাই করেছেgit revert
;rebase [-i]
যদিও এগুলি উত্তম সিকোয়েন্সিং নিয়ন্ত্রণটিকে সমর্থন করে না ।
হ্যা এবং না. git remote update
কেবলমাত্র একটি নয়, সমস্ত রিমোট থেকে নেওয়া।
কোডটি না দেখে remote update
এটি দেখতে কেবল শেল স্ক্রিপ্ট (সম্ভব) এটি, মূলত, প্রতিটি রিমোটের জন্য আনতে চলে। git fetch
অনেক বেশি দানাদার হতে পারে।
git remote update
, গিট-রিমোট মানচিত্রটি দেখুন।
git remote
এটি কোনও শেল স্ক্রিপ্ট নয়, তবে এটি git fetch
একটি এর মধ্যে ছড়িয়ে পড়ে remote update
।
git fetch
কমান্ড বিকল্প আছে git remote update
?
git fetch --all
git rebase
ভালো হয়mv
এবংgit cherry-pick
ভালো হয়cp
।--onto
সুইচ যে পরিবর্তন করবেন না। আপনিgit rebase
কেবলমাত্র SHA1 টি মান উল্লেখ করলেই আপনি অনুলিপি পেতে পারেন, অন্যথায় আপনার শাখাটি সরানো হবে!