जवाबों:
git log --diff-filter=D --summary
देखें और हटाए गए फ़ाइल को Git रिपॉजिटरी में खोजें और पुनर्स्थापित करें
यदि आप नहीं चाहते हैं कि वे किस जानकारी को हटाए गए हैं, तो आप बस इसमें कुछ जोड़ सकते हैं grep delete
।
git log --diff-filter=D --summary | grep delete
git log --find-renames --diff-filter=D --summary | grep delete
git log --no-renames --diff-filter=D --summary | grep delete
grep delete
क्योंकि यदि प्रतिबद्ध संदेश में शब्द हटाना है, तो इसे भी उठाया जाएगा। grep 'delete mode'
इसके बजाय उपयोग करें ।
यह वही है जो आप चाहते हैं, मुझे लगता है:
git log --all --pretty=format: --name-only --diff-filter=D | sort -u
... जो मैंने सीधे-सीधे इस दूसरे जवाब से ज्यादा-या-कम लिया है ।
यदि आप केवल वर्तमान में हटाई गई फ़ाइलों को देखने में रुचि रखते हैं, तो आप इसका उपयोग कर सकते हैं:
git ls-files --deleted
यदि आप तब उन्हें हटाना चाहते हैं (यदि आपने "git rm" का उपयोग नहीं किया है तो उन्हें हटा दिया है)
git ls-files --deleted | xargs git rm
git rm $(git ls-files --deleted)
और अगर आप किसी भी तरह से यहाँ एक अच्छे परिणाम के लिए विवश करना चाहते हैं:
$ git log --diff-filter=D --summary | sed -n '/^commit/h;/\/some_dir\//{G;s/\ncommit \(.*\)/ \1/gp}'
delete mode 100644 blah/some_dir/file1 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file2 d3bfbbeba5b5c1da73c432cb3fb61990bdcf6f64
delete mode 100644 blah/some_dir/file3 9c89b91d8df7c95c6043184154c476623414fcb7
आपको some_dir
कम्प्ल्ट नंबर (जिसमें सेड कमांड देखें) से डिलीट कर दिया जाएगा । कोई भी sed regex करेगा (मैं इसका उपयोग हटाए गए फ़ाइल प्रकारों को खोजने के लिए करता हूं, आदि)
git log --diff-filter=D .
चूंकि विंडोज में grep
कमांड नहीं है , इसलिए यह मेरे लिए PowerShell में काम करता है:
git log --find-renames --diff-filter=D --summary | Select-String -Pattern "delete mode" | sort -u > deletions.txt
Select-String
?
हटाए गए सभी फ़ाइलों को some_branch में दिखाएं
git diff origin/master...origin/some_branch --name-status | grep ^D
या
git diff origin/master...origin/some_branch --name-status --diff-filter=D
git diff origin/master...origin/some_branch --name-status | grep ^D
git diff origin/master...origin/some_branch --name-status --diff-filter=D
यह आपको उन सभी फाइलों की एक सूची मिलेगी, जो सभी शाखाओं में हटा दी गई थीं, उनके मार्ग द्वारा छांटी गई:
git log --diff-filter=D --summary | grep "delete mode 100" | cut -c 21- | sort > deleted.txt
Msysgit में काम करता है (2.6.1.windows.1)। नोट हमें "डिलीट मोड 100" की आवश्यकता है क्योंकि जीआईटी फाइलें मोड 100644 या 100755 के रूप में शुरू हो सकती हैं।
git diff --name-status commit_hash
।