जवाबों:
Gitignore के अनुसार, मत भूलो , कि विभिन्न "अनदेखा पैटर्न स्रोतों" में पूर्वता का एक आदेश है जो कि निम्नलिखित को स्वीकार करते हैं:
$GIT_DIR/info/exclude
।core.excludesfile
।अंतिम दो आपकी समस्या का समाधान हो सकते हैं लेकिन:
(इस SO प्रश्न को भी देखें )
अन्य दो समाधानों में सूचकांक को अद्यतन करना शामिल है ( git update-index
):
git update-index --assume-unchanged
: " Git: फ़ाइल को केवल स्थानीय रेपो में अनट्रैक करें और रिमोट रेपो में रखें " देखें। git update-index --assume-unchanged
निर्देशिका पर "। --no-assume-unchange
प्रभाव को उलटने के लिए उपयोग करें : " क्या git add
वर्तमान में संरक्षित फ़ाइल के लिए संभव है assume-unchanged
? "।हालाँकि, जब आप किसी अन्य शाखा या जब आप चेकआउट करते हैं git pull
, तो वह "अनदेखा" स्थिति रीसेट हो सकती है। इसलिए अन्य विकल्प:
git update-index --skip-worktree
; देख:
दोनों के बीच के अंतर को " गिट - डिफरेंस बिथ assume-unchanged
'और' skip-worktree
' " में समझाया गया है ।
update-index --skip-work-tree
। मैंने उन दोनों update-index
आदेशों को दर्शाने वाले पुराने उत्तरों में कुछ लिंक जोड़ने का उत्तर दिया ।
यदि आप संशोधित .git/info/exclude
कर सकते हैं तो आप वही नियम वहां रख सकते हैं। लेकिन वह फाइल केवल आपके स्थानीय रेपो के भीतर है।
.git
एक
.git
फोल्डर वास्तव में है parent_repo/.git/modules/submodule_name
। तो आप संपादित करेंगेparent_repo/.git/modules/submodule_name/info/exclude
GIT को बताने के लिए तीन तरीके हैं, जिन्हें अनदेखा करना है:
.gitignore
फ़ाइलें$GIT_DIR/.git/info/exclude
core.excludesfile
सेटिंग के माध्यम से बताई गई फाइलेंबाद के दो बिंदु आपकी समस्या को हल कर सकते हैं।
अधिक जानकारी के लिए, gitignore (5) देखें ।
यदि आप रिपॉजिटरी में कुछ स्थानीय फ़ाइलें रखना चाहते हैं और उपनिर्देशिका का स्थान लचीला है, तो आप अपनी फ़ाइलों को अंदर रख सकते हैं tracked_dir1/tracked_dir2/untracked_dir/
और फिर tracked_dir1/tracked_dir2/untracked_dir/.gitignore
सामग्री के साथ जोड़ सकते हैं:
*
अर्थात
$ cat > tracked_dir1/tracked_dir2/untracked_dir/.gitignore
*
<Ctrl+D>
मैं इसी तरह की स्थितियों में रहा हूं, इसलिए मैं अपना पसंदीदा समाधान जोड़ रहा हूं जिसे मैं उल्लेख नहीं करता। git update-index --assume-unchanged
इस मामले में समस्या यह है कि आप एक अनट्रैक फ़ाइल के लिए ऐसा नहीं कर सकते। तुमने कहा था
मैं अपने भंडार के .gitignore को संशोधित नहीं कर सकता।
मैं मान रहा हूं कि आपके कहने का मतलब यह है कि आप किसी भी बदलाव को आगे नहीं बढ़ा सकते .gitignore
हैं। अगर ऐसा है तो आप जो भी कर सकते हैं, उसमें अनलॉक्ड फाइल को अपने लोकल में शामिल कर सकते हैं .gitignore
, फिर ऐसा git update-index --assume-unchanged .gitignore
करें कि आपके द्वारा किया गया बदलाव .gitignore
कभी धकेल न दिया जाए। अब आप (संभवतः) अनट्रैक फ़ाइल को अनदेखा कर रहे हैं, और दूरस्थ .gitignore
फ़ाइल को प्रभावित नहीं कर रहे हैं ।
ट्रैक की गई फ़ाइलों में स्थानीय परिवर्तनों को अनदेखा करें:
git update-index --assume-unchanged my-file.php
ट्रैक की गई फ़ाइलों में स्थानीय परिवर्तन निर्दिष्ट करें:
git update-index --no-assume-unchanged my-file.php
स्रोत: git help update-index
--[no-]assume-unchanged
...
This option can be also used as a coarse file-level mechanism to ignore uncommitted changes in tracked
files (akin to what .gitignore does for untracked files). Git will fail (gracefully) in case it needs to
modify this file in the index e.g. when merging in a commit; thus, in case the assumed-untracked file is
changed upstream, you will need to handle the situation manually.
आप परियोजना में एक को संशोधित करने के बजाय वैश्विक gitignore विधि का उपयोग कर सकते हैं https://help.github.com/articles/ignoring-files/#create-a-global-gitignore
update-index --assume-unchanged
@see stackoverflow.com/a/25253144/292408