INDEX

*INDEX

作ったもの、メモしておきたい知識など

Gitのメモ

自分用にGitの使い方の基本をまとめました。


以下のサイトを参考にさせていただきました。
Gitの基本知識から知りたい場合はこちらがおススメです。
backlog.com

コマンドの一覧はこちらがおススメです。
qiita.com


用語

Gitで使用される用語について簡単にまとめました。
自分なりの解釈なので厳密には違うかもしれません。

リポジトリ ファイルを保存する場所 ローカルとリモートがある
インデックス リポジトリに反映させる変更を保持する addコマンドで登録する
コミット 変更をリポジトリに保存する 具体的には前回との差分を保存する
プッシュ ローカルの保存結果をリモートリポジトリに反映させる
クローン リポジトリのコピーを作成する
プル リポジトリの変更を自分のリポジトリに反映させる
作業ディレクト ファイルの変更などを行う作業用のフォルダなど
マージ ブランチ内の変更を別のブランチに統合させる

つまり、Gitを使って複数人でバージョン管理をするには

  1. リモートリポジトリを作る
  2. 各々がローカルリポジトリを作成する
  3. 作業フォルダを作り、作業を進める
  4. ファイルの変更などをインデックスにaddする
  5. インデックスの内容をローカルリポジトリにコミットする
  6. ローカルリポジトリからリモートリポジトリにプッシュする
  7. ブランチを作成している場合は、衝突が無いことを確認し、masterブランチにマージする
  8. 他の人はリモートからmasterブランチの内容をプルし、自分のローカルを更新する
  9. ④~⑧を繰り返す

という流れになります。

リポジトリを作成する

まず、例として「test」というフォルダを作成し、これをローカルリポジトリにします。
testフォルダの場所でコマンドプロンプトを起動します。

git init

これでカレントフォルダ内に「.git」という隠しフォルダが生成されます。

f:id:azurex:20190215002401j:plain
この場合「.git」がリポジトリ、「test」が作業フォルダになります。

コミットする

コミット時のユーザー名、メールアドレスの登録
git config --global user.name <ユーザー名>
git config --global user.email <メールアドレス>
addする

コミットする前にインデックスに変更を行ったファイルを登録します。

git add <ファイル or フォルダ>

以下のようにすると新規作成・変更のあったファイルのみ登録することができます。

git add .
コミット前のインデックスの確認
git status
変更内容の差分を確認する
git diff <ファイル>

コミット

コミットを行います。
m "コメント" でコメントを付けてコミットできます。
git commit だけだとコミット後に別でコメントを記入するvimのようなアプリが起動します。

git commit -m "commit comment"

以上でローカルリポジトリでの作業は終了です。
ここからはリモートリポジトリを使用する場合のプッシュ、プルなどの使い方についてです。

リモートリポジトリを作る

リモートリポジトリを作成します

git init --bare

これでカレントディレクトリをリモートリポジトリにします。

クローン元のリポジトリからプル

リモートリポジトリからプルを行い、ローカルリポジトリを最新状態に更新します。

git pull

クローン元のリポジトリにプッシュ

リモートリポジトリにローカルリポジトリから変更を反映させます。

git push

ブランチの作成

今のままだとmasterブランチにコミットすることになってしまうので、ブランチの作成をします。

git branch <branchname>

作成したら以下で確認を行います。

git branch

f:id:azurex:20190226114319j:plain

作成したブランチに移動します。

git checkout <branch>

statusコマンドで確認すると、作成したtest1ブランチに移動していることが確認できました。
f:id:azurex:20190226114559j:plain

マージする

まず現在のブランチからmasterブランチに移動します。
その後、以下のコマンドでmasterにtest1の変更をマージします。

git merge <commit>


これでtest1ブランチの内容がmasterブランチに取り込まれます。




基本的なものは以上です。
別の記事でgithubを利用する方法についても書きたいと思います。