मैं git के साथ फाइल कैसे कर सकता हूं?


84

कोई भी ट्यूटोरियल मदद नहीं करेगा!
वे सभी उस चीज़ को करते हैं जहाँ वे बस मान लेते हैं कि मुझे पता है कि मुझे क्या करना है ..

वर्तमान में, मेरी टर्मिनल विंडो के साथ शुरू होता है ..

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       deleted:    httpdocs/newsite/manifest/cache/0a432970ba6491fe65dad60b012e5c95_louloumay2011en-1-4dea3186b7f7b.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0a61b5d7a9e97da78fe602e1ad41edb6_5-4dec7c3d57c80.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0afb6a7716a85d0de46cdd03bb30f75f_fifa_panorama_full_page-01_thu-4dea3d1a0e0f5.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b3bc9be76a5d3e1e36af4b8dcf98658_free2-4df0e2e08761f.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b6342913b8e599fac76da452af98ec5_si-feb-2009-1-4dea3d1abcb61.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0b9ddc587340f7744e03c4b2dafacf7f_lou-lou-winter-2009-cover-4dea3d1a9b1a0.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0bf64ff8fc22720b3da20d0730fa6a04_chatelaine-dec-2009-4dea3d18daa30.jpg
#       deleted:    httpdocs/newsite/manifest/cache/0bf664e03eb0a2255b69b02aed85add0_summumfeb2011-2-4dea3188766aa.jpg

लेकिन यह जानने का कोई तरीका नहीं है कि वे यहां क्या करने के लिए कहते हैं ..
http://learn.github.com/p/normal.html

यह सब कहते हैं

हम बस अपना प्रतिबद्ध संदेश टाइप करते हैं और संपादक से बाहर निकलते हैं।

इसका क्या मतलब है?!
सिर्फ इसलिए कि आप शब्द लिखने बस मतलब यह नहीं है यह सरल है ..

जब मैं टाइप करना शुरू करता हूं, तो यह बहुत अजीब सामान करता है, "रिकॉर्डिंग" या "सम्मिलित करना" कहता है और लगभग 300 फाइलें हैं, और यह चाहता है कि मैं हर पंक्ति को एक संदेश के साथ बदल दूं?!?

मदद !

मैं इसके लिए उनके आसान मैक एप्लिकेशन का उपयोग करूंगा, लेकिन अगर यह 20 से अधिक फाइलों का है, तो यह जमा देता है!
उसके साथ क्या है??


10
इसका मेरे सवाल से कोई लेना-देना नहीं है। अगर मैंने कहा कि "आप एक पहाड़ी पर स्की कैसे करते हैं" तो आप एक व्यक्ति को स्की करने के बारे में बताते हैं, आप यह नहीं कहते हैं कि "ठीक है, आप एक पहाड़ पर क्यों हैं"
किर्क स्ट्रोबिल

2
एम-एम तर्क के बिना एक प्रतिबद्धता एक पाठ संपादक को लॉन्च करती है जहां आप अपनी टिप्पणी कर सकते हैं। (संभवतः इस मामले में चूक करने के लिए डिफ़ॉल्ट।) ट्यूटोरियल लेखक मान रहा है कि आप पहले से ही जानते हैं कि इसका उपयोग कैसे करना है।
एलेक्स हॉवान्स्की

@alex आपको समझाने के लिए धन्यवाद
Kirk Strobeck

OSX से अधिक परिचित कोई व्यक्ति शायद मैं आपको बता सकता हूं कि आपके डिफ़ॉल्ट संपादक को कुछ अलग करने के लिए कैसे सेट किया जाए। आमतौर पर यह आपके शेल स्टार्टअप कॉन्फ़िगरेशन में "EDITOR = / path / to / जो भी" निर्यात करता है।
एलेक्स हॉवान्स्की

6
आरटी के लिए -1 [एफ] एम। डिफ़ॉल्ट संपादक समस्या प्रतीत होगी, गिट प्रलेखन को पढ़ने की कमी नहीं।
फिलिप ओकले

जवाबों:


92

जब आप git commitबिना किसी तर्क के साथ चलते हैं , तो यह आपके डिफ़ॉल्ट संपादक को खोल देगा ताकि आप एक प्रतिबद्ध संदेश टाइप कर सकें। फ़ाइल को सहेजना और संपादक को छोड़ना कमिट करेगा।

ऐसा लगता है कि आपका डिफ़ॉल्ट संपादक Vi या Vim है। जब आप टाइप करते हैं तो "अजीब सामग्री" होती है, यह है कि Vi इन्सर्ट मोड में शुरू नहीं होता है - आपको iपहले अपने कीबोर्ड पर हिट करना होगा! यदि आप ऐसा नहीं चाहते हैं, तो आप इसे कुछ सरल करने के लिए बदल सकते हैं, उदाहरण के लिए:

git config --global core.editor nano

तब आप नैनो संपादक को लोड करेंगे (यह मानते हुए कि यह स्थापित है!) जब आप प्रतिबद्ध हैं, जो उन उपयोगकर्ताओं के लिए बहुत अधिक सहज है, जिन्होंने वीए जैसे मोडल संपादक का उपयोग नहीं किया है।

वह पाठ जो आप अपनी स्क्रीन पर देखते हैं, वह आपको यह याद दिलाने के लिए है कि आप क्या करने वाले हैं। लाइनें पहले से होती हैं, #जिसका अर्थ है कि वे टिप्पणियां हैं, अर्थात जब आप अपने प्रतिबद्ध संदेश को सहेजते हैं तो Git उन पंक्तियों को अनदेखा कर देता है। आपको प्रति फ़ाइल एक संदेश टाइप करने की आवश्यकता नहीं है - बस संपादक के बफर के शीर्ष पर कुछ पाठ दर्ज करें।

संपादक को बायपास करने के लिए, आप एक तर्क के रूप में एक प्रतिबद्ध संदेश प्रदान कर सकते हैं, जैसे

git commit -m "Added foo to the bar"

जब आप कहते हैं कि "अनदेखा करें" का मतलब है कि यह मंचन रहेगा?
कर्क स्ट्रोबेक

3
नहीं, वे लाइनें प्रभावित नहीं करती हैं जो प्रतिबद्ध होने जा रही हैं। यदि आप टिप्पणी लाइनें हटाते हैं, तब भी वे फ़ाइलें प्रतिबद्ध होंगी। जब आप git commitकमांड चलाते हैं तो आपकी रिपॉजिटरी की स्थिति क्या होती है, इसका सिर्फ एक अनुस्मारक है ।
बेन जेम्स

इसलिए अगर मैं कमिट करता हूं, तो #उस लाइन पर भी, तब भी बदलाव दर्ज किया जाएगा ?
कर्क स्ट्रोबेक

2
वह सही है। क्या प्रतिबद्ध है जो git addसूचकांक के लिए -ed किया गया है ।
बेन जेम्स

इसके बजाय एक अन्य विकल्प है git commit, आप चला सकते हैं git commit -a -m "Your message for the commit"फिर कोई संपादक नहीं चलेगा।

27

ऐसा लगता है कि यहां एकमात्र समस्या यह है कि लॉन्च किया गया डिफ़ॉल्ट संपादक है viया vim, जिसके साथ आप परिचित नहीं हैं। (त्वरित टिप के रूप में, परिवर्तन किए बिना इसे कि संपादक से बाहर निकलें करने के लिए मारा Escकई बार और फिर टाइप करें :, q, !और Enter।)

आपके डिफ़ॉल्ट संपादक को सेट करने के कई तरीके हैं, और आपने संकेत नहीं दिया है कि आप किस ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं, इसलिए विशेष रूप से एक की सिफारिश करना मुश्किल है। मैं उपयोग करने का सुझाव दूंगा:

 git config --global core.editor "name-of-your-editor"

... जो एक विशेष संपादक के लिए एक वैश्विक पकड़ प्राथमिकता निर्धारित करता है। वैकल्पिक रूप से आप $EDITORपर्यावरण चर सेट कर सकते हैं ।


आपकी vimधोखा शीट मूल्यवान है, खासकर उन लोगों के लिए जो "एक आइकन एक हजार कमांड लाइनों के लायक है;;" समुदाय
फिलिप ओकले

मैंने अभी पाया कि viemu.com/a-why-vi-vim.html यह समझाने में विशेष रूप से सहायक है कि क्यों vi / vim अभी भी यहाँ है। फिर कीबोर्ड की चीट शीट पर जाएं viemu.com/a_vi_vim_graphical_cheat_sheet_tutorial.html
फिलिप ओकले

24

इस स्थिति में आपको यह करना चाहिए

  1. Esc दबाएँ
  2. टाइप करें ": wq" (बिना उद्धरण के)
  3. एंटर दबाए

16

सभी बदली हुई फ़ाइलों को लाने की आज्ञा:

git commit -a -m 'My commit comments'

-a = सभी संपादित फाइलें

-m = निम्नलिखित स्ट्रिंग एक टिप्पणी है।

यह आपके स्थानीय ड्राइव / फ़ोल्डर रेपो के लिए प्रतिबद्ध होगा। यदि आप उपरोक्त कमांड प्रकार के बाद अपने परिवर्तन को git सर्वर / दूरस्थ रूप से होस्ट किए गए सर्वर पर धकेलना चाहते हैं:

git push

गिटहब की चीट शीट काफी आसान है।


13

मुझे आपके सिस्टम के वातावरण का पता नहीं है, लेकिन ऐसा लगता है, कि आपने टाइप किया है:

git commit

और आपका डिफ़ॉल्ट संपादक लॉन्च किया गया है। सबसे खराब स्थिति में (आपके लिए) यह विम हो सकता है :)

यदि आपको पता नहीं है कि विम कैसे छोड़ें, तो उपयोग करें: q।

यदि आपको और समस्याएँ हैं, तो आप उपयोग कर सकते हैं

git commit -m 'Type your commit message here'

क्या एक अलग संपादक चुनने का कोई तरीका है जो इसके साथ खुलेगा? नैनो की तरह?
कर्क स्ट्रोबेक

1
ज़रूर: यह डिफ़ॉल्ट संपादक को नैनो में बदलना चाहिए: git config --global core.editor nano
pkk

दोहरे उद्धरण में संदेश .. "संदेश"
प्रभा

2

कमिट तैयार करने के लिए Git "सूचकांक" का उपयोग करता है। आप अपने द्वारा किए गए इंडेक्स से परिवर्तनों को जोड़ सकते हैं और हटा सकते हैं (अपने पेस्ट में आपने पहले से ही ~ 10 फ़ाइलों को हटा दिया है git rm)। जब इंडेक्स ऐसा लगता है कि आप इसे चाहते हैं, तो चलाएं git commit

आमतौर पर इससे आग लग जाएगी vim। टेक्स्ट हिट सम्मिलित करने के लिए i, <esc>सामान्य मोड में वापस जाता है, ZZसहेजने के लिए मारा जाता है और छोड़ दिया जाता है ( ZQबचत के बिना छोड़ने के लिए)। voilà, आपकी प्रतिबद्धता है


2

यह तब होता है जब आप एक संदेश शामिल नहीं करते हैं जब आप उपयोग करने की कोशिश करते हैं:

git commit

यह एक संपादक वातावरण को लॉन्च करता है। टाइप करके :q!और दर्ज करके इसे छोड़ें ।

यह आपको बिना कमिट किए टर्मिनल पर वापस ले जाने वाला है, इसलिए फिर से प्रयास करना सुनिश्चित करें, इस बार संदेश में पास करें:

git commit -m 'Initial commit'

1
इसने वास्तव में संदर्भ को समझाकर, जो कुछ भी हो रहा है और कैसे "अजीब सामान" को फिर से सामान्य बनाने में मदद की है।
टाइममैकै

1

ऐसा लगता है कि सभी संपादन पहले से ही सूचकांक का एक हिस्सा हैं। तो सिर्फ commitकमांड का उपयोग करने के लिए प्रतिबद्ध है

git commit -m "My Commit Message"

आपके संदेशों को देखते हुए हालांकि मेरी वृत्ति कहती है कि आप नहीं चाहते कि cacheफाइलें आपके डिपो में शामिल हों। खासकर अगर यह कुछ ऐसा है जो आपके प्रोग्राम को चलाते समय मक्खी पर बनाया गया है। यदि ऐसा है तो आपको अपनी .gitignore फ़ाइल में निम्न पंक्ति जोड़नी चाहिए

httpdocs/newsite/manifest/cache/*

यह एक उप परियोजना थी, पूरी डायर को हटाया जा रहा है।
कर्क स्ट्रोबेक

यह देखने के लिए कि क्या सभी आदेशों टाइप है Git git --helpयह आप की तरह सभी आदेशों दे देंगे commit, push, pull, cloneएक विशिष्ट आदेश और क्या स्विच उपलब्ध प्रकार के होते हैं पर मदद प्राप्त करने के आदि git commit --help, git push --helpयह लिनक्स और मैक कमांड लाइन पर काम करना चाहिए। यदि आप एक अच्छी कमांड लाइन ऐप चाहते हैं, तो मैं git-scmइस पेज पर उसी जीथब को लिंक करने की सलाह दूंगा । help.github.com/mac-set-up-git
अली

1

मैंने उसी समस्या का सामना किया, मैंने इसे टाइप करके हल किया और :q!फिर हिट किया Enterऔर इसने मेरी समस्या को हल कर दिया git commit -a -m "your comment here"

इससे आपकी समस्या का समाधान होना चाहिए।


1
यह उत्तर यहां पहले से ही दिया गया है ( stackoverflow.com/a/7080907/2827823 ) ... दो बार वास्तव में, इसलिए हमें और अधिक की आवश्यकता नहीं है।
आसन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.