क्या यह `संशोधित स्थिति` केवल संशोधित फ़ाइलों के लिए संभव है?


173

क्या git statusकेवल संशोधित फ़ाइलों को दिखाना और दिखाना संभव है ?

समस्या यह है कि मेरे पास बहुत सी फाइलें हैं, जिन्हें मैं फिलहाल कमिट नहीं करना चाहता हूं और न ही मैं स्क्रॉल कर सकता हूं। मेरे पास Ubuntu पर स्क्रॉलबैक सीमा निर्धारित है।


1
आपके पास स्क्रॉल सीमा कैसे है? डिफ़ॉल्ट रूप से, git statusपेजर को आमंत्रित करेगा।
लिली बॉलर

क्षमा करें, स्क्रॉलबैक सीमा मेरी मशीन पर 512 लाइनों पर सेट है। मुझे लगता है कि मैं इसे बदल सकता है; लेकिन स्थिति में सिर्फ संशोधित फ़ाइलों को देखने के लिए एक लाइन कमांड को प्राथमिकता देगा क्योंकि GD / imagecache अंततः और भी अधिक फाइलें उत्पन्न करेगा।
क्रिसलीले

1
ठीक है ... मेरी बात यह है कि पेजर आपके टर्मिनल के स्क्रॉलबैक का उपयोग नहीं करता है।
लिली बॉलर

जो कुछ भी आपको दिलचस्प लगता है उसके लिए कुछ भी गलत करने से कुछ नहीं होता है? का उपयोग करें --shortया --porcelainस्थिति के एक-लाइन संस्करण प्राप्त करने के लिए।
तायार्क

2
उपयोग करने के सुझाव के आधार पर एक और बिंदु git ls-files -m: आप किस संशोधन (एस) के बारे में परवाह करते हैं, मंचन, अस्थिर, या दोनों?
अपराह्न

जवाबों:


268

आप ऐसा नहीं कर सकते git status, लेकिन आप git ls-files -mसभी संशोधित फ़ाइलों को दिखाने के लिए उपयोग कर सकते हैं ।


6
बस इतना है कि दूसरों को पता है, यह केवल उन फ़ाइलों को दिखाएगा जिन्हें अभी तक बिना स्टेज किए संशोधित किया गया है।
गेरी

11
जबकि यह स्वीकृत उत्तर है, इसमें गलत जानकारी है। आप "git स्टेटस" को केवल संशोधित फाइलों के साथ "" कर सकते हैं git status | grep modifiedजैसे कि user23186 उनके उत्तर में इंगित करता है।
। एलन बेट्स

9
मेरे लिए, git ls-files -mकुछ भी नहीं दिखा रहा है लेकिन git status | grep modifiedकाम कर रहा है।
संदीपन नाथ

1
जैसा कि अन्य ने बताया है, यह केवल अस्थिर फ़ाइलों को दिखाता है। यदि आप दोनों अनस्टेंड और स्टेज्ड फाइल दिखाना चाहते हैं, तो मैंने देखा कि यह सबसे अच्छा उत्तर है: stackoverflow.com/a/39994894/452587
21

1
@thdoan मंचन फ़ाइलों को दिखाने के लिए कई विकल्प हैं, हालांकि यह विशेष सवाल यह है कि मंचन फ़ाइलों को स्पष्ट रूप से बाहर करना चाहते हैं। git diff --name-only --diff-filter=M HEADमंचन और अस्थिर दोनों के लिए बस संशोधित फ़ाइलें दिखाएगा, हालांकि आपको यह देखने के लिए डॉक्स की जांच करनी चाहिए कि आप --diff-filterअन्य फ़िल्टर प्रकार क्या जोड़ना चाहते हैं।
लिली

57

ऐसा लगता है git status -unoकि आपको केवल ऐसी फाइलें दिखाई देंगी जो डायरेक्ट्री में कुछ और दिखाए बिना ही गिट ट्रैक कर रही हैं। ठीक वही नहीं जो आपने मांगा था, लेकिन शायद एक ही बात को पूरा करता है (पठन की लंबाई वाली सूची जो कि पटरी को ट्रैक करती है)।


1
git status -u no(1) ट्रैक की गई फ़ाइलों को नहीं दिखाता है, जो संशोधित हैं, और न ही (2) ट्रैक की गई फाइलें हैं, जिनका मंचन किया जाता है। मैंने इसे git संस्करणों 1.8.5.2 और 1.9.4 के साथ सत्यापित किया है।
एमएक्सएक्स

2
@TomNysetvold, आपका वास्तव में मतलब हो सकता है git status -uno( stackoverflow.com/questions/7008546/… )
mxxk



15

git diff --name-only --diff-filter=M


2
मैं उन फिल्टरों की सलाह देता हूं: git diff --cached --name-only --diff-filter=ACMRजो जोड़े, नकल, संशोधित और नामांकित फाइलें।
क्वर्टीजगुए


3

मैं उसी जानकारी की तलाश में था और पाया गया कि संशोधित फाइलें मिलती हैं:

git status -uno

2
git status -uno --porcelainपार्सिंग स्क्रिप्ट के लिए अच्छा आउटपुट जोड़ता है
pprzemek

3

आप उपयोग कर सकते हैं

$ git status -uno 

केवल संशोधित फ़ाइलों को सूचीबद्ध करने के लिए।


3

समस्या यह है कि मेरे पास बहुत सी चरणबद्ध फाइलें हैं जिन्हें मैं फिलहाल कमिट नहीं करना चाहता हूं और न ही मैं स्क्रॉल कर सकता हूं।

हालांकि यह सीधे संशोधित फ़ाइलों की सूची के सवाल का जवाब नहीं दे सकता है, यह सूचीबद्ध फ़ाइलों की संख्या को सीमित करने में मदद कर सकता है।

आप git statusरेपो में किसी विशिष्ट फ़ोल्डर में आउटपुट को सीमित करने के लिए एक पथ पारित कर सकते हैं ।

उदाहरण के लिए:

git status app
git status spec
git status src/components

2

संशोधित फ़ाइलों के उपयोग की सूची के लिए:

git ls-files -m

अगर आप बस बेसनेम (कोई रास्ता नहीं) चाहते हैं, तो आप प्रत्येक परिणाम को xengs, लाइन द्वारा लाइन बेसेंन कमांड का उपयोग करके पाइप कर सकते हैं:

git ls-files -m | xargs -L 1 basename

1

मैं इस कमांड का उपयोग करता हूं:

$ git status -uno -sb

और आउटपुट इस तरह दिखता है:

## master...origin/master
 M GNUmakefile
 M include/mp4v2/project.h

0

मैं उपयोग करता हूं git cola। इसका एक सरल और सुरुचिपूर्ण यूआई क्लाइंट, जो आपको संशोधित फाइलें दिखाएगा और आपके द्वारा किए गए परिवर्तनों के शॉट की तरह एक विस्तृत प्रदान करेगा।

git colaआपको एक GUI प्रदान करता है, जहाँ आप कल्पना कर सकते हैं कि आपने किन फ़ाइलों को संशोधित किया है, जिनका आपने मंचन किया है, और यहाँ तक कि आप जिन पर नज़र नहीं रखते हैं। आपका प्रश्न केवल मुझे विश्वास है कि जीआईटी स्थिति का उपयोग करना था, लेकिन मुझे लगा कि गिट कोला जब और अन्य चीजों के रूप में अच्छी तरह से मदद कर सकता है। अधिक जानकारी से इस वेब पेज की जाँच करें: git-cola.github.com/screenshots.html


1
क्या आप प्रदान कर सकते हैं कि मेरे जवाब से संबंधित है जो इस git कोला से परिचित नहीं है। जैसे स्क्रीनशॉट, या अधिक विस्तार?
chrisjlee

यह है कि नीचे क्यों उतारा गया था? :) वैसे भी, जीआईटी कोला आपको एक जीयूआई प्रदान करता है जहां आप कल्पना कर सकते हैं कि आपने कौन सी फाइलों को संशोधित किया है, जिसे आपने मंचित किया है, और यहां तक ​​कि उन पर भी जिन्हें आप ट्रैक नहीं करते हैं। आपका प्रश्न केवल मुझे विश्वास है कि जीआईटी स्थिति का उपयोग करना था, लेकिन मुझे लगा कि गिट कोला जब और अन्य चीजों के रूप में अच्छी तरह से मदद कर सकता है। अधिक जानकारी से इस वेब पेज की जाँच करें: git-cola.github.com/screenshots.html
n_x_l

कोला की इंटरफ़ेस भाषा कैसे बदलें?
ज़ियाउंग


0

सभी संशोधित फ़ाइलों के उपयोग की सूची के लिए:

git show --stat --oneline HEAD

0

सभी महान जवाब; केवल FEI, "गिट चेकआउट" (एक ही शाखा में स्विच करना) केवल संशोधित फ़ाइलों को दिखाने के लिए प्रकट होता है।


0

ओएस: विंडोज़

निम्न आदेश "संशोधित:" , "बदला हुआ:" या "नई फ़ाइल" : सभी पंक्तियों को प्रदर्शित करेगा

git status | findstr "modified: renamed: new file:"

यदि आप फ़ाइल प्रकार निर्दिष्ट करना चाहते हैं: (उदाहरण के लिए *.py *.ini)

git status *.py *.ini | findstr "modified: renamed: new file:"

यदि आपको लगता है कि यह बहुत अधिक टाइपिंग में बहुत परेशानी है:

  1. एक बैच फ़ाइल बनाने (उदाहरण के लिए: st.bat)

  2. निम्नलिखित के रूप में सामग्री लिखें:

    @echo off
    :: st.bat  (this line doesn't necessarily. ( just let you know the scripts name.))
    git status %~1 | findstr "modified: renamed: new file:"
    
  3. पर्यावरण पथ जोड़ें जिसमें आपकी बैच फ़ाइल है। ( st.bat)

  4. प्रयोग

    st.bat "*.py *.ini"
    

    (नोट: यदि टाइप> 1 तो अर्धविराम जोड़ना चाहिए)

OS: LINUX

जैसा कि @ लांस कहते हैं कि आप कोशिश कर सकते हैं

git status | grep modified:

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.