আমি সবেমাত্র আবিষ্কার করেছি এবং ব্যবহার করেছি FETCH_HEAD। আমি একটি সার্ভার থেকে কিছু সফ্টওয়্যার স্থানীয় কপি চেয়েছিলাম এবং আমি করেছি
git fetch gitserver release_1
gitserverআমার মেশিনের নাম এটি গিট রিপোজিটরিগুলি সঞ্চয় করে।
release_1একটি সফ্টওয়্যার সংস্করণ জন্য ট্যাগ। অবাক করার মতো বিষয় release_1তখন আমার লোকাল মেশিনে কোথাও পাওয়া যায়নি। আমাকে টাইপ করতে হয়েছিল
git tag release_1 FETCH_HEAD
দূরবর্তী সংগ্রহস্থল থেকে স্থানীয় একের কাছে ট্যাগযুক্ত চেইনের অনুলিপি (রিলিজ_1) সম্পূর্ণ করতে। আনতে রিমোট ট্যাগটি পাওয়া গিয়েছিল, আমার স্থানীয় মেশিনে প্রতিশ্রুতি অনুলিপি করেছিল, একটি স্থানীয় ট্যাগ তৈরি করেনি , তবে FETCH_HEADপ্রতিশ্রুতির মান নির্ধারণ করেছিল, যাতে আমি এটি খুঁজে পেতে এবং ব্যবহার করতে পারি। আমি তখন FETCH_HEADএকটি স্থানীয় ট্যাগ তৈরি করতাম যা দূরবর্তীতে ট্যাগটির সাথে মেলে। এটি কী FETCH_HEADএবং কীভাবে এটি ব্যবহার করা যায় তার একটি বাস্তব চিত্রণ এবং অন্য কেউ কারও পক্ষে উপকারী হয়ে ভাবতে পারে যে গিট ফেচ কেন আপনি মূর্খতার সাথে প্রত্যাশা করবেন তা না করে।
আমার মতে এটি সেই উদ্দেশ্যটির পক্ষে সবচেয়ে ভাল এড়ানো এবং আমি যা করার চেষ্টা করেছিলাম তা অর্জনের আরও ভাল উপায়
git fetch gitserver release_1:release_1
অর্থাত্ রিলিজ_1 আনতে এবং এটিকে স্থানীয়ভাবে রিলিজ_1 বলে। (এটি উত্স: গন্তব্য, https://git-scm.com/book/en/v2/Git-Internals-The-Refspec দেখুন ; আপনি যদি একে আলাদা নাম দিতে চান তবেই !)
আপনি FETCH_HEADযদিও বিভিন্ন সময়ে ব্যবহার করতে পারেন :
git fetch gitserver bugfix1234
git cherry-pick FETCH_HEAD
আপনার গিট সার্ভার থেকে বাগ ফিক্স নম্বর 1234 ব্যবহার করার এবং গিটের আবর্জনা সংগ্রহটি সার্ভারের অনুলিপিটি আপনার বর্তমান শাখায় একবার চেরি-বাছাই হয়ে যাওয়ার পরে সার্ভার থেকে অপসারণের জন্য ছেড়ে দেওয়ার একটি দুর্দান্ত উপায় হতে পারে। (আমি ধরে নিচ্ছি যে সার্ভারে বাগ বাগের পুরোটি রয়েছে এমন একটি দুর্দান্ত ক্লিন ট্যাগযুক্ত অঙ্গীকার রয়েছে!)
git fetch origin masterআসলে আপডেট হবেorigin/masterনা কেবল নয়FETCH_HEAD। দেখুন stackoverflow.com/a/20967347/6309