क्या मुझे चिह्नित की गई फ़ाइलों की सूची मिल सकती है --assume-अपरिवर्तित?


325

मैंने क्या चिह्नित किया है --assume-unchanged? क्या यह पता लगाने का कोई तरीका है कि मैंने उस विकल्प का उपयोग करके क्या टक किया है?

मैंने .git/निर्देशिका के माध्यम से खोदा है और ऐसा कुछ भी नहीं देखा है जो ऐसा लगता है कि मैं क्या उम्मीद करता हूं, लेकिन यह कहीं न कहीं होना चाहिए। मैं भूल गया हूं कि मैंने कुछ सप्ताह पहले इस तरह से क्या चिह्नित किया था और अब मुझे भविष्य के डेवलपर्स के लिए उन विवरणों को दस्तावेज करने की आवश्यकता है।

जवाबों:


449

आप उपयोग कर सकते हैं git ls-files -v । यदि मुद्रित वर्ण कम-केस है, तो फ़ाइल मान-अपरिवर्तित चिह्नित है।

अपरिवर्तित उपयोग की जाने वाली फ़ाइलों को मुद्रित करने के लिए:

git ls-files -v | grep '^[[:lower:]]'

अपने आलसी प्रोग्रामर को गले लगाने के लिए, इसे एक उपनाम उपनाम में बदल दें । .gitconfigइस स्निपेट को जोड़ने के लिए अपनी फ़ाइल संपादित करें :

[alias]
    ignored = !git ls-files -v | grep "^[[:lower:]]"

अब टाइपिंग git ignoredआपको इस तरह आउटपुट देगी:

h path/to/ignored.file
h another/ignored.file

42
git ls-files -v | grep ^ [az]
मैट आर

17
मेरे ओएस में जाहिरा तौर पर एक अजीब महाविद्यालय सेटअप है, इसलिए मैट की कमान मेरे लिए काम नहीं करती थी। यहाँ मैंने [alias]अपने सेक्शन के तहत क्या जोड़ा है .gitconfig:ignored = !git ls-files -v | grep "^[[:lower:]]"
Abe Voelker

15
कारण [az] काम नहीं करता है कि शेल इसे वाइल्डकार्ड के रूप में विस्तारित करता है; यदि वर्तमान निर्देशिका में एक फ़ाइल शामिल होती है जो उस पैटर्न से मेल खाती है (यानी एक एकल लोअरकेस अक्षर), तो उस का विस्तार फ़ाइल का नाम है। उद्धरण जोड़ने का प्रयास करें, उदाहरण के लिए "[az]"
DOMQ

7
git ls-files -v | grep -e "^ [az]"
अमीर अली अकबरी

12
सुझाए गए उपनाम वर्तमान निर्देशिका में और नीचे अपरिवर्तित फ़ाइलों को खोजने के लिए काम करते हैं। यदि आप रिपॉजिटरी में सभी "ग्रहण-अपरिवर्तित" फाइलों की सूची चाहते हैं, तो आपको आवश्यकता होगीgit ls-files -v `git rev-parse --show-toplevel` | grep "^[a-z]"
ट्रेबर रूड 15'13

65

एक लाइन

git ls-files -v | grep "^[a-z]"

उपनाम का प्रयोग करें

IMHO, git hiddenके रूप में चिह्नित फ़ाइलों के लिए बेहतर है --assume-unchanged:

git config --global alias.hidden '!git ls-files -v | grep "^[a-z]"'

यहाँ मेरे पास संबंधित उपनामों की एक सूची है ~/.gitconfig:

[alias]
  hide = update-index --assume-unchanged
  unhide = update-index --no-assume-unchanged
  unhide-all = update-index --really-refresh
  hidden = !git ls-files -v | grep \"^[a-z]\"
  ignored = !git status -s --ignored | grep \"^!!\"

इसे उपनिर्देशिकाओं में काम करने के लिए और तर्कों का समर्थन :

  hidden = "!f(){ git -C \"$GIT_PREFIX\" ls-files -v \"$@\" | grep \"^[a-z]\";}; f"
  ignored = "!f(){ git -C \"$GIT_PREFIX\" status -s --ignored \"$@\" | grep \"^!!\";}; f"

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

 # cd target
 # git ignored classes

फ़ाइल स्थिति के बारे में

मेरे लिए सबसे छिपी हुई फाइलें झंडे के साथ चिह्नित हैं h, हालांकि वास्तव में मैनुअल के अनुसार कई अन्य झंडे हैं git-ls-files-v:

-v
    Similar to -t, but use lowercase letters for files that are 
marked as assume unchanged (see git-update-index(1)).

के बारे में git ls-files-t:

This option (-t) identifies the file status with the following tags 
(followed by a space) at the start of each line:

H   cached
S   skip-worktree
M   unmerged
R   removed/deleted
C   modified/changed
K   to be killed
?   other

1
आसान याद रखने योग्य उपनाम :) धन्यवाद
प्लेगहैमर

1
यहां कुछ और लचीले रूप दिए गए हैं: hidden = "!f() { git ls-files -v \"$@\" | grep \"^[a-z]\"; }; f"और ignored = "!f() { git status -s --ignored \"$@\" | grep \"^!!\"; }; f"। यह अनुमति देता है, उदाहरण के लिए, git ignored -- PATH1 PATH2केवल कुछ पथों में उपेक्षित फ़ाइलों को सूचीबद्ध करने के लिए (उपयोगी जब आपके पास बहुत अधिक उपेक्षित फ़ाइलें हैं)।
SLS

उर्फ के लिए धन्यवाद
मोहरा

22

यह कमांड मेरे लिए लगातार काम करता है। यह केवल उन्हीं फाइलों को प्रिंट करेगा, जिन्हें print ग्रहण-अपरिवर्तित ’के रूप में सूचीबद्ध किया गया है।

git ls-files -v|grep "^h"

मैंने कई बार अलग-अलग वातावरण में इसका उपयोग किया है और यह पूरी तरह से काम करता है।


5
विंडोज प्रॉम्प्ट में, का उपयोग grep "^h"एकल उद्धरण के बजाय
beautifulcoder

7

PowerShell समाधान, Select-String \ sls का उपयोग कर

git ls-files -v | sls -pattern ^h -casesensitive

3

विंडोज कमांड लाइन सॉल्यूशन का उपयोग करता है

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