簡體   English   中英

當子存儲庫忽略所有內容時,如何不忽略父存儲庫中的所有內容?

[英]How to not ignore everything in the parent repo when the child repo ignores everything?

我有一個回購協議,它會忽略除了幾個文件以外的所有內容, .gitignore看起來像這樣:

# first ignore everything
*

# then whitelist what's needed
!*/
!.gitignore
!wordpress/wp-content/plugins/check-last-login/*
!wordpress/wp-content/plugins/wp-issuetracker/*
!mediawiki/extensions/single-signon/*

該存儲庫是子存儲庫。 它在另一個存儲庫(父存儲庫)中。 子存儲庫會忽略一切,除了幾件事就好了,但是父存儲庫也在做同樣的事情,但是我不希望這樣做。

看起來父級回購遵循子級回購的.gitignore文件的忽略規則。 我試着.gitignoring子倉庫的.gitignore文件,但是在使父目錄跟蹤所有文件上沒有用。

如何使父項不忽略子項忽略的任何文件?

好的,我可以通過在已經跟蹤了內容的目錄中執行git init來使git做到這一點,而smoketests可以正常工作。 我當然沒想到這一點。 git顯然將現有的樹(回購對象)跟隨到子模塊中:

   # in a throwaway clone of an existing project
   git init src
   cd src
   mkdir -p .git/info
   echo "*.junk" >.git/info/exclude
   touch foo.junk; git add .; git commit -m-
   git ls-files -s
   cd ..
   git add src
   git ls-files -s src

而且我有類似的歷史。 這實際上至少有意義。 它通常根本不關心未跟蹤的文件,並且git add必須忽略根樹中的.git git應該出於什么具體原因拒絕這樣做? 我想不出一個副手。

我會婉轉擔心有人也許會相當隨意地決定這種行為是一個錯誤,使混帳開始檢查.git S ON一路走低,但關於它的思考,我認為硬編碼ignore- .git -甚至,在子樹,而不是僅根源可能甚至是故意的。 如果您開始與其他存儲庫進行協作而不僅僅是發布,則可能會使您發生一些手輪同步,但是乍一看編寫腳本來做到這一點似乎很簡單,並且您顯然從設置中獲得了一些價值。 <聳肩>。

如您所知,repo-local排除在.git/info/exclude

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM