---
title: "大塚弘樹著 GitHub実践入門で学んだgitコマンド備忘録"
description: "『GitHub実践入門』を読みながら、GitとGitHubの操作コマンドをまとめた備忘録。"
url: "https://miyayu.jp/blog/qiita-1b46531774e5be598882/"
pubDate: "2021-11-15"
updatedDate: "2021-11-15"
tags: ["GitHub"]
---

# 大塚弘樹著 GitHub実践入門で学んだgitコマンド備忘録

> **過去の記事（Qiitaから移行）**
>
> この記事は公開当時の知識・環境に基づいて書いたものです。現在の仕様に合わせた更新・動作確認は行っておらず、内容の正確性や動作を保証するものではありません。
>
> 初出：[2021-11-15・Qiita](https://qiita.com/yuu1111main/items/1b46531774e5be598882)

# 本について
<https://www.amazon.co.jp/dp/477416366X>

本屋さんでGit関係の本を読みましたが、GitHubやGit Flowなどについてとても分かりやすく詳しく書かれているのでこちらを選びました。
いきなりgitに公開鍵を登録するのが序盤にあるので、GitHubを使うぞ！！という気持ちがとても伝わってきました。
著作権などに触れるとあれなので、大事なコマンドだけ抜き出してメモしておきます。
# GitHub連携系
### GitHubからクローン
```shell-session
 $ git clone git@github.com:ユーザー名/リポジトリ名.git
```
### プッシュ
```shell-session
 $ git push -u origin リモートリポジトリのブランチ名
```
### リモートリポジトリを登録
```shell-session
 $ git remote add origin git@github.com:ユーザー名/リポジトリ名
```
# 情報確認系
### 状況確認
```shell-session
 $ git status
```
# バージョン管理系
### リポジトリの初期化
```shell-session
 $ git init
```
### ステージ（コミットできる状態にする）
```shell-session
 $ git add ファイル名
```
### コミットする
```shell-session
コミットメッセージが１行のみ：
 $ git commit -m "メッセージ"

コミットメッセージが複数行：
 $ git commit
```
### ステージとコミットを同時に行う
```shell-session
 $ git commit -am "コミットメッセージ"
```
### 直前のコミットメッセージを修正
```text
 $ git commit --amend
```
### コミットログの確認
```shell-session
通常
 $ git log

１行目だけ
 $ git log --pretty=short

指定したファイル・ディレクトリのみ
 $ git log ファイル・ディレクトリ名

ファイルの差分も確認
 $ git log -p

ブランチを視覚的に確認する
 $ git log --graph
```
### 作業ログの確認
```shell-session
 $ git reflog
```
### 戻る
```shell-session
とある場所に戻る（コミットや作業中のファイルなど、全てをその時点に戻す）
 $ git reset --hard ハッシュ
```
### 差分確認
```shell-session
最後にadd/コミットした場所 と 現在のファイル の差分
 $ git diff

最後のコミット と addされたファイル の差分
 $ git diff HEAD
```
### 履歴の改ざん
```shell-session
 $ git rebase -i HEAD~戻したい数
pick を fixup にすることで、その歴史を無かったことにする。
```
# ブランチ関係
### ブランチ一覧
```shell-session
 $ git branch
```
### ブランチ切替
```shell-session
通常
 $ git checkout ブランチ名

ブランチを作成＆切替
 $ git checkout -b ブランチ名

1つ前のブランチに戻る
 $ git checkout -
```
### ブランチをマージ
引数についてわかりやすいサイトはこちら。

<https://sinsoku.hatenadiary.org/entry/20111025/1319497900>

```shell-session
マージしたことを残しておく
 $ git merge --no-ff マージするブランチ名
```
