سؤال

كيف يمكنني تجاهل الدلائل أو المجلدات في 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"

يبدو أن هناك طريقتين رئيسيتين لتجاهل الملفات والأدلة:

  1. .gitignore

    • وضع .gitignore ملف في جذر الريبو الخاص بك إلى جانب ذلك .git المجلد (في Windows تأكد من ذلك انظر امتداد الملف الحقيقي ومن ثم جعل .gitignore. (مع النقطة في النهاية لجعل امتداد الملف فارغًا))
    • صنع التكوين العالمي ~/.gitignore_global و الركض git config --global core.excludesfile ~/.gitignore_global لإضافة هذا إلى تكوين git الخاص بك

    ملحوظة:يمكن إلغاء تعقب الملفات التي تم تعقبها من قبل عن طريق التشغيل git rm --cached filename

  2. استبعاد الريبو - بالنسبة للملفات المحلية التي لا تحتاج إلى المشاركة، ما عليك سوى إضافة نمط الملف أو الدليل إلى الملف .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 و

وكريس

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top