تجاهل الدلائل في Git repos على نظام التشغيل Windows
سؤال
كيف يمكنني تجاهل الدلائل أو المجلدات في Git باستخدام msysgit على Windows؟
المحلول
وإنشاء .gitignore
ملف اسمه في دليل المشروع الخاص بك. تجاهل الدلائل عن طريق إدخال اسم الدليل في ملف (بخط مائل إلحاق):
dir_to_ignore/
هنا .
نصائح أخرى
وبواسطة ويندوز اكسبلورر الافتراضي سيتم عرض .gitignore
عند .gitignore.txt
اسم الملف في الواقع
وسوف جيت عدم استخدام .gitignore.txt
ولا يمكنك إعادة تسمية الملف إلى .gitignore
بسبب المستكشف يفكر في ملف من نوع gitignore مع أي اسم.
وعدم حل سطر الأوامر:
You can rename a file to ".gitignore." and it will create ".gitignore"
يبدو أن هناك طريقتين رئيسيتين لتجاهل الملفات والأدلة:
.gitignore
- وضع
.gitignore
ملف في جذر الريبو الخاص بك إلى جانب ذلك.git
المجلد (في Windows تأكد من ذلك انظر امتداد الملف الحقيقي ومن ثم جعل.gitignore.
(مع النقطة في النهاية لجعل امتداد الملف فارغًا)) - صنع التكوين العالمي
~/.gitignore_global
و الركضgit config --global core.excludesfile ~/.gitignore_global
لإضافة هذا إلى تكوين git الخاص بك
ملحوظة:يمكن إلغاء تعقب الملفات التي تم تعقبها من قبل عن طريق التشغيل
git rm --cached filename
- وضع
استبعاد الريبو - بالنسبة للملفات المحلية التي لا تحتاج إلى المشاركة، ما عليك سوى إضافة نمط الملف أو الدليل إلى الملف
.git/info/exclude
.قواعد الأطروحات ليست ملتزمة بذلك لا يراها المستخدمون الآخرون مزيد من المعلومات هنا
تم التحديث] لإجراء استثناءات في قائمة الملفات التي تم تجاهلها ، انظر هذا السؤال.
وكان لي بعض القضايا إنشاء ملف في ويندوز اكسبلورر مع أ. في البداية.
وكان الحل أن يذهب إلى commandshell وإنشاء ملف جديد باستخدام "تحرير"
ولإرشاد GIT تجاهل بعض الملفات أو المجلدات، لديك لإنشاء ملف .gitignore
.
ولكن في ويندوز اكسبلورر لديك لتوفير اسم للملف، لا يمكنك أن إنشاء ملف مع التمديد عادل، هو خدعة أن إنشاء ملف نصي فارغ ويذهب إلى موجه الأوامر وتغيير اسم الملف إلى .gitignore
ren "New Text Document.txt" .gitignore
والآن فتح الملف مع محرر النصوص المفضل لديك وإضافة أسماء ملف / مجلد كنت ترغب في تجاهله. يمكنك أيضا استخدام أحرف البدل مثل هذا *.txt
وآمل أن يجيب لك السؤال
إذا كنت تريد الحفاظ على مجلد وليس الملفات داخله، فقط وضعت ملف ".gitignore" في مجلد "*" كما المحتوى. سيكون هذا الملف تجاهل كافة المحتويات من المخزون. ولكن سيكون .gitignore
تدرج في الريبو الخاصة بك.
$ git add path/to/folder/.gitignore
إذا قمت بإضافة مجلد فارغ، تتلقى هذه الرسالة (.gitignore هو ملف مخفي)
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
وهكذا، استخدم "-f" لإجبار إضافة:
$ git add path/to/folder/.gitignore -f
يوجد في نظام التشغيل Windows ميزة إضافية تتضمن الخطوط المائلة.باستثناء دليل واحد في .gitignore مع
dir_to_exclude/
ربما ستعمل، ولكن باستثناء كافة الدلائل مع
/
يسبب مشاكل عندما يكون لديك أسماء ملفات بها مسافات (مثل my file.txt
) في الدليل الخاص بك:يهرب Git bash من هذه المساحات بخط مائل عكسي (مثل my\ file.txt
) وGit لنظام التشغيل Windows لا يميز بينهما /
و \
.
لاستبعاد كافة الدلائل استخدام أفضل:
**/
تشير النجمتان المتتاليتان إلى محتويات الدليل.
وأيضا في دليل مشاريع \.git\info
الخاص بك هناك هو استبعاد الملفات التي هي في الواقع نفس الشيء .gitignore
(على ما أظن). يمكنك إضافة الملفات والدلائل إلى تجاهل في ذلك.
لتجاهل دليل كامل في git، أسهل طريقة هي تضمين ملف .gitignore داخل الدليل الهدف الذي يحتوي ببساطة على "*"
مثال توضيحي،
نظام المثال
/root/
.gitignore
/dirA/
someFile1.txt
someFile2.txt
/dirB/
.gitignore
someFile3.txt
someFile4.txt
هدف
- تجاهل محتويات /dirB/
المستوى الأعلى .gitignore (/root/.gitignore)
- هذا هو المكان الذي تذهب إليه معلومات gitignore القياسية الخاصة بك
الدليل الذي تم تجاهله .gitignore (/root/dirB.gitignore)
- تتم قراءة هذا الملف كـ "*" ويتم تجاهل الدليل بالكامل، نفسه وجميع الملفات!
والأمر بهذه البساطة :)
وفقط في حال كنت تحتاج إلى استبعاد مجلدات فرعية يمكنك استخدام البدل **
لاستبعاد أي مستوى من مستويات الدليل الفرعي.
**/build/output/Debug/
ولقد كان بعض مشاكل في الحصول على بوابة لبيك اب الملف .gitignore على ويندوز. و$ GIT_DIR / معلومات / استبعاد ملف يبدو دائما للعمل بالرغم من ذلك. الجانب السلبي لهذا النهج، ومع ذلك، هو أن لا يتم تضمين الملفات في الدليل $ GIT_DIR في التسجيل في مكتب الاستقبال، وبالتالي لا المشتركة.
و(بالثانية $ GIT_DIR هو عادة مجلد مخفي مسمى. بوابة)
يمكنك إنشاء ملف ".gitignore" مع محتويات:
*
!.gitignore
وكان يعمل بالنسبة لي والبسطاء.
متى كل شيء آخر فشل حاول تحرير الملف
/.git/info/exclude
وإضافة الدلائل التي تريدها إلى نهاية الملف، مثل هذا:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
لقد أضفت المجلدين "الأصول" و"المجمعة" إلى قائمة الملفات والأدلة التي يجب تجاهلها.
أفترض أن المشكلة تكمن في أن شجرة العمل الخاصة بك تشبه:
a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore
...مع ال .gitignore
تصفون.هذا سوف يعطيك git status
الإخراج مثل:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
... لو ال index.html
لم تتم إضافة الملفات إلى المستودع بعد.(يرى git أن هناك ملفات لم يتم تجاهلها في أدلة ذاكرة التخزين المؤقت، لكنه يقوم بالإبلاغ عن الدلائل فقط.) لإصلاح هذه المشكلة، تأكد من أنك قمت بإضافة وتنفيذ الأمر index.html
الملفات:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
...وخاصتك git status
سيبدو بعد ذلك كما يلي:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(من الواضح أنك تريد الالتزام .gitignore
بالإضافة إلى ذلك، كنت كسولًا في حالة الاختبار هذه.)
في يونكس:
touch .gitignore
في ويندوز:
echo > .gitignore
وهذه الأوامر المنفذة في محطة سيخلق ملف .gitignore
في الموقع الحالي.
وبعد ذلك فقط إضافة معلومات إلى هذا الملف .gitignore
(باستخدام المفكرة ++ على سبيل المثال) والتي يجب أن يتم تجاهل الملفات أو المجلدات. حفظ التغييرات. هذا كل شيء:)
ومزيد من المعلومات: https://www.atlassian.com/git/ دروس / إنقاذ التغييرات / gitignore
في ويندوز وماك، إذا كنت ترغب في تجاهل مجلد باسم Flower_Data_Folder في الدليل الحالي، يمكنك القيام به:
<اقتباس فقرة>وFlower_Data_Folder صدى >> .gitignore
اقتباس فقرة>إذا يدعى ملفها data.txt
<اقتباس فقرة>وصدى data.txt >> .gitignore
اقتباس فقرة>وإذا به في مسار مثل "البيانات / passwords.txt"
<اقتباس فقرة>وصدى "البيانات / passwords.txt" >> .gitignore.
اقتباس فقرة>وكان لي قضايا مماثلة، وأنا أعمل على سلسلة أداة النوافذ مع الريبو المشتركة مع الرجال لينكس، وhapplily إنشاء ملفات مع نفسه [باستثناء حالة و] الأسماء في مجلد معين.
والنتيجة هي أن أستطيع أن استنساخ الريبو وعلى الفور دينا العشرات من ملفات 'تعديل' أنه إذا راجعت من شأنه أن يخلق الفوضى.
ولدي ويندوز لتعيين يتحسس وبوابة لعدم تجاهل القضية لكنه لا يزال يفشل (في المكالمات Win32 المعهد على ما يبدو).
إذا كنت gitignore الملفات ثم لا بد لي من تذكر أن لا تتبع ملف .gitignore.
ولكن وجدت إجابة جيدة هنا HTTP: // أرشيف .robwilkerson.org / 2010/03/02 / بوابة معلومات سرية-تجاهل-التغييرات إلى ملفات تعقب / index.html و
وكريس