使用core.worktree时忽略文件

时间:2015-03-23 10:51:37

标签: git

我创建了一个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时如何忽略文件?

1 个答案:

答案 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

相关问题