0

洗練されたものに対して public フォルダが作成されるように、デフォルトで repository -tree の可視範囲を制限することにしました。多くのサブリポジトリが存在するため、コミットするのが苦痛になったり、賢いアイデアが浮かんだりしています。私は最善の方法について確信が持てません.findでリポジトリをトラバースし、すべてのリポジトリに対して一貫したダミーコミットを行うことを考えまし"default perms lower and polished public things to public dir in the root to get the quality up"たが、車輪を再発明している可能性があります. サブリポジトリとサブモジュールの量を制限することは私にとって選択肢ではないため、コミットは最下位のリポジトリから開始し、find を使用する場合は少しずつトラバースする必要があります。

この種の深い Git repo-repo -tree 更新をどのように処理しますか?

おそらく関連している

  1. Git: sub-sub-sub で繰り返しコミットするのを避けるには... Git -repos?

  2. Git: プロジェクトを管理および構造化するためのツール?

4

1 に答える 1

0

より良いツールを使用してください!

$ 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 などのパッケージ管理ソフトウェアに組み込まれるまで続けます。これにより、人々にとってより便利になります。

于 2012-08-19T15:58:13.017 に答える