53

私はcalimoucho (ちょっとした遊びの連続統合サーバー) を構成しています。それを機能させるには、クローンされた git ハブ リポジトリを外部からプルするコマンドを実行する必要があります。

より正確には、例を挙げて説明します。

私は次のリポジトリを持っています

cd /home/sas
mkdir apps
cd apps
mkdir myApp
cd myApp
git init
echo "my file" > file
git add .
git commit -m "initial commit"

私のアプリがあると思われるばかげたテストリポジトリ

次に、そのリポジトリをチェックアウト フォルダーに複製する必要があります。

cd /home/sas
mkdir calimoucho
cd calimoucho
mkdir checkout
cd checkout
git clone /home/sas/apps/myApp/ 

だから私は次のディレクトリ構造を持っています

~/apps
    myapp
      .git
      file
~/calimoucho
    checkout
      myapp
        .git
        file

継続的統合サーバーは、~/apps/myapp から ~/calimoucho/checkout/myapp に新しい変更をプルする必要があります。これには、~/calimoucho からコマンド ライン文を実行します。

次のコマンドで試します

~/calimoucho$ git --git-dir=/home/sas/apps/myApp/.git --work-tree=/home/sas/calimoucho/checkout/myApp/ pull

次のエラーが表示されます

fatal: /usr/lib/git-core/git-pull cannot be used without a working tree.

--work-tree オプションを指定しない場合、pull は発行されますが、変更は ~/calimoucho/checkout/myApp ではなく ~/calimoucho フォルダーに適用されます。

~/calimoucho フォルダーから複製されたレポを更新する方法はありますか?

どうもありがとう

4

6 に答える 6

2

私の場合、これは唯一の実用的な解決策です:

git --git-dir=/gitbackup/test/.git pull
于 2021-11-08T10:51:13.063 に答える
1

work-tree を git-dir 変数とは異なるリポジトリに設定しないでください。.git フォルダーを作業ツリーと同じディレクトリに配置したくない場合に使用することを意図していると思います。代わりにこれを試してください:

~/calimoucho/$ git pull --work-tree=checkout/myApp/  ../../apps/myapp
于 2011-10-01T20:14:12.850 に答える