我创建了一个git repo:
mkdir ~/configs
cd ~/configs
git init
git config core.worktree "../../"
echo "*" > .gitignore
但文件不会被忽略:
git status
Sur la branche master
Validation initiale
Fichiers non suivis:
(utilisez "git add <fichier>..." pour inclure dans ce qui sera validé)
../.ICEauthority
../.Skype/
../.VirtualBox/
[...]
使用git config core.worktree
时如何忽略文件?
答案 0 :(得分:2)
您的.gitignore文件将更好地在您的git工作树的根目录下工作。
考虑..
echo "*" > ../../.gitignore
当你分离你的git-dir和work-tree时,我通常会建议你创建一个bare
git repo,虽然这会使它看起来更复杂。
另请考虑以下使用.gitignore的 。
# git config status.showUntrackedFiles no
# git config status.relativePaths false
showUntrackedFiles=no
告诉git仅报告对跟踪文件的更改,而不报告未跟踪的文件。它还消除了使用-f
的需要
每次您觉得需要将新文件添加到存储库时。另一个优点是,您可以使用showUntrackedFiles
动态覆盖git status -u
设置。
relativePaths
选项很方便(我发现)。报告文件状态时,git status将使用绝对路径。由于工作目录位于git目录之外,因此我发现这可以更清楚地了解已发生的变化。
最后,当你想做提交时,你会发现你必须继续使用CD来转到git目录。尝试
# export GIT_DIR=/path/to/.git
# git status
为了避免在我的shell环境中使用固定的GIT_DIR
,我通常将其换成别名,以便仅为GIT_DIR
的特定实例设置git
;
# alias gitc='GIT_DIR=/path/to/.git git'
# gitc status
这将允许您从任何地方管理git存储库,甚至在工作树之外。它对我上面提到的bare
存储库也非常有用。
HTH