Gitを使用する際の流れ(個人向け)
概要
Gitを個人で使用してコード管理する際に、少し使わなかったら「どう言う流れでpushするんだっけ?」となってしまうのでその流れを記録するための備忘録として残しておきます。
なお、今回はGitHubを利用しますが、CLI操作がメインなのでGitHubでなくても問題ないと思われます。
gitコマンド
一連の流れ
| コマンド | 動作 |
---|---|---|
|
| リモートリポジトリに接続し、ローカルリポジトリを ![]() |
|
git cloneを既に実行している際には不要 | 現在のディレクトリ(もしくは指定したディレクトリ)内に |
|
| 指定したリモートリポジトリに接続する。 リモートサーバ名は何でもよいが、基本はoriginとして命名されることが多い。 |
|
もしくは
| 指定したファイルをステージング状態(Gitによって管理されている状態)にする。 ファイルを編集するたびにこのコマンドを実行し、ステージング状態を維持する。
|
|
| Gitの現在の状況を表示する。 ![]() ![]() |
|
| Gitに保存すると同時に、コメントを付ける。 基本 コメントする際には「"」は付けておく |
|
| 現在のローカルブランチ名をリモートリポジトリ名に(強制的に)変更する。 最近になってリモートの上流リポジトリをmainで作成することが増えてきたのに対し、ローカルではmasterとなっていることがあるため実行しておかないといけないコマンド。ローカルブランチがmainであれば実行の必要はない。 |
|
リモートサーバ名に何を設定しているかはgit remote -vで確認できる。 | リモートリポジトリにローカルリポジトリのファイル群をcommit時に追加したコメント内容とともに同期する。 |
|
| ブランチを切り替える
git branchでブランチを確認できる。 ![]() |
知っておくと役に立つコマンド
コマンド | 動作 |
---|---|
| 現在ローカルリポジトリと紐づいているリモートリポジトリ先を表示する。 ![]() |
| 接続しているリモートリポジトリから切断する。 |
| リモートブランチの一覧を表示する。
![]() |
| 現在のローカルリポジトリでのコミット履歴を確認する
![]() |
| リモートブランチを削除する |
| 現在のブランチに指定したブランチをマージ(合流)を行い、反映させる。 |
| 現在の設定情報を表示する。
|
| ローカルリポジトリの上流リポジトリ名をmainに変更する。 このコマンドでも変更されていなければ、git config --edit --system で直接init.defaultBranchを編集する。 |
コミットを取り消すコマンド
コマンド | 動作 |
---|---|
| 指定したコミットIDのコミットを削除するコミットを作成する。 このコミットを再度コミットすると取り消されたコミットが戻る。 下記のような書き方も可能
|
| 指定したコミットのリセット行う。
リモートリポジトリに反映するには下記コマンドにて強制プッシュを行う。
|
ややこしいコマンド
コマンド | 動作 |
---|---|
| リモートリポジトリから最新の状態をローカルリポジトリの「アップストリームブランチ(多くはorigin/main)」に反映させる。 (ブランチ名を書かなければリポジトリごと、ブランチ名があればそのブランチのみ反映させる。) ローカルリポジトリのmainブランチに反映されるわけではないことに注意 |
| リモートリポジトリから最新の状態をローカルリポジトリの「mainブランチ」に反映させる。 (ブランチ名を書かなければリポジトリごと、ブランチ名があればそのブランチのみ反映させる。) |
origin/mainブランチとmainブランチの違い
※下記サイトが分かりやすかったので引用しました。
pukiwiki
3つのmainブランチ
実は単にmainブランチといっても3種類存在している…らしい。
というのも
- リモートリポジトリ側のmainブランチ
- リモートリポジトリを追跡するmainブランチ
- ローカルリポジトリ側のmainブランチ
というのがあり、2つ目の「リモートリポジトリを追跡するmainブランチ」のことをアップストリームブランチ(origin/mainブランチ)と呼びます。
※リポートリポジトリ側とローカルリポジトリ側には特に変わった呼び方はないみたいなので、ここではmain(リモート)、main(ローカル)と呼ぶことにします。

git fetch
を実行したときにはローカルのリポジトリには反映されないものの、アップストリームブランチであるorigin/mainブランチに反映されているということになります。
ここからmain(ローカル)に反映させるには下記コマンドを実行すればよいです。
1git merge origin/main
git fetchは要るの?
そうするとわざわざgit fetch
してgit merge
という面倒な工程を踏むぐらいだったら、git pull
の方で一発で済ませたらと思いそうになりますが、そうは問屋が卸さないらしいです。git pull
を実行すると編集によってはコンフリクト(衝突)が起こってしまい、その際は手動で修正を加える必要があるため、git fetch
は必要とかなんとか…