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

これで編集内容をリモートリポジトリに反映させることができました。



関連ページ