Gitの基本的な使い方:GitHub連携その2
GitHubからのclone
git clone git@github.com:ユーザー名/リポジトリ名.git
httpsを使う場合は以下のようになります。
git clone https://github.com/ユーザID/リポジトリ名.git
GitHubのリモートリポジトリから新しくローカルリポジトリを作成することができます。
つまり、GitHubからローカルリポジトリにデータをコピーすることができます。
git clone直後の状態は、clone元のリモートリポジトリをoriginという名前で参照可能になっています。
また、mainブランチが現在のブランチになります。
必要に応じて以下のコマンドで現在のブランチ名を確認してください。
git branch
GitHubへpush
ローカルリポジトリのデータを変更しステージ環境にadd、ローカルリポジトリにcommitした後、GitHubのリモートリポジトリに更新データをpushします。
git push
pushに成功した場合は以下の様に表示されます。
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 219 bytes | 219.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:ユーザー名/リポジトリ名.git
*[new branch] main -> main
Branch 'main’ set up to track remote branch 'main’ from 'origin’.
GitHubの画面を確認するとデータがアップロードされているはずです。
GitHubからpull
git pull
リモートリポジトリから更新データを取得します。
git pull origin ブランチ名
このコマンドによりリモートリポジトリのブランチ名の最新データが、ローカルリポジトリのブランチ名に取得できます。
データが最新のその旨が表示されます。
他の開発者と同じブランチを変更しているとpushする際に衝突(コンフリクト)が発生する確率が上がります。
とは言え、ブランチを分けているとマージする際にコンフリクトが発生する確率が上がります。
こまめにpush、pullするという方法もありますが、コンパイルエラーが発生する状態でpush、pullするとビルドができなくなってしまいます。
この辺りはチームで運用方法を相談していく必要があります。
一般的にはgit flowなどが使われているようです。
ブランチの作成とpush
GitHubのリモートリポジトリにもmain以外のブランチを作成することができます。
以下のコマンドにてローカルリポジトリにブランチを作成します。
git branch ブランチ名
新しく作成したブランチに移動するには以下のコマンドを実行します。
git checkout ブランチ名
このブランチを作成し、移動する処理は以下のコマンドで一括して実行できます。
git checkout -b ブランチ名
この状態で以下のコマンドを実行すると、リモートリポジトリにブランチ名というブランチをpushできます。
git push -u origin ブランチ名
リモートブランチ上のブランチ確認
git branch -a
現在のブランチを確認するコマンドに-aオプションを指定するとローカルリポジトリに加え、リモートリポジトリの情報も表示できます。
別のブランチのチェックアウト
既にGitHub上にブランチ名というブランチがある場合、以下のコマンドでリモートリポジトリからブランチ名をブランチ名という名前で作成ます。
git branch ブランチ名 origin/ブランチ名
この操作も同様に以下のコマンドでブランチの切り替えまで一括して行えます。
git checkout -b ブランチ名 origin/ブランチ名
Gitの各種コマンド
ここまでの内容で普段の開発に必要となる基本的な操作は大丈夫でしょう。
あとはGit操作を間違えた際のリカバリー方法など運用面の操作になります。
とは言え、cloneやpull、push、checkoutとややこしくなってきました。
コマンドを一覧しておきましょう。
clone | リポジトリ全体をコピーする |
push | ローカルリポジトリの変更内容をリモートリポジトリに送信する |
pull | リモートリポジトリの内容を取得する |
branch | ブランチに関する操作を行う |
checkout | ブランチを切り替える(その際同時にブランチを作成することもできる) |