4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【GitHubまとめ第1回】基礎コマンド

Last updated at Posted at 2021-01-12

はじめに

必須スキルとなっているgit・gitHubの基礎についてまとめました。今回は「ローカルからリモートリポジトリにpushするまでの流れ」・「変更を取り消す方法」・「クローンの生成方法」を記述しています。初学者向けの内容ですが、ローカルの構造が分かっていない方には少し不親切な説明になっているかもしれません。
コマンドはコピペしやすいように、$をあえてつけていません。

全3回に渡って、下記の計画で進めます。
【計画】
第1回目 git基礎コマンド(今回)
第2回目 ブランチ・マージ・リベース・コンフリクト(https://qiita.com/tatsuya_1995/items/04148896a7f23a1f2090)
第3回目 プルリクエスト (https://qiita.com/tatsuya_1995/items/6d48b7ba8487fe38bbf8)

※沢山出回っている記事ですので、あくまでも自分用メモです。

gitのローカル基本構造

ローカルは3つのエリアに分かれる

  1. ワークツリー(ファイルを変更する作業場所)
  2. ステージ(コミットする変更を準備)
  3. ローカルリポジトリ(スナップショットを記録)

ローカルリポジトリの新規作成

初めに、.gitディレクトリを生成。

git init

Initialized empty Git repository in ○○○○○○と表示されればOK!
.gitディレクトリはリポジトリやインデックスファイル、設定ファイルが作られる。
この中にgit add .git commitなどのコマンドで作成されるファイルはこの中に保存される。

リモートリポジトリ(GitHub)へpushする流れ

ワークツリーからステージへ追加

git add .

ステージからローカルリポジトリへコミット

git commit

誰がいつ何の変更したかの記録を残すため重要。
git commit -m "<メッセージ>"とオプションをつけることでエディタを立ち上げずにコミットできる。

ローカルリポジトリからリモートリポジトリへプッシュ

GitHubでリモートリポジトリを作成

GitHub→Your profile→Repositories→New→Repository nameを入力→Create repositoryの流れ。
そのURLをコピーremoteRepository.png

リモートリポジトリ(GitHub)を新規追加

originというショートカットでURLのリモートリポジトリを登録
URLはGitHub上で作成したもの。

git remote add origin https://github.com/*****.git

origin:
直訳は「起源、発端、源」。デフォルトのリポジトリの場所(URL)の別名

リモートリポジトリ(GitHub)へプッシュ

git push -u <リモート名> <ブランチ名>
git push -u origin master

-uオプションをつけておくと、次回以降git pushのみでpushできる。
GitHubのリモートリポジトリを確認すると、リモートリポジトリにpushできていることができる。

現在の状態のファイルの状態を確認

git status

ワークツリ⇄ステージ⇄リポジトリ間で変更されたファイルを、それぞれ確認することができる。
コミットやステージに追加する前にどのファイルが変更されたかを確認する癖を付ける。
→全てのファイルをコミットすると、変更途中の物までコミットしてしまうリスクがある。どれをコミットするのか確認した方が安全。
スクリーンショット 2021-01-12 14.34.21.png
この図はstageに追加していないindex.htmlがあるという意。
git add .した後、git commitをすると、ローカルリポジトリまで行っているので表示は出なくなる。

変更の履歴を確認

git log

コミットのハッシュ値、変更者、日付、コメントが表示される。
gitlog.png

変更履歴のオプション

1行で表示する

git log --oneline

ファイルを指定して変更差分を表示する

git log -p <ファイル名>

表示するコミット数を指示する

git log -n <コミット数>

ファイルの削除方法

ファイルを削除するだけではなく「ファイルを削除する記録を残す」という意。

ファイルごと記録もを削除

  1. リポジトリにコミットした記録が消える
  2. ワークツリーからファイルが消える
git rm <ファイル名>
git rm -r <ディレクトリ名>

ファイルとディレクトリの違い
・ファイル:コンピュータ上で記録・管理される情報の単位
・ディレクトリ:ファイルの目的や種類などに応じて整理するための「入れ物」。ディレクトリはファイルとディレクトリの両方を格納できる。
参考:http://www.cc.kyoto-su.ac.jp/~hirai/text/files.html

ワークツリーにファイルは残して、リポジトリの記録だけ削除

git rm --cashed <ファイル名>

git rm コマンド後、元の状態に戻す

git reset HEAD <ファイル名>
git checkout <ファイル名>

##バージョン管理しないファイルの取り扱い
パスワードなどの公開したくないファイルは.gitignoreファイルに指定する

.gitignoreファイルを生成

touch .gitignore

.gitignoreファイルに、公開しないファイル名を記述

.gitignore.png
.gitignoreファイルに、公開したくないファイル名を記述するとバージョン管理から除外される。(今回はsecret.html)

ワークツリーのファイルを元の状態に戻す

正確には、「指示されたファイルやディレクトリの情報をステージから持ってきて、ワークツリーに反映させる」。

ファイル名やディレクトリ名を指示して元に戻す

git checkout -- <ファイル名>
git checkout -- <ディレクトリ名>

addした全変更を元に戻す

git checkout -- .

※ピリオドは全ファイルの意味

ステージのファイルを元の状態に戻す

正確には、「指示されたファイルやディレクトリの情報をリポジトリから持ってきて、ステージに反映させる」。
→最新のコミットの情報でステージの情報を上書きする。ステージから取り消すだけなので、ワークツリーには影響を与えない。

ファイル名やディレクトリ名を指示して元に戻す

git reset HEAD <ファイル名>
git reset HEAD <ディレクトリ名>

commitした全変更を元に戻す

git reset HEAD .

直前のコミットをやり直す

現在のステージの情報を元に、直前のコミットの情報を上書きする。

git commit --amend

リモートリポジトリにpushしたコミットは修正NG。
リモートリポジトリにpushした内容を修正し、--amendで上書きすると、その間にもし他の人が直前のコミット情報を元に内容を変更し、統合しようとした場合に別のファイルと認識されてしまう。

GitHubからコピー(クローン)を生成する方法

git clone <リポジトリ名>

<リポジトリ名>はGitHub上のリポジトリのCodeタブにあるURL。これをコピーして貼り付ける。
clone.png

これによって、リモートリポジトリ(GitHub)から以下の2つが行われる。

  1. リモートリポジトリのファイルをワークツリーへコピー
  2. .gitディレクトリをコピー

設定しているリモートリポジトリを表示

git remote
git remote -v

-vオプションは下記のように詳細を表示する。
fetchとpushでURLを切り替えることができる。この例では同じURLで表示。
gitRemote.png

リモートリポジトリを新規追加

git remote add <リモート名> <リモートURL>

リモートリポジトリの名前を変更

git remote rename <旧リモート名> <新リモート名>
git remote rename old_name new_name  //例

リモートリポジトリを削除

git remote rm <リモート名>

最後に

今回はgitの基礎コマンドについてまとめました。次回はブランチやマージについてまとめます。
(もしこの記事に誤りがありましたらご教授いただけると幸いです。)

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?