Help us understand the problem. What is going on with this article?

Git初心者のためのGit入門

More than 5 years have passed since last update.

私もGit初心者ですが、使いながら、ちょっとずつ書き溜めておいたものをとりあえず公開します。
これからも適宜変更していく予定です。

Gitとは

Gitでは、ファイルの状態を好きなときに更新履歴として保存しておくことができます。そのため、一度編集したファイルを過去の状態に戻したり、編集箇所の差分を表示したりすることができます。

古いファイルを元に編集したファイルで、他人の編集した最新ファイルを上書きしようとすると、サーバにアップロードした際に警告が出ます。そのため、チームにて開発する際に非常に協力なツールとなります。

Gitで使う用語

リポジトリ

プログラムやファイルを蓄積しておく場所

ローカルリポジトリ

現在作業中のリポジトリです。主に自分のPCや開発サーバーなどで作業する場合はローカルリポジトリとりなります。
また、リモートリポジトリからリポジトリをクローンして,自分のPC上やサーバー上に環境を構築することもできます。

リモートリポジトリ

外部サーバのリポジトリです。リモートリポジトリはローカルリポジトリを通じて作業を行います。

ワーキングツリー

実際に作業しているディレクトリのことです。

インデックス

ワーキングツリーでの編集後、リポジトリへのコミットの前に次のコミットの対象となる状態を保持している場所です。

ワーキングツリーとインデックス

Gitでは、コミットを実行した時にワークツリーから直接リポジトリ内に状態を記録するのでなく、その間に設けられているインデックスの設定された状態を記録するようになっています。
そのため、コミットでファイルの状態を記録するためには、まずインデックスにファイルを登録する必要があります。

使用例

git add .  // ワーキングツリーにて編集したディレクトリをインデックスに登録する
git commit  // 

ブランチ

履歴の流れを分岐して記録していくものです。
分岐したブランチは他のブランチの影響を受けないため、同じリポジトリ中で複数の変更を同時に進めていくことができます。

ローカルブランチ

ローカルリポジトリ内で管理されるブランチです。

リモートブランチ

リモートリポジトリにあるブランチです。

リモートトラッキングブランチ

リモートブランチをローカルリポジトリへトラッキング(追跡)するためのブランチです。

origin/master // originにあるmasterブランチをトラッキングする
origin:リモートリポジトリ名
master:ブランチ名

チェックアウト

リポジトリにあるブランチを,ワーキングツリーに展開することです。主にブランチを切り替える際などに利用します。
Gitでは,ブランチだけでなくタグや特定のコミット,リモートリポジトリのブランチなどもチェックアウトすることができます。

コミット

インデックスに追加したファイルをリポジトリに登録します。その際には作業範囲や内容をメッセージとして追加します。

プッシュ

ローカルリポジトリの変更履歴をリモートリポジトリに共有します。
プッシュを行うことで、リモートリポジトリに自分の変更履歴がアップロードされて、リモートリポジトリ内の変更履歴がローカルリポジトリの変更履歴と同じ状態になります。

リビジョン

コミット毎に作成されるハッシュ値のことです。Gitではハッシュ値を使って世代管理を行っています。

HEAD

現在チェックアウトしているブランチの最新コミットを指定する代名詞。

FETCH_HEAD

最後に取得したリモートブランチの最新コミットを指定する代名詞。

ORIG_HEAD

前のHEADの値を指定する代名詞。

MERGE_HEAD

マージ中に生成され,ブランチにマージするコミットが記録されている代名詞。

よく使うgitコマンド

コマンド 内容
git init リポジトリを作成する
git clone 既存のリポジトリの複製を作る
git status 変更の加えられたファイルを複製する
git diff ファイルに加えられた変更点をdiff形式で表示する
git add ファイルやディレクトリをインデックスに追加する
git add . (カレントディレクトリの指定)
git add --all (全てのファイルを指定)
git commit インデックスに追加されたファイルをコミットする
git log コミットログを見る
git reset 直前のコミットを取り消す
git reset --hard <ハッシュ値> //戻りたい時点のハッシュ値に戻す
git branch ブランチ一覧を表示する。
git fetch すべてのリモートブランチをコピーする
git merge (リモートリポジトリ名) / (ブランチ名) 指定したブランチを現在チェックアウトしているブランチにマージする
git mergetool マージの際にコンフリクトしたファイルをマージするツール
git rm ファイル名 ファイルの削除
-r でディレクトリの削除
--chached でハードディスク上にはファイルを残し、ステージングエリアから除外
git remote リモートリポジトリを表示
git reflog コミットやmergeしたときのログを見る
git revert 作業ツリーを指定したコミット時点の状態にまで戻す
git config --help ヘルプを見る

本記事の参考サイト

参考にさせていただいたサイトを掲載しておきます。

サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
Gitを使いこなすための20のコマンド | SourceForge.JP Magazine
Gitチートシート - Qiita
分散バージョン管理 Git 役立つコマンド一覧
Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita
こわくない Git

h1kita
東京でソフトウェアエンジニアをしています。
smarthr
社会の非合理を、ハックする。
https://smarthr.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした