Git: 1. एक शाखा में सभी फ़ाइलों को छोड़ें, 2. विभिन्न शाखाओं से फ़ाइलों की प्रतिलिपि बनाएँ


88
  1. एक आदेश की तरह की तलाश में ls -Rया dir/sजो एक प्रतिबद्ध / शाखा में सभी फाइलों को सूचीबद्ध कर सकता है।
  2. क्या कोई कमांड है जो विभिन्न शाखाओं से दो फाइलों की तुलना कर सकती है?

जवाबों:


136
  1. git ls-tree -r --name-only <commit>(जहां के बजाय <commit>वहाँ हो सकता है <branch>)।
    आप -tउन विकल्पों का भी उपयोग करना चाह सकते हैं जो उनमें उतरने से पहले उपनिर्देशिकाओं को सूचीबद्ध करते हैं
  2. git diff <branchA>:<fileA> <branchB>:<fileB>,
    या यदि आप एक ही फ़ाइल की तुलना करना चाहते हैंgit diff <branchA> <branchB> -- <file>

4
यदि आप एक विशिष्ट निर्देशिका को सूचीबद्ध करना चाहते हैं, तो आप शाखा में पथ के बाद एक बृहदान्त्र जोड़ सकते हैं अर्थात: git ls-tree -r --name-only मास्टर: निर्देशिका / पथ / नाम
मिलर गोरिल्ला

25

विभिन्न शाखाओं से एक ही फाइल की तुलना करने के लिए:

git diff branch_1..branch_2 file.txt

ट्री ऑब्जेक्ट में सभी फ़ाइलों को सूचीबद्ध करने के लिए:

git ls-tree -r branch

मुझे "git: 'ls' एक git कमांड नहीं है। 'git --help' देखें।" और मैं git v 2.19.0 का उपयोग कर रहा हूं।
एंड्रयू एस

1
यह सिर्फ नहीं है ls, आप -treeअंत में भूल गए हैं :)
दान Loewenherz

आह मैंने मान लिया ls -tree था। मैंने सोचा था कि यह एक स्विच था। धन्यवाद।
एंड्रयू एस

24

नई शाखा में जोड़ी गई सभी फाइलों को सूचीबद्ध करने के लिए

git diff --name-only branch1 master

4
यह केवल उन सभी फ़ाइलों के नामों को सूचीबद्ध करता है जो बदल गए हैं, न कि केवल नई फाइलें।
मेरेडिथ

2

Git v2.1.0 के रूप में [08/15/14]

लिस्टिंग के लिए, आप git ls-filesवर्तमान अनुक्रमणिका / कार्यशील निर्देशिका में पुनरावर्ती सभी फाइलों को सूचीबद्ध करने के लिए उपयोग कर सकते हैं । यदि आपने Git स्थापित किया है और मैन पेज उपलब्ध हैं तो आप Git-SCM डॉक्स / git-ls-files या टाइप का उल्लेख कर सकते हैं man git-ls-files

ऐसा लगता है कि अलग अलग तरीकों से फ़ाइलों को दिखाने के लिए अच्छा विकल्प है cached, staged, deleted, modified, ignoredया othersके लिए ट्रैक न किए गए। यह मिलान पैटर्न का भी समर्थन करता है। यह भी एक के बाद --debugआर्ग, आप आसानी से सूचीबद्ध कर सकते हैं creation time, modification time, inode id, owner & group id, sizeऔर flagsफ़ाइलों के लिए।


दो शाखाओं के अंतर के लिए, बस git diff <branch> <other branch>अन्य उत्तरों में बताए अनुसार उपयोग करें ।


2

के साथ शाखा में फ़ाइलों की सूची git ls-files

  1. Git-scm मुद्राओंgit ls-files में वर्णित प्रयास करें :
# Switch to <branch> of interest
$ git checkout <branch>
# List all files in <branch>
$ git ls-files

आगे के विकल्पों के लिए प्रलेखन की जाँच करें ।

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