---
# System prepended metadata

title: Git　基礎編(学習日　9/8)
tags: [Git]

---

# Git　基礎編(学習日　9/8)
共同開発のためのバージョン管理ツール。
ファイルの更新履歴を保存し、差分の表示等が可能である。

## リポジトリ
リポジトリにファイルやディレクトリを格納し、保存する。
* リモートリポジトリ　ネットワーク上にある共有のリポジトリ。ローカルリポジトリからアップロードする。
* ローカルリポジトリ　各パソコン内で保持するリポジトリ。

## コミット
リポジトリに記録する操作を表す。
コミット毎に時系列順に格納される。各コミット情報には一意の値がつけられる。
コミットメッセージの記入は必須である。標準的には
「変更内容の要約

変更した理由」
という形式をとる。

## Gitのインデックスの役割
リポジトリ格納の際は、一旦ワークツリー（作業用ディレクトリ）からインデックスにファイルを登録する。
その後、インデックスの状態をコミットする。

## Gitの準備
ターミナルで、git init を入力する。

## ファイルの共有とアップロード・ダウンロード
1. git add ファイル名　
共有したいファイルを選択する。
2. git commit -m　"コミットメッセージ"
選択したファイルを*Gitに*記録する。メッセージにはコミット内容を記述する。また、コミット内容は他者に分かりやすいように記述する。
3. get remote add リモート名　リモートURL
リモート（共有場所）を指定し、登録する。リモート名は一般的にoriginとする。
**リモートURL:https://github.com/yuuki-train/agile.git**
4. git push リモート名　master
リモート場所に選択したファイルをアップロードする。(プッシュ)
5. git pull リモート名　master
リモート場所から任意のファイルをダウンロードする。（プル）

## コミット前後の変更確認
* git status　
変更したファイル（未addのファイル）を赤色で表示する。addされたものは緑色で表示する。
* git diff
変更したファイルの変更内容を表示する。変更前のコードは赤色、変更したコードは緑色で表示される。
* git log
チーム内のコミットメッセージを確認する。
* git log -p
チーム内のコミットメッセージを確認し、変更内容も表示する。

## gitの機能
* git clone リモートURL
リモートリポジトリをクローン（コピー）する。

## マージ
ローカルリポジトリからリモートリポジトリへプッシュを行う際、同一ファイルを誰かが先にプッシュしていた場合はプッシュが拒否される。
そこで、Gitはマージを行い、自動的に整合性を整える処理を行う。
但し、両者が同一部分を修正しようとしている場合は、手動処理が必要となる。


###### tags: `Git`