簡體   English   中英

.gitignore 放入 /home 不會忽略 /home/username 中的文件

[英].gitignore put in /home does not ignore files in /home/username

我知道這是一個不好的做法,但我更改了/home的權限並在那里放了一個.gitignore (我有一個奇怪的用例,讓我們暫時保留它,將在PS中討論更多相關信息)。

我的.gitignore看起來像:

/*
!/.gitignore

!/ismail/
/ismail/*

!/ismail/.zshrc

!/ismail/.searchmonkey/
/ismail/.searchmonkey/*
!/ismail/.searchmonkey/*

!/ismail/.config/
/ismail/.config/*

!/ismail/.config/user-dirs.dirs

!/ismail/.config/alacritty/
/ismail/.config/alacritty/*
!/ismail/.config/alacritty/alacritty.yml

問題是這個.gitignore/home中不起作用,但是當我將它放入/home/ismail/Desktop/test-git時起作用。

兩個目錄的權限:

/home/ismail/Desktop/test-git:master+%
total 20
drwxrwxr-x 4 ismail ismail 4096 Jun  6 12:26 .
drwxr-xr-x 3 ismail ismail 4096 Jun  6 12:24 ..
-rw-rw-r-- 1 ismail ismail  296 Jun  6 12:39 .gitignore
drwxrwxr-x 4 ismail ismail 4096 Jun  6 12:25 ismail

/home:master*+% ls -la
total 20
drwxrwxr-x  4 ismail ismail 4096 Jun  6 12:40 .
drwxr-xr-x 20 root   root   4096 May 31 22:50 ..
-rw-rw-r--  1 ismail ismail 2284 Jun  6 12:40 .gitignore
drwxrwxr-x 23 ismail ismail 4096 Jun  6 12:57 ismail

PS請隨時提出任何符合我用例的建議。 我的用例是,我跟蹤兩個 linux 發行版的點文件。 有一些通用文件和一些發行版特定文件。 所以,我的裸倉庫看起來像dotfiles_bare_repo_commondotfiles_bare_repo_mintdotfiles_bare_repo_zorin 因此,在給定的時間內,我需要在/home/ismail中放置兩個.gitignoredotfiles_bare_repo_commondotfiles_bare_repo_mintdotfiles_bare_repo_commondotfiles_bare_repo_zorin ),這不是一個選項。 因此,我決定向前邁出一步,將常見的.gitignore放在/home中,將發行版特定的.gitignore放在/home/ismail中,以便為同一目錄維護兩個.gitignore.git/info/exclude對我不起作用,因為我需要推送或克隆存儲庫)。 我還檢查了您可以在同一目錄中設置多個 gitignore 文件嗎? 多個.gitignore是否不受歡迎? . 這些也不符合要求。

問題是這個 .gitignore 在 /home 中不起作用,但是當我將它放入/home/ismail/Desktop/test-git時起作用。

那是因為您使用的是“錨定”規則(我的術語“以/ ”開頭的規則):錨點“ / ”表示模式相對於特定.gitignore文件本身的目錄級別......在 Git 存儲庫中.
並且/home不是 Git 存儲庫的內部。

沒有本機解決方案,但可能的解決方法是:

  • 我會考慮從每個存儲庫到相關.gitignore的符號鏈接。
  • 內容過濾器驅動程序,根據存儲庫生成正確的.gitignore

暫無
暫無

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

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