जवाबों:
इनपुट और आउटपुट दोनों अलग हैं:
git applyएक पैच लेता है (उदाहरण के लिए आउटपुट git diff) और इसे कार्यशील निर्देशिका (या इंडेक्स, यदि --indexया --cachedउपयोग किया जाता है) पर लागू होता है ।git amईमेल संदेशों (जैसे कि आउटपुट git format-patch) के रूप में स्वरूपित कमिट का मेलबॉक्स लेता है और उन्हें वर्तमान शाखा में लागू करता है।git amgit applyपर्दे के पीछे का उपयोग करता है , लेकिन पहले ( Maildirया पढ़ने mbox, और ईमेल संदेशों को पार्स करना) और बाद में (कमिट्स बनाना) अधिक काम करता है।
git applyलगता है कि git format-patchआउटपुट को भी स्वीकार करना होगा।
git applygit format-patchसाथ ही साथ आउटपुट के लिए भी काम करेगा, लेकिन बदलाव अस्थिर होंगे और इसके लिए प्रतिबद्ध होने की आवश्यकता होगी (इस प्रकार वे जिस सूचकांक में लागू होते हैं, वहां एक अलग प्रतिबद्ध बिंदु बनाते हैं)। आपके साथ git amयह लागू होने वाले सूचकांक में प्रतिबद्ध जानकारी (लेखक, आदि के साथ) होगी। git applyतब आपके रेपो (खराब) को पैच करने के लिए है, git amकानूनी सुविधा में परिवर्तन कर सकते हैं और इसे अपने रेपो (पसंदीदा दृष्टिकोण) में शामिल कर सकते हैं।
git applyसीधे भिन्न (जैसे से git diff) git amको लागू करने के लिए है, जबकि ईमेल से पैच के अनुक्रम और अनुक्रमों को लागू करने के लिए है, या तो एमबॉक्स या मेलडिर प्रारूप है और "विपरीत" है git format-patch। git amईमेल संदेशों से प्रतिबद्ध संदेश और लेखक का विवरण निकालने की कोशिश करता है, यही वजह है कि यह कमिट कर सकता है।
साथ git amआप पैच लागू इसलिए यदि आप का उपयोग करें git statusयदि आप किसी भी स्थानीय परिवर्तन नहीं देख सकेंगे।
git applyआपको स्रोत फ़ाइलों में परिवर्तन करने में सक्षम बनाता है जैसे कि आप अपने आप से कोड लिख रहे थे, फलस्वरूप git statusऔर git diffआपके द्वारा लागू किए गए पैच में किए गए परिवर्तनों को आउटपुट करेंगे, फिर आप अधिक बदलावों को ठीक कर सकते हैं / जोड़ सकते हैं और उन्हें एक नए पैच के रूप में जमा कर सकते हैं। ।
amके संक्षिप्त नाम के रूप में सोचा जा सकता हैApply Mail...