使git命令无法在.gitignore'd目录中找到父repo

时间:2013-11-11 00:37:39

标签: git gitignore

如果我的工作目录被该存储库忽略,如何使git命令(例如git status)不在存储库上运行?例如:

  1. 我在〜中运行git init来创建一个跟踪点文件的仓库

  2. 我在〜中添加了一个.gitignore文件,如下所示:

    *
    !.gitignore
    !.bashrc
    

    我提交了.gitignore.bashrc

  3. 我转到〜/ src / test,这不是git存储库

  4. 如果我现在运行git status,我希望看到的消息是

    fatal: Not a git repository (or any of the parent directories): .git
    

    相反,我会看到

    # On branch master
    nothing to commit (working directory clean)
    

    因为git status上了目录树并在我的主目录中找到了.git文件,即使我忽略了该回购中的工作目录。

    我看到的唯一解决方案是将我的主目录中的repo的GIT_DIR设置为.home.git,然后为该repo运行我的所有git命令

    git --git-dir=~/.home.git --work-tree=~ <command>
    

    我可以使用别名,但我觉得可能有更好的方法来配置git来执行此操作。

1 个答案:

答案 0 :(得分:0)

我建议您查看博文Using Git and Github to Manage Your Dotfiles。重点是为git-project创建单独的目录,并链接到所需的dotfiles:

home/
|
|--dotfiles/      <-- git working copy
|  `--vimrc
|  `--bashrc
|--.vimrc->dotfiles/vimrc
|--.bashrc->dotfiles/bashrc