如何将 ~/.zshrc 文件添加到 git 中?

如何将 ~/.zshrc 文件添加到 git 中?

我想.zshrc在我的~/目录中创建文件的备份,并避免对所有其他项目进行版本控制。如何排除所有子目录及其内容?

例如:

cd ~/subdirectory/ && git status

应该输出:

fatal: Not a git repository (or any parent up to mount point /)

如何实现这一目标?

答案1

这是一个常见的解决方案:

  1. 在方便的地方创建一个子目录,最好在同一卷上。
  2. 将您的 .zshrc 和您想要在 git 中跟踪的任何其他 .* 文件移动到该目录中。您可能需要重命名它们以使它们对普通命令可见或避免名称冲突。
  3. 从新 git-dir 中的文件创建符号链接到您的主目录。
  4. 在其特定位置管理 git 存储库。

例如:

# Make a git directory someplace to store your config
git init ~/git/dotfiles

# Move your config to the git directory
mv ~/.zshrc ~/git/dotfiles/zshrc

# Link the config's new location into your $HOME
ln -s ~/git/dotfiles/zshrc ~/.zshrc

# Manage your new repo in its specific location
cd ~/git/dotfiles
git add zshrc
git commit -m"Initial commit"

答案2

你无法让它输出

fatal: Not a git repository (or any parent up to mount point /)

但您可以通过添加文件轻松排除所有其他文件.gitignore,其内容为:

* 
!.zshrc

它忽略*除 之外的所有内容 ( ) .zshrc

答案3

执行此操作的一种方法是在您执行的文件夹中使用裸 git 存储库不是调用.git,但例如, 并在与您在主目录中跟踪的点文件交互时.git-dotfiles使用。git --git-dir=~/.git-dotfiles --work-tree=~为了使这更容易,您可以为其定义一个别名。用法可能如下所示:git-dotfiles add .zshrc例如。

因为 git 通常(没有--git-dir标志)只查找目录(或文件),所以除非您将其指向它,否则.git它不会找到您的目录。.git-dotfiles

建议status.showUntrackedFiles在该存储库中设置为 false,否则它将把主目录中的所有文件列为未跟踪文件。通过该设置,它甚至不应该查看未跟踪的文件,从而保持快速。

Atlassian 发布了好文章更详细地解释了这种方法

相关内容