より良いツールを使用してください!
$ find . -exec git checkout '{}' \;
パーミッションを再帰的/手動で修正するなどのハックを回避します。拡大するポートフォリオをより簡単に管理するための、Gitslave というツールがあります。貴重な記事はこちら. また、こちらのスレッドを読むことをお勧めします。SethRobertson の記事も出てきています。非常に読みやすいです。
なぜGitslaveが必要なのですか?
Happy.git
のような構造
のレポに変更を加えたとします"Works.git > Project.git > Pictures.git > Happy.git"
。次に、誰かがあなたの裸の -git リポジトリからプルしようとしますProject.git
。あなたは git だったので、コミットしたのはHappy.git
. 今、あなたの友人は厄介なエラーを受け取ります. 怠惰な git は
gitslave
-tool を使用していたでしょう。
$ mkdir t1; cd t1; mkdir t2; cd t2; mkdir t3; git init; echo "t3" >t3; git add .; git commit -m "t3"; cd ..; git init; echo "t2" >t2; git add .; git commit -m "t2"; git init; echo "t1" >t1; git add .; git commit -m "t1"; cd ..; cd t1/t2/t3; echo "only here">only; git add .; git commit -m "only"; cd ../..; git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# t2/
$ Look you need to do repetitive work because you did not use Gitslave!
Gitslave をインストールするためのウォークスルー
残念ながら、Gitslave はまだ Apt-get に含まれていないため、
ここからダウンロードしてください。
Maven に少し似ています。詳細
はこちら. それによってプロジェクトを管理します。まず、スーパー リポジトリを指定してから、スレーブ リポジトリをアタッチします。
$ git clone http://someGitRepoHere.com/xyz.git super
$ cd super; gits prepare
$ gits attach http://someBareRepo.git yourDirHere
153 などの行の詳細については、
こちらを参照してください。
この回答は、Gitslave が apt-get などのパッケージ管理ソフトウェアに組み込まれるまで続けます。これにより、人々にとってより便利になります。