Gitチュートリアル

コンピュータ
コンピュータ

Gitの動作を実際に試しながら確認できるチュートリアルを作成しました。

開始

ディレクトリ作成・移動
mkdir git-doc
cd git-doc

コードなどを修正する領域を作業ディレクトリ(working directory)という。

git初期化
git init

.gitというローカルリポジトリ(local repository)が作成される。

状態確認
git status
On branch master

No commits yet

nothing to commit (create/copy files and use "git add" to track)
ファイル作成

vi git.md

# Git
状態確認
git status
On branch master

No commits yet

Untracked files:
  (use "git add ..." to include in what will be committed)

        git.md

nothing added to commit but untracked files present (use "git add" to track)

作業ディレクトリに未追跡ファイルを確認。 Untracked files

ファイルをステージング領域(staging area)に追加
git add git.md
状態確認
git status
On branch master

No commits yet

Changes to be committed:
  (use "git rm --cached ..." to unstage)
        new file:   git.md

ファイルがステージされていることを確認。 Changes to be committed

コミット
git commit

エディタが起動するので、コミットメッセージを入力して保存。

Gitについて ファイル追加

ローカルリポジトリに変更内容を登録する。
ステージされているファイルのみコミットされる。

状態確認
git status
On branch master
nothing to commit, working tree clean
コミット履歴確認
git log
commit 5da0e1f4b6ee04d325ae4ef44c05da784dfa7331 (HEAD -> master)
Author: *** <***@***.***>
Date:   Sun Sep 20 20:00:00 2020 +0900

       Gitについて ファイル追加

コミットには40文字のハッシュ値が発行される。

コミット履歴を1行毎に表示
git log --oneline
5da0e1f (HEAD -> master) Gitについて ファイル追加
コミット内容確認
 git show 5da0e1f4b6ee04d325ae4ef44c05da784dfa7331
 git show 5da0

ハッシュ値は最低4文字まで省略できる。

ブランチ

ブランチ一覧
git branch

デフォルトはmasterになる。masterにしなければならないという決まりはない。

ブランチの作成
git branch chapter1
ブランチの切り替え
git checkout chapter1

chapter1ブランチに移動。

状態確認
git status
On branch chapter1
nothing to commit, working tree clean
ファイル追記

vi git.md

# Git

## 1. 使い始める

### 1.1 バージョン管理に関して
ファイルの差分
git diff
ステージングに追加
git add git.md
コミット
git commit -m '1章追加'

マージ

ブランチの切り替え
git checkout master
ファイルの中身確認
cat git.md

masterでは追記無し。

ブランチマージ
git merge chapter1
ファイルの中身確認
cat git.md
コミット履歴
 git log --oneline
5c8c723 (HEAD -> master, chapter1) 1章追加
5da0e1f Gitについて ファイル追加
ブランチの作成
git branch chapter2
ブランチの切り替え
git checkout chapter2
ファイル追記

vi git.md

# Git

## 1. 使い始める

### 1.1 バージョン管理に関して

## 2. Gitの基本

### 2.1 Gitリポジトリの取得
ファイルの差分
git diff
ステージングに追加
git add git.md
コミット
git commit -m '2章追加'
ブランチの切り替え
git checkout master
ブランチマージ
git merge chapter2
コミット履歴
git log --oneline
3c6c6d1 (HEAD -> master, chapter2) 2章追加
5c8c723 (chapter1) 1章追加
5da0e1f Gitについて ファイル追加

chapter1 には chapter2 は取り込まれていない。

マージコミット

ブランチの切り替え
git checkout chapter1
コミット履歴
git log --oneline
5c8c723 (HEAD -> chapter1) 1章追加
5da0e1f Gitについて ファイル追加
chapter1ではchapter2の追記が取り込まれていないのでマージする。
git merge master
コミット履歴
git log --oneline
3c6c6d1 (HEAD -> chapter1, master, chapter2) 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
ファイル追記

vi git.md

# Git

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史

## 2. Gitの基本

### 2.1 Gitリポジトリの取得
ステージングに追加・コミット
git add git.md
git commit -m '1章2節追加'
ブランチの切り替え
git checkout chapter2
ファイル追記

vi git.md

# Git

## 1. 使い始める

### 1.1 バージョン管理に関して

## 2. Gitの基本

### 2.1 Gitリポジトリの取得
### 2.2 変更内容のリポジトリへの記録

1章2節はない。

コミット
git add git.md
git commit -m '2章2節追加'
ブランチの切り替え
git checkout master
コミット履歴
git log --oneline
3c6c6d1 (HEAD -> master) 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
ブランチマージ
git merge chapter1
ブランチマージ
git merge chapter2

コミットメッセージの入力を求められる。
chapter2では1章2節が存在しないが、Gitが勝手にマージしてくれる。

ファイルの中身確認
cat git.md

chapter1の1章2節とchapter2の2章2節がマージにより統合されていることを確認。

コミット履歴
git log --oneline
e4bc776 (HEAD -> master) Merge branch 'chapter2'
35023c7 (chapter2) 2章2節追加
6203cfc (chapter1) 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加

今までは、派生元のmasterが派生時と変化がなかったため、マージを行ってもマージがなかったことにされていた。(Fast-forward)
2章2節追加のマージの時のみ、masterに派生時との差異あったためコミットが発生した。
このコミットをマージコミットという。

マージの際に、マージコミット発生しない場合があるので、必ず発生させたい場合は、オプションを付ける。

git merge --no-ff <branch>
コミット履歴 graphオプション
git log --oneline --graph
*   e4bc776 (HEAD -> master) Merge branch 'chapter2'
|\
| * 35023c7 (chapter2) 2章2節追加
* | 6203cfc (chapter1) 1章2節追加
|/
* 3c6c6d1 2章追加
* 5c8c723 1章追加
* 5da0e1f Gitについて ファイル追加

マージコミットは複数のコミットを親に持つ。35023c7 6203cfc

コンフリクト

ブランチの切り替え
git checkout chapter1
最新をマージ
git merge master
ファイル修正

vi git.md

# Gitについて
...
コミット
git add git.md
git commit -m 'タイトル変更'
ブランチの切り替え
git checkout chapter2
最新をマージ
git merge master
ファイル修正

vi git.md

# Gitとは
...
コミット
git add git.md
git commit -m 'タイトル変更'
ブランチの切り替え
git checkout master
コミット履歴
git log --oneline
e4bc776 (HEAD -> master) Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
ブランチマージ
git merge chapter1
ブランチマージ
git merge chapter2

コンフリクトが発生する。

Auto-merging git.md
CONFLICT (content): Merge conflict in git.md
Automatic merge failed; fix conflicts and then commit the result.
状態確認
git status
On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add ..." to mark resolution)

        both modified:   git.md

no changes added to commit (use "git add" and/or "git commit -a")

マージできなかったファイルが表示される。 Unmerged paths

ファイルの中身確認
cat git.md
<<<<<<< HEAD
# Gitについて
=======
# Gitとは
>>>>>>> chapter2

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史

## 2. Gitの基本

### 2.1 Gitリポジトリの取得
### 2.2 変更内容のリポジトリへの記録

Git側でコンフリクトが発生した場所に印をつけてくれる

自分側との差分
git diff --ours
相手側との差分
git diff --theirs
自分側を適応
git checkout --ours git.md

※手動でファイル書き換えて、コンフリクトを解消しても可。

ファイルの中身確認
cat git.md
# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史

## 2. Gitの基本

### 2.1 Gitリポジトリの取得
### 2.2 変更内容のリポジトリへの記録
コミット
git add git.md
git commit -m 'タイトル変更'
コミット履歴
git log --oneline --graph
*   8f71b50 (HEAD -> master) タイトル変更
|\
| * a5a9902 (chapter2) タイトル変更
* | 32c7fbe (chapter1) タイトル変更
|/
*   e4bc776 Merge branch 'chapter2'
|\
| * 35023c7 2章2節追加
* | 6203cfc 1章2節追加
|/
* 3c6c6d1 2章追加
* 5c8c723 1章追加
* 5da0e1f Gitについて ファイル追加

8f71b50 はマージコミットになる。

amend

ファイル新規追加・コミット
echo memo > memo.txt
git add memo.txt
git commit -m 'memo.txt 追加'
コミット履歴
git log --oneline
271f34e (HEAD -> master) memo.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe (chapter1) タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
ファイル修正

vi memo.txt

memo memo
直前のコミットを上書き
git add memo.txt
git commit --amend
コミット履歴
git log --oneline
7d869d9 (HEAD -> master) memo.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe (chapter1) タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加

reset

コミット取り消し
git reset HEAD~

HEADは今いるブランチ。~でひとつ前のコミットをさす。

コミット履歴
git log --oneline
8f71b50 (HEAD -> master) タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe (chapter1) タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加

コミットがなかったことに。

ステージングに追加
git add memo.txt
状態確認
git status
On branch master
Changes to be committed:
  (use "git reset HEAD ..." to unstage)

        new file:   memo.txt
ステージングから作業ディレクトリ
git reset HEAD memo.txt
状態確認
git status
On branch master
Untracked files:
  (use "git add ..." to include in what will be committed)

        memo.txt

nothing added to commit but untracked files present (use "git add" to track)

resetはステージングから作業ディレクトリに戻す場合にも使う。

ファイル削除
rm memo.txt

rm

ファイル作成
touch {1,2,3}.txt
状態確認
git status
On branch master
Untracked files:
  (use "git add ..." to include in what will be committed)

        1.txt
          2.txt
        3.txt

   nothing added to commit but untracked files present (use "git add" to track)
すべてをステージングへ
git add .
状態確認
git status
On branch master
Changes to be committed:
  (use "git reset HEAD ..." to unstage)

        new file:   1.txt
          new file:   2.txt
        new file:   3.txt
コミット
git commit -m '1,2,3.txt 追加'
コミット履歴
git log --oneline
234a3b4 (HEAD -> master) 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe (chapter1) タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
ファイルを削除してみる
rm *.txt
状態確認
git status
On branch master
Changes not staged for commit:
    (use "git add/rm ..." to update what will be committed)
    (use "git checkout -- ..." to discard changes in working directory)

           deleted:    1.txt
           deleted:    2.txt
           deleted:    3.txt

no changes added to commit (use "git add" and/or "git commit -a")
削除をステージングへ
git rm *.txt
状態確認
git status
On branch master
Changes to be committed:
    (use "git reset HEAD ..." to unstage)

           deleted:    1.txt
           deleted:    2.txt
           deleted:    3.txt
コミット
git commit -m '1,2,3.txt 削除'
コミット履歴
git log --oneline
ddb1567 (HEAD -> master) 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe (chapter1) タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加

rebase

ブランチの切り替え
git checkout chapter1
リベース
git rebase master

chapter1 を現在の master から始めたことにする。

コミット履歴
git log --oneline
ddb1567 (HEAD -> chapter1, master) 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
ファイル追記・コミット

vi git.md

# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
...
git add git.md
git commit -m '1章3節追加'
ファイル追記・コミット

vi git.md

# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
...
git add git.md
git commit -m '1章4節追加'
ファイル追記・コミット

vi git.md

# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
...
git add git.md
git commit -m '1章4節1項追加'
ファイル追記・コミット

vi git.md

# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
...
git add git.md
git commit -m '1章4節2項追加'
ファイル追記・コミット

vi git.md

# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
### 1.5 Gitのインストール
...
git add git.md
git commit -m '1章5節追加'

コミットをまとめる

1章4節1項追加1章4節2項追加1章4節追加にまとめる

コミット履歴
git log --oneline
903503c (HEAD -> chapter1) 1章5節追加
be34140 1章4節2項追加
576603a 1章4節1項追加
ad29739 1章4節追加
5120c3e 1章3節追加
ddb1567 (master) 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
コミットの選択範囲を指定
git rebase -i 5120c3e 

5120c3e 1章3節追加 以降を指定

選択した範囲がエディタに表示される

pick ad29739 1章4節追加
pick 576603a 1章4節1項追加
pick be34140 1章4節2項追加
pick 903503c 1章5節追加
統合する箇所をエディタで修正

squashで直前のpickを指定したコミットに統合。メッセージも統合。

pick ad29739 1章4節追加
squash 576603a 1章4節1項追加
squash be34140 1章4節2項追加
pick 903503c 1章5節追加
コミット履歴
git log --oneline
3398bd1 (HEAD -> chapter1) 1章5節追加
eaeebf9 1章4節追加
5120c3e 1章3節追加
ddb1567 (master) 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加

統合されているのを確認。
ハッシュ値が変わるので注意。

コミットを編集

1章4節追加を変更する

コミットの選択範囲を指定
git rebase -i 5120c3e  

5120c3e 1章3節追加 以降を指定

選択した範囲がエディタに表示される

pick eaeebf9 1章4節追加
pick 3398bd1 1章5節追加
統合する箇所をエディタで修正

editで編集

edit eaeebf9 1章4節追加
pick 3398bd1 1章5節追加

メッセージが表示される

Stopped at eaeebf9...  1章4節追加
You can amend the commit now, with

    git commit --amend

Once you are satisfied with your changes, run

    git rebase --continue
状態確認
git status
Last command done (1 command done):
     edit eaeebf9 1章4節追加
  Next command to do (1 remaining command):
     pick 3398bd1 1章5節追加
      (use "git rebase --edit-todo" to view and edit)
  You are currently editing a commit while rebasing branch 'chapter1' on '5120c3e'.
     (use "git commit --amend" to amend the current commit)
   (use "git rebase --continue" once you are satisfied with your changes)

 nothing to commit, working tree clean
ファイル修正

vi git.md

# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
#### 1.4.3 補足3
...
コミットしなおす。
git add git.md
git commit --amend
リベースを続行
git rebase --continue

コンフリクトが起こらなければ終了するが、コンフリクトが発生する。

Auto-merging git.md
CONFLICT (content): Merge conflict in git.md
error: could not apply 3398bd1... 1章5節追加
Resolve all conflicts manually, mark them as resolved with
"git add/rm ", then run "git rebase --continue".
You can instead skip this commit: run "git rebase --skip".
To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 3398bd1... 1章5節追加
状態確認
git status
interactive rebase in progress; onto 5120c3e
Last commands done (2 commands done):
       edit eaeebf9 1章4節追加
       pick 3398bd1 1章5節追加
No commands remaining.
  You are currently rebasing branch 'chapter1' on '5120c3e'.
     (fix conflicts and then run "git rebase --continue")
   (use "git rebase --skip" to skip this patch)
     (use "git rebase --abort" to check out the original branch)

 Unmerged paths:
   (use "git reset HEAD ..." to unstage)
   (use "git add ..." to mark resolution)

            both modified:   git.md

    no changes added to commit (use "git add" and/or "git commit -a")
ファイルの中身確認
cat git.md
# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
<<<<<<< HEAD
#### 1.4.3 補足3
=======
### 1.5 Gitのインストール
>>>>>>> 3398bd1... 1章5節追加

## 2. Gitの基本

### 2.1 Gitリポジトリの取得
### 2.2 変更内容のリポジトリへの記録
手動でコンフリクトを解消する

vi git.md

# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
#### 1.4.3 補足3
### 1.5 Gitのインストール
...
コンフリクトを解消し、ステージに配置
git add git.md
リベースを続行
git rebase --continue
リベースが完了
[detached HEAD d8d7e17] 1章5節追加
 1 file changed, 1 insertion(+)
Successfully rebased and updated refs/heads/chapter1.
コミット履歴
git log --oneline
d8d7e17 (HEAD -> chapter1) 1章5節追加
4d699ee 1章4節追加
5120c3e 1章3節追加
ddb1567 (master) 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
リベースを中止したい場合
git rebase --abort

stash

ファイル修正

vi git.md

# Gitについて

## 1. 使い始める
作業中。。。
...
追跡中のファイルを変更中に、別ブランチに移動できない。
git checkout master

※エラーになる。

error: Your local changes to the following files would be overwritten by checkout:
        git.md
Please commit your changes or stash them before you switch branches.
Aborting
変更を退避する
git stash
Saved working directory and index state WIP on chapter1: d8d7e17 1章5節追加
ファイルの中身確認
cat git.md
# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
#### 1.4.3 補足3
### 1.5 Gitのインストール

## 2. Gitの基本

### 2.1 Gitリポジトリの取得
### 2.2 変更内容のリポジトリへの記録

変更が退避されている。

退避一覧
git stash list
stash@{0}: WIP on chapter1: d8d7e17 1章5節追加
退避を戻す
git stash pop stash@{0}
ファイルの中身確認
cat git.md
# Gitについて

## 1. 使い始める
作業中。。。

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
#### 1.4.3 補足3
### 1.5 Gitのインストール

## 2. Gitの基本

### 2.1 Gitリポジトリの取得
### 2.2 変更内容のリポジトリへの記録

退避したものが戻される。

ローカルの変更を元に戻す
git checkout git.md

git checkout <file>

ブランチ切り替え
git checkout master
ブランチマージ
git merge chapter1
コミット履歴
git log --oneline
d8d7e17 (HEAD -> master, chapter1) 1章5節追加
4d699ee 1章4節追加
5120c3e 1章3節追加
ddb1567 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加

revert

2章2節追加のコミットを打ち消す
git revert 35023c7
コミット履歴
git log --oneline
7c575fb (HEAD -> master) Revert "2章2節追加"
d8d7e17 (chapter1) 1章5節追加
4d699ee 1章4節追加
5120c3e 1章3節追加
ddb1567 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
ファイルの中身確認
cat git.md
# Gitについて

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
#### 1.4.3 補足3
### 1.5 Gitのインストール

## 2. Gitの基本

### 2.1 Gitリポジトリの取得

2章2節が存在しないことを確認。

リモートリポジトリ

GitHubやGitLabなどでGitのリモートリポジトリを作成。

リモートリポジトリ追加
git remote add origin <url>

originという名前で追加。originにしなければならないという決まりはない。

リモート確認
git remote -v
ローカルリポジトリにコミットした内容をリモートリポジトリに送信。
git push origin master
コミット履歴
git log --oneline
7c575fb (HEAD -> master, origin/master) Revert "2章2節追加"
d8d7e17 (chapter1) 1章5節追加
4d699ee 1章4節追加
5120c3e 1章3節追加
ddb1567 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加

origin/masterが表示されていることを確認。

ファイル修正・コミット

vi git.md

# Gitとは
...
git add git.md
git commit -m 'タイトル変更'
プッシュ
git push origin master
リモートの調査
git remote show origin
リモートリポジトリ(WEB上)で追記(master)

GitHub・GitLabなどはWEB上からファイルが修正可能なので修正してみる。

...
### 2.1 Gitリポジトリの取得

## 3. Gitのブランチ機能

### 3.1 ブランチとは

コミットメッセージ 3章追加

リモートリポジトリのデータを取得
git fetch origin
リモートリポジトリのコミット履歴
git log origin/master --oneline
5606a02 (origin/master) 3章追加
a7b3058 (HEAD -> master) タイトル変更
7c575fb Revert "2章2節追加"
d8d7e17 (chapter1) 1章5節追加
4d699ee 1章4節追加
5120c3e 1章3節追加
ddb1567 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
リモートリポジトリとの差分
git diff master origin/master
リモートリポジトリをマージ
git merge origin/master
ファイルの中身確認
cat git.md
# Gitとは

## 1. 使い始める

### 1.1 バージョン管理に関して
### 1.2 Git略史
### 1.3 Gitの基本
### 1.4 コマンドライン
#### 1.4.1 補足1
#### 1.4.2 補足2
#### 1.4.3 補足3
### 1.5 Gitのインストール

## 2. Gitの基本

### 2.1 Gitリポジトリの取得

## 3. Gitのブランチ機能

### 3.1 ブランチとは

3章が追加されていることを確認。

chapter4で追記

リモートリポジトリ(WEB上)にchapter4を作成。

...
### 3.1 ブランチとは

## 4. Gitサーバー

### 4.1 プロトコル

コミットメッセージ 4章追加

リモートリポジトリのデータを取得
git fetch origin
すべてのブランチ一覧
git branch -a

※リモートブランチも確認

   chapter1
   chapter2
* master
  remotes/origin/chapter4
  remotes/origin/master
リモートブランチからブランチ作成
git branch chapter4 origin/chapter4
すべてのブランチ一覧
git branch -a
   chapter1
   chapter2
   chapter4
* master
  remotes/origin/chapter4
  remotes/origin/master
ブランチの切り替え
git checkout chapter4
コミット履歴
git log --oneline
3c87dfb (HEAD -> chapter4, origin/chapter4) 4章追加
5606a02 (origin/master, master) 3章追加
a7b3058 タイトル変更
7c575fb Revert "2章2節追加"
d8d7e17 (chapter1) 1章5節追加
4d699ee 1章4節追加
5120c3e 1章3節追加
ddb1567 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
ブランチの切り替え
git checkout master
ブランチマージ
git merge chapter4
コミット履歴
git log --oneline
3c87dfb (HEAD -> master, origin/chapter4, chapter4) 4章追加
5606a02 (origin/master) 3章追加
a7b3058 タイトル変更
7c575fb Revert "2章2節追加"
d8d7e17 (chapter1) 1章5節追加
4d699ee 1章4節追加
5120c3e 1章3節追加
ddb1567 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
プッシュ
git push origin master
コミット履歴
git log --oneline
3c87dfb (HEAD -> master, origin/master, origin/chapter4, chapter4) 4章追加
5606a02 3章追加
a7b3058 タイトル変更
7c575fb Revert "2章2節追加"
d8d7e17 (chapter1) 1章5節追加
4d699ee 1章4節追加
5120c3e 1章3節追加
ddb1567 1,2,3.txt 削除
234a3b4 1,2,3.txt 追加
8f71b50 タイトル変更
a5a9902 (chapter2) タイトル変更
32c7fbe タイトル変更
e4bc776 Merge branch 'chapter2'
35023c7 2章2節追加
6203cfc 1章2節追加
3c6c6d1 2章追加
5c8c723 1章追加
5da0e1f Gitについて ファイル追加
プル
git pull origin master

プルは fetch+merge

終わりに

知識の補完として下記スライドも参考にしてみてください。

参考スライド

コメント

タイトルとURLをコピーしました