গিট অ্যাম এবং গিট প্রয়োগের মধ্যে পার্থক্য কী?


134

উভয় git amএবং git applyপ্যাচ প্রয়োগ করতে ব্যবহার করা যেতে পারে। আমি পার্থক্য দেখতে ব্যর্থ। আমি এখন একটি পার্থক্য দেখতে পাচ্ছি: git amস্বয়ংক্রিয়ভাবে প্রতিশ্রুতিবদ্ধ যেখানে git applyকেবল ফাইলগুলিকে স্পর্শ করে কিন্তু প্রতিশ্রুতি তৈরি করে না। এটাই কি একমাত্র পার্থক্য?


11
amএর সংক্ষিপ্তসার হিসাবে ভাবা যেতে পারে Apply Mail...
ফিলিপ ওকলে

উত্তর:


144

ইনপুট এবং আউটপুট উভয়ই পৃথক:

  • git applyএকটি প্যাচ নেয় (যেমন আউটপুট git diff) এবং এটি ওয়ার্কিং ডিরেক্টরিতে প্রয়োগ করে (বা সূচক, যদি ব্যবহৃত হয় --indexবা --cachedব্যবহৃত হয়)।
  • git amইমেল বার্তাগুলি (যেমন আউটপুট git format-patch) হিসাবে ফর্ম্যাট করা কমিটগুলির একটি মেলবক্স নেয় এবং সেগুলি বর্তমান শাখায় প্রয়োগ করে।

git amgit applyপর্দার আড়ালে ব্যবহার করে তবে আরও কাজ করে (একটি Maildirবা mbox, এবং ইমেল বার্তাগুলি পার্স করা) এবং পরে (কমিট তৈরি করা)।


6
দ্রষ্টব্য: আউটপুটও git applyগ্রহণ করবে বলে মনে হচ্ছে git format-patch
সিরো সান্তিলি 郝海东 冠状 病 六四 事件 法轮功

7
git applyআউটপুট জন্য git format-patchপাশাপাশি কাজ করবে কিন্তু পরিবর্তনগুলি অস্তিত্বহীন হবে এবং প্রতিশ্রুতিবদ্ধ হতে হবে (এইভাবে তারা যে সূচকটিতে প্রয়োগ করা হয় তার মধ্যে একটি পৃথক কমিট পয়েন্ট তৈরি করা)। সঙ্গে git amআপনি বহন করা হবে তথ্য কমিট সূচক এটি প্রয়োগ করা হয় মধ্যে (লেখক, ইত্যাদি সহ)। git applyতারপরে আপনার রেপো (খারাপ) প্যাচিংয়ের জন্য, git amবৈধ বৈশিষ্ট্য পরিবর্তন করতে পারে এবং এটি আপনার রেপোতে (পছন্দের পদ্ধতির) অন্তর্ভুক্ত করতে পারে।
প্রসূন জোশী

18

git applyস্ট্রেইট ডিফস (উদাহরণস্বরূপ git diff) git amপ্রয়োগ করার জন্য যেখানে ইমেলগুলি থেকে প্যাচগুলি এবং প্যাচগুলির অনুক্রম প্রয়োগ করা হয়, এমবক্স বা মাইল্ডির ফর্ম্যাট এবং এটির "বিপরীত" git format-patchgit amইমেল বার্তাগুলি থেকে প্রতিশ্রুতিবদ্ধ বার্তাগুলি এবং লেখকের বিশদ আহরণের চেষ্টা করে যার কারণে এটি কমিট করতে পারে।


9

আপনার সাথে git amপ্যাচটি প্রয়োগ করে আপনি যদি ব্যবহার করেন তবে git statusকোনও স্থানীয় পরিবর্তন দেখতে পাবেন না।

git applyআপনি উত্স ফাইলগুলিতে পরিবর্তনগুলি এমনভাবে তৈরি করতে সক্ষম হবেন যেন আপনি নিজের দ্বারা কোডটি লিখেছিলেন, ফলস্বরূপ git statusএবং git diffআপনি যে প্যাচটি প্রয়োগ করেছেন তাতে পরিবর্তনগুলি আউটপুট করে দেবে, তারপরে আপনি আরও পরিবর্তনগুলি সংশোধন / যুক্ত করতে এবং নতুন প্যাচ হিসাবে একত্রে জমা দিতে পারবেন ।

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