2017-01-05 8 views
0

私はGitの世界に飛び込んでいます。私の最初の仕事はビルドプロセスを自動化することです。私はそれが私がよく知っているので、私が必要なことをするようだとバッシュを使用しています。Bashスクリプトを使ってGitリポジトリをクローン化する

私は私のコードをビルドする前に、私は自分のPCにレポの最新バージョンのクローンを作成する必要があります。

私はクローンを作成しようとしているレポの一部であるbashスクリプトからレポのクローンを作成したいキャッチ22を持っているようです。

私は私のビルド/ bashスクリプトは、他のすべてと一緒にソース管理下になりたい...しかし、私はまた、1つのコマンド操作たいと思います。

他の人はどのようにこの問題に取り組んでいますか?私はClearCaseに最も精通しているので、Gitは慣れ親しんでいます。それは、リポジトリ内のファイルと対話するための主な方法として役立つ新しい作業フォルダを作成し、その中で

+3

展開スクリプトを展開するコードと同じリポジトリに格納しないでください。意味がありません。 – meagar

+0

リポジトリのクローン作成は、定義上、リポジトリに対する*外部*の操作なので、キャッチ22です。リポジトリをクローンするスクリプトは、少なくともビルドシステムの残りの部分とは独立して配備する必要があります。理想的には、ビルドシステム全体がリポジトリの外にあります。ビルドするソフトウェアを格納したリポジトリを*入力*します。 – chepner

+0

私が使用しているのは、継続的な統合サービス(私の場合はtravis-ci)で、githubのマスターブランチをプッシュするのを聞いています。プッシュは、リポジトリをtravis環境にクローン化するビルドをトリガします。そこから私は配備スクリプトにアクセスし、ビルドがパスすると配備スクリプトがトリガされます。 – Lix

答えて

0

Gitのcloneは、ClearCaseのmkviewに似ています。このスクリプトをClearCase用に作成していた場合は、まず新しいClearCaseビューを作成することから始めますか?あなたがした場合、あなたは同じキャッチ22の状況になります。

一般的なアプローチは、このビルドシステムのワンタイムセットアップの一部としてclone操作が実行され、スクリプトが既に作業フォルダにアクセスしていると仮定することです。 Gitはあなたがcleancheckoutfetchpull、およびreset --hardあり、より興味があると思いますコマンド。 Gitコマンドには重複がありますので、これらのすべてを必要としません。明らかに、Gitのコマンドとそれらを呼び出すオプションの選択は、あなたがスクリプトにしたいものに依存します。あなたが構築しているコードと同じブランチ(ES)でそれをバージョン管理する羽目になるだろう除き、その方法を完了

は、リポジトリ内のスクリプトを保つことは問題では、ありません。これは必ずしも悪いことではありませんが、ClearCaseで(通常)起こることとは異なります。

+0

は基本的に私は、最新の変更で私の地元のレポを同期するために、 'gitのチェックアウトbranch_name'や' gitのチェックアウトmaster'を行うことができます各支店で? @ gatkin – user7379734

+0

本質的に。私はあなたのスクリプトを書くつもりはないが、 'git fetch; git checkout master; git reset --hard origin/master'を起動する必要があります。 – gatkin

関連する問題