Git-基本操作方法
Git リモートリポジトリからファイルを取得する
既存リポジトリの複製を作る。
Gitを利用しているプロジェクトに参加する場合など、既にGitで管理されているソースコードを入手する場合は「clone」コマンドを実行します。
cloneコマンドはリポジトリの履歴情報などを含めてリポジトリを複製します。
$ git clone <リポジトリ> <作成先ディレクトリ>
大規模なプロジェクトからcloneする場合、大量のファイルを取得/コピーすることとなります。
例えばビルド目的で最新ソースファイルのみ取得するような場合には、「--depth 1」オプションで最新リビジョンだけを取得すると効率的です。
$ git clone --depth 1 <リポジトリ>
ブランチを切り替える
ブランチ一覧を表示する
ローカルブランチの一覧を表示します。
アスタリスクがついているブランチが現在編集中のブランチとなります。
$ git branch
feature/develop1
* master
リモートブランチも含めたブランチ一覧を表示するには「-a」オプションを指定します。
リモートの最新情報を表示するために、fetchを実行しましょう。
$ git fetch
$ git branch -a
ブランチを切り替える
編集対象となるブランチに切り替えます。
$ git checkout feature/develop1
$ git branch
* feature/develop1
master
リモートブランチを取得する
リモートブランチ一覧を表示する
リモートのブランチ一覧を表示する場合には「-r」オプションを指定します。
$ git branch -r
リモートブランチを取得する
リモートブランチを取得するには「checkout -b <ローカル管理用の名前> <取得するリモートブランチ名>」を実行します。
$ git checkout -b target_branch_name origin/target_branch_name
なお、Gitの最近のバージョンであれば、checkoutコマンドの引数にリモートリポジトリを指定するだけで、リモートリポジトリのブランチからローカルリポジトリ上にブランチを作成することができます。
この場合、リモートブランチと同じ名前のローカルブランチが作成されます。
実運用上、ローカル管理用のブランチ名をリモートブランチ名にしない理由は稀なので、問題ありません。
$ git checkout target_branch_name
ローカル環境でファイルを編集する
作業ファイルの変更を確認する
修正した内容を確認します。
意図していないファイルがある場合には、修正対象から除外します。
$ git status
作業ファイルをコミットする
git addによって修正対象に追加して、コミット内容を確定させます。
$ git add .
$ git commit -m "修正内容をコメントとして記載します。"
編集内容をリモートリポジトリに反映させる。
リモートリポジトリの最新の変更を取り込む
originリポジトリの全ブランチの更新を取得することができます。
$ git fetch origin
$ git merge --no-ff origin/master
リモートリポジトリから変更点を取得する
リモートリポジトリに加えられた変更点を取得し、それをローカルリポジトリに適用するには「git pull」コマンドを実行します。
$ git pull
リモートとローカルでリポジトリの競合(コンフリクト)が発生した場合には、以下のようなエラーメッセージが表示されます。
$ git pull origin develop
remote: Enumerating objects: 6, done.
remote: Counting objects: 100% (6/6), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (4/4), 366 bytes | 366.00 KiB/s, done.
From xx.xx.xx.xx:/path/to/remote
* branch develop -> FETCH_HEAD
fc320d3..10199df develop -> origin/develop
Auto-merging test.php
CONFLICT (content): Merge conflict in test.php
Automatic merge failed; fix conflicts and then commit the result.
コンフリクトを解消させる必要があります。
変更をリモートリポジトリに送信する
ローカルリポジトリに加えた変更をリモートリポジトリに送信するには、「git push」コマンドを実行します。
$ git push
これで編集内容をリモートリポジトリに反映させることができました。