2016-06-01 14 views
0

毎週リポジトリのすべての支店にデータを集約するプログラムを作成しています。ローカルのgitリポジトリをリモートリポジトリの内容に更新する

プログラムは15-20のレポをチェックします。基本的に私はローカルのgit repoをリモートのものと同じ正確なものにするためにリセットする必要があります。私は地元の変更がありません。しかし、変更があった場合は、各ブランチのコミットを切り替えてレポートを生成します。したがって、ブランチは常に古いコミットになります。これが後続のgitプルコールに失敗するかどうかは不明です。

コードは、現時点では、このようなことを行います。

git clone <repo> 
git pull --progress --verbose 

その週の新しいコミットのために各支店の支店とチェックのリストを取得し、それらのレポートを集約します。ちなみに、一度にすべてのブランチを引き出す方法はありますか?

これを行うにはどうすればよいですか?

は、私がグーグルを開始し、清潔なgitの、gitのフェッチ、gitのプル(gitのマージ/フェッチ)などとして多くのことを発見した

ここプル作業をgitのでしょうか?または、すべてのファイルを削除して再度クローンするのが最善でしょうか? git pullが単に最新のコミットを取得すれば、同じことを何度も複製することで不必要なオーバーヘッドを避けることができます。

ありがとうございます!

答えて

0

fetchは.gitディレクトリこれはあなたの場合

で定義されたすべてのオブジェクトを取得しますフェッチは、あなたが望むものではありません

プル

pullはすべて取得しますあなたの地元のレポに入れてください。競合がある場合は、テキストエディタが開き、上書きについて警告が表示されます。

大きなリポジトリの場合、それを再クローンするには時間がかかりすぎます(プログラムが完全に自律的な場合は、競合を解決するために再クローンする必要があるため)pullを実行する必要があります。

+0

ローカルで変更を加えていないと、なぜ競合が発生するのですか? – Nick

+0

私はちょうど 'pull 'の代わりに' clone'を使う例を挙げています –

関連する問題