जवाबों:
इनपुट और आउटपुट दोनों अलग हैं:
git apply
एक पैच लेता है (उदाहरण के लिए आउटपुट git diff
) और इसे कार्यशील निर्देशिका (या इंडेक्स, यदि --index
या --cached
उपयोग किया जाता है) पर लागू होता है ।git am
ईमेल संदेशों (जैसे कि आउटपुट git format-patch
) के रूप में स्वरूपित कमिट का मेलबॉक्स लेता है और उन्हें वर्तमान शाखा में लागू करता है।git am
git apply
पर्दे के पीछे का उपयोग करता है , लेकिन पहले ( Maildir
या पढ़ने mbox
, और ईमेल संदेशों को पार्स करना) और बाद में (कमिट्स बनाना) अधिक काम करता है।
git apply
लगता है कि git format-patch
आउटपुट को भी स्वीकार करना होगा।
git apply
git 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
...