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
終わりに
知識の補完として下記スライドも参考にしてみてください。
コメント