.zshrc
私の~/
ディレクトリにあるファイルのバックアップを作成し、他のすべてのプロジェクトのバージョン管理を避けたいです。すべてのサブディレクトリとその内容を除外する方法は?
たとえば、
cd ~/subdirectory/ && git status
以下を出力する必要があります。
fatal: Not a git repository (or any parent up to mount point /)
この目標を達成する方法は?
答え1
一般的な回避策は次のとおりです。
- 便利な場所に、好ましくは同じボリュームにサブディレクトリを作成します。
- gitで追跡したい.zshrcと他の.*ファイルをこのディレクトリに移動します。通常のコマンドに表示されるか、名前の競合を避けるために名前を変更する必要があります。
- 新しいgit-dirのファイルからホームディレクトリへのシンボリックリンクを作成します。
- 特定の場所で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
これを行う1つの方法は、タスクを実行するフォルダでデフォルトのgitリポジトリを使用することです。いいえこれは呼び出されますが、たとえば.git
ホームディレクトリで追跡されているドットファイルと対話するときに.git-dotfiles
使用されます。git --git-dir=~/.git-dotfiles --work-tree=~
これをより簡単にするためにエイリアスを定義できます。使用法はgit-dotfiles add .zshrc
次のとおりです。
gitは通常(フラグなしで)ディレクトリ(またはファイル)のみを探すので、ディレクトリを--git-dir
指定しない限り.git
ディレクトリは見つかりません。.git-dotfiles
このリポジトリではこれをfalseに設定することをお勧めしますstatus.showUntrackedFiles
。それ以外の場合は、ホームディレクトリ内のすべてのファイルが追跡されていないと表示されます。この設定では、追跡されていないファイルを表示せずにすばやく維持する必要があります。
Atlassian 出版このアプローチをより詳しく説明する良い記事。