rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

gitコマンド

2026 Jul. 05.
2018 Jun. 20.
2018 Jun. 19.
2018 Jun. 16.
 
gitでは、「リモートのブランチ(GitHubなど)」「ローカルのリモート追跡ブランチ」「ローカルブランチ(作業ブランチ)」のブランチが存在する。

origin とは
リモートリポジトリの名称。
リモートリポジトリには名前が付けられるが、デフォルトでは「origin」というリモート名で設定される。

origin/main(origin/master)とは
リモートリポジトリ「origin」のブランチ「main」(master)を追跡するブランチ。
かつてはmasterであったが今はmainが使われる。

main(master)とは
ブランチの名称。
gitを使用するとデフォルトで作成されるブランチ。
かつてはmasterであったが今はmainが使われる。

ブランチとして、本番環境に反映される安定したコードを管理するmainブランチと開発用のdevelopmentブランチを置くことがあるが、デフォルトで設置されるのはmainブランチのみ。
 
 
ローカルにリポジトリが無い状態でGitHub(BitBucket)を利用する時の作業

#  1. 任意名称のgitプロジェクトディレクトリを作成し移動する
$ mkdir ~/GITPROJECTS
$ cd ~/GITPROJECTS

#  2. GitHubからクローンする
# <URL> はGitHubのリポジトリ画面の「Code」ボタンからコピーしたもの
$ git clone <GitHubのリポジトリURL>

# 3. クローンしたディレクトリに入る
$ cd <リポジトリ名>

 

# 4. 紐付いているか確認
$ git remote -v

# 5. mainブランチに移動
$ git checkout main


# 6. 最新を取得
$ git fetch origin
$ git merge origin/main


# 7. 作業用ブランチを作成して開発開始
$ git checkout -b my-new-feature

 

 

ローカルにmy-new-featureブランチが存在する場合

# 1. ローカルを作業用ブランチに切り替える
$ git checkout my-new-feature

# 2. リモートの最新情報を取得(この時点ではまだマージされない)
$ git fetch origin

# 3. リモートの main をローカルの現在のmy-new-featureブランチにマージする
$ git merge origin/main

 

 

作業が済んだら

$ git add

$ git commi -m "MESSAGE"

$ git push origin my-new-feature


上記の作業に続いて、リモート(GitHub)でのmainブランチへの統合を
GitHubのブラウザ画面で行う。
  • GitHubのリポジトリページを開くと、「my-new-feature had recent pushes...」といったメッセージと共に、黄色の 「Compare & pull request」 というボタンが表示される。それをクリックする。

  • 内容を確認し、「Create pull request」 をクリックする。

  • レビュー担当者が確認してOKが出たら、最後に 「Merge pull request」 ボタンを押す。



"git init" コマンド

リポジトリが初期化され、Gitによるバージョン管理ができるようになる。
ディレクトリ内に 「.git」 というサブディレクトリが作られ、その中にリポジトリに必要なすべてのファイルが格納される。
ローカルリポジトリの削除を行いたい場合は、「.git」ディレクトリを破棄することで削除が可能。

"git add"
ローカルでの更新内容をローカルリポジトリに反映させる際は "git add" コマンドでファイルをインデックスに追加する必要がある。
インデックスとは、コミットしたいファイルを選別して保管しておくための待機スペース。
実際の開発では様々なファイルを同時に編集することが多々あるため、ローカルリポジトリに反映したい内容だけをコミットするために、"git commit"コマンドの前に addコマンドで追加や更新を行うファイルを選別する。

"git commit -m MESSAGE"

ローカルでのファイルの追加や変更内容をローカルリポジトリに反映させるためのコマンド。
Gitを使用してファイルの更新状態を管理する場合に、ファイルの変更内容が自動でローカルリポジトリに反映されることはないため、このコマンドを使用して更新する必要がある。
追加や変更の際には必ず commitコマンドを使用する。
更新内容をローカルリポジトリに反映させる際は、commitコマンドを使用する前に、"git add" コマンドでファイルをインデックスに追加する必要がある。
ファイルの変更内容をcommitコマンドでローカルリポジトリに反映し、その後に pushコマンドでリモートリポジトリにアップロードするという流れ。

"git commit -m MESSAGE“ と -m オプションを使用すると、コミットと同時にコミットメッセージを記述することができる。
オプションを付けずに "git commit" のみで実行した場合は、テキストエディタが開かれる。

"git commit -a" と-aオプションを使用すると、変更された内容全てが自動でインデックスに追加され、そのまま続けてコミットが行われる。

ただし、新規ファイルに関しては -aオプションでコミットすることはできないため、事前にaddコマンドでインデックスに追加しておく必要がある。

"git push origin main"
ローカルのmainブランチの内容を、リモートoriginmainブランチに送信する。


"git fetch origin/master"
リモートのmainブランチの内容が、ローカルのorigin/main(リモート追跡ブランチ)に反映される。
リモートリポジトリの最新情報を、ローカルPCにダウンロードするだけ。
ローカルの自分のmainブランチは、変わらない。

"git checkout main"
ローカルリポジトリにおいてmainブランチに移動する。
originリポジトリを指定しなくても、通常自動的にorigin/mainブランチとなる。

"git fetch origin"
リモートのoriginリポジトリ内容が、ローカルのorigin(リモート追跡リポジトリ)に反映される。
リモートリポジトリの最新情報を、ローカルPCにダウンロードするだけ。
ローカルの自分のリポジトリは、変わらない。

"git merge origin/main"
リモートの変更内容(origin/main)をローカルの現在のブランチ(main)に合体する。

"git reset --soft HEAD^"

で直前のコミットの取り消しが可能。

このコマンドを実行すると、直前のコミットが取り消され、変更したコミット内容がインデックスへと戻される。

pushした後に "git reset" で取り消すと、リモートリポジトリとの履歴にずれが生じて新たに pushすることができなくなってしまう。
コミット内容を既にリモートリポジトリに pushしている場合は、resetコマンドではなく revertコマンドを使用する。

 

 

 
(旧記事)
A-1)リモートリポジトリ作成
A-2)リモートリポジトリのローカルへのclone

B-1)git fetch origin master 
B-2)git merge FETCH_HEAD
 
3)ローカルリポジトリでのファイル作成
4)ローカルリポジトリ内のファイルのadd
  サブディレクトリ作成時はその中にファイルが無ければcommitできない?
      $ git add -A
5)ローカルリポジトリのcommit
      $ git commit -a -m "MESSAGE"
6)ローカルリポジトリ内のリモートリポジトリへのpush
      $ git push origin master