前提事項
- Gitをインストールしていること
新規ローカルリポジトリを作成してGitHubにアップロードするまで
- リモートリポジトリを作成するので、GitHubにログインしてください。
- 「New」を押下してください。
- 「Repository name*」に任意の名前を設定します。今回はGitCliとします。
- 「Create repository」を押下してください。
「...or create a new repository on the command line」の内容コピーしてください。
- 任意の場所に作業ディレクトリを作成してください。今回はgitcuiとします。
作業ディレクトリの作成
mkdir gitcli
- 作成した作業ディレクトリに移動してください。
作業ディレクトリに移動
cd gitcli
コピーした内容を順番に実行してください。
GitHubでコピーした内容
echo "# GitCli" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main
git remote add origin git@github.com:T-H9703EnAc/GitCli.git
git push -u origin main
以下のように「README.md」が新規リポジトリに追加されれば成功です。
既存ファイルを変更してリモートリポジトリにプッシュするまで
- ローカル環境で任意の方法で、「README.md」に変更を加えます。
README.mdに追記する
echo "README.mdに追記" >> README.md
- 変更状態を確認します。
変更状態を確認
git diff
実行結果
- 変更内容は以下のように表示されます。
git diff実行結果
diff --git a/README.md b/README.md
index 44f8ffc..7d0e9fb 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,2 @@
# GitCli
- 変更したファイルをステージングに追加します。今回は「README.me」です。
ステージングに追加
git add README.md
- 変更した複数のファイルをすべて一度に追加したい場合は、以下のコマンドを実行してください。
ステージングに追加(すべての変更ファイルを追加)
git add .
- ステージングに追加されているか確認します。
ステージングに追加されているか確認
git status
実行結果
- ステージング状態は以下のように表示されます。
ステージング状態の確認
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
- ステージングしたファイルの変更は、以下のコマンドで確認できます。
ステージングしたファイルの変更確認
git diff --staged
- コミットを実施します。
コミットを実施
git commit -m "README.mdに内容を追記"
実行結果
- コミット後のメッセージは、以下のように表示されます。
コミットの結果
[main ba2db7b] README.mdに内容を追記
1 file changed, 1 insertion(+)
- プッシュを実施します。
プッシュを実施
git push -u origin main
実行結果
- プッシュ後のメッセージは、以下のように表示されます。
プッシュ後のメッセージ
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 323 bytes | 161.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:T-H9703EnAc/GitCli.git
70e94a1..ba2db7b main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
以下の画像ように「README.mdに追記」が追加されていたら成功です。
リモートリポジトリの最新状態をローカルリポジトリに反映する(fetch-merge版)
まずは、リモートリポジトリの「README.me」をGitHubから直接変更します。
- 編集ボタンを押下します。
- 以下の文言を追記し、「Commit changes...」を押下します。
README.meへの追記内容
README.mdに追記(fetch merge)
- 以下を「Commit message」を入力し、「Commit changes」を押下します。
Commit messageに入力する内容
README.mdをリモートリポジトリから直接更新
以下のように表示されれば、リモートリポジトリの更新は完了です。
次に、ローカル環境にこれを反映します。
- まずは、現在の状況を確認するためにコミット履歴を確認します。
現在のコミット履歴を確認する
git log --oneline
実行結果
- コミット履歴のメッセージは、以下のように表示されます。
コミット履歴確認コマンド
ba2db7b (HEAD -> main, origin/main) README.mdに内容を追記
70e94a1 first commit
- ローカルブランチを更新します。
fetchコマンド
git fetch origin
実行結果
- フェッチ後のメッセージは、以下のように表示されます。
フェッチの結果
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 732 bytes | 244.00 KiB/s, done.
From github.com:T-H9703EnAc/GitCli
ba2db7b..04b79dd main -> origin/main
- ローカルブランチととリモートブランチの差分を確認します。
ローカルブランチととリモートブランチの差分を確認するコマンド
git log main..origin/main --oneline
実行結果
- GitHubで更新した内容が表示されます。
コミット履歴の結果
04b79dd (origin/main) README.mdをリモートリポジトリから直接更新
- 事前に、まだ作業ディレクトリが更新されていないことを確認するために、「README.md」を確認します。
README.mdの内容を確認
cat README.md
実行結果
- 「README.md」はまだ、更新されていません。
README.mdの中身
# GitCli
README.mdに追記
- 作業ディレクトリを更新します。
mergeコマンド
git merge origin/main
実行結果
- マージ後のメッセージは、以下のように表示されます。
マージの結果
Updating ba2db7b..04b79dd
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)
- コミット履歴を確認します。
現在のコミット履歴を確認する
git log --oneline
実行結果
- コミット履歴が追加されています。
コミット履歴確認コマンド
04b79dd (HEAD -> main, origin/main) README.mdをリモートリポジトリから直接更新
ba2db7b README.mdに内容を追記
70e94a1 first commit
- 「README.md」を確認します。
README.mdの内容を確認
cat README.md
実行結果
- 「README.md」は、更新されます。
README.mdの中身
# GitCli
README.mdに追記
README.mdに追記(fetch merge)
リモートリポジトリの最新状態をローカルリポジトリに反映する(pull版)
- fetch-merge版と同じようにGitHubで直接リモートリポジトリの「README.me」の内容を更新してください。
README.meへの追記内容
README.mdに追記(pull)
Commit messageに入力する内容
README.mdをリモートリポジトリから直接更新2
- 更新前のコミット履歴を確認します。
現在のコミット履歴を確認する
git log --oneline
実行結果
- コミット履歴が追加されています。
コミット履歴確認コマンド
04b79dd (HEAD -> main, origin/main) README.mdをリモートリポジトリから直接更新
ba2db7b README.mdに内容を追記
70e94a1 first commit
- 更新前の「README.md」を確認します。
README.mdの内容を確認
cat README.md
実行結果
- 「README.md」は、更新されます。
README.mdの中身
# GitCli
README.mdに追記
README.mdに追記(fetch merge)
- ローカルリポジトリと作業ディレクトリを更新します。
pullコマンド
git pull origin main
実行結果
- プル後のメッセージは、以下のように表示されます。
プルの結果
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 736 bytes | 245.00 KiB/s, done.
From github.com:T-H9703EnAc/GitCli
* branch main -> FETCH_HEAD
04b79dd..fa6563e main -> origin/main
Updating 04b79dd..fa6563e
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)
- 更新後のコミット履歴を確認します。
現在のコミット履歴を確認する
git log --oneline
実行結果
- コミット履歴が追加されています。
コミット履歴確認コマンド
fa6563e (HEAD -> main, origin/main) README.mdをリモートリポジトリから直接更新2
04b79dd README.mdをリモートリポジトリから直接更新
ba2db7b README.mdに内容を追記
70e94a1 first commit
- 更新後の「README.md」を確認します。
README.mdの内容を確認
cat README.md
実行結果
- 「README.md」は、更新されます。
README.mdの中身
# GitCli
README.mdに追記
README.mdに追記(fetch merge)
README.mdに追記(pull)
ローカルリポジトリに新しいブランチを作成してリモートリポジトリにプッシュするまで
- 現在のブランチを確認します。
現在のブランチを確認
git branch
実行結果
- 「main」ブランチと確認できます。
ブランチ確認結果
* main
- 新規ブランチを作成して、そのブランチに切り替えます。ブランチ名は「develop」とします。
新規ブランチを作成して、そのブランチに切り替える
git checkout -b develop
実行結果
- 「develop」ブランチを作成して、切り替えています。
新規ブランチ作成結果
Switched to a new branch 'develop'
- 再度、現在のブランチを確認します。
現在のブランチを確認
git branch
実行結果
- 「develop」ブランチと確認できます。
ブランチ確認結果
* develop
main
- 特に何も更新せず、一旦リモートリポジトリにプッシュします。
プッシュを実施
git push origin develop
実行結果
- プッシュ後のメッセージは、以下のように表示されます。
push結果
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'develop' on GitHub by visiting:
remote: https://github.com/T-H9703EnAc/GitCli/pull/new/develop
remote:
To github.com:T-H9703EnAc/GitCli.git
* [new branch] develop -> develop
- GitHubを確認すると以下のように「develop」ブランチが追加されています。
developブランチ更新してmainブランチに反映するためのプルリクを行う
- ブランチが「develop」であることを確認します。
現在のブランチを確認
git branch
実行結果
- 「develop」ブランチと確認できます。
ブランチ確認結果
* develop
main
- もし、「develop」ブランチ出ない場合は、以下のコマンドで切り替えます。
ブランチ切り替え
git checkout develop
- 「develop」ブランチで、「README.md」に変更を加えます。
README.mdに追記する
echo "README.mdに追記(プルリク)" >> README.md
- 変更状態を確認します。
変更状態を確認
git diff
実行結果
- 変更内容は以下のように表示されます。
ブランチ確認結果
diff --git a/README.md b/README.md
index d610b05..67dad33 100644
--- a/README.md
+++ b/README.md
@@ -2,3 +2,4 @@
README.mdに追記
README.mdに追記(fetch merge)
README.mdに追記(pull)
+README.mdに追記(プルリク)
- 変更したファイルをステージングに追加します。
ステージングに追加
git add README.md
- ステージングに追加されているか確認します。
ステージングに追加されているか確認
git status
実行結果
- ステージング状態は以下のように表示されます。
ステージング状態の確認
On branch develop
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
- コミットを実施します。
コミットを実施
git commit -m "README.mdに内容を追記(プルリク)"
実行結果
- コミット後のメッセージは、以下のように表示されます。
コミットの結果
[develop 92e2373] README.mdに内容を追記(プルリク)
1 file changed, 1 insertion(+)
- プッシュを実施します。
プッシュを実施
git push -u origin develop
実行結果
- プッシュ後のメッセージは、以下のように表示されます。
プッシュ後のメッセージ
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 368 bytes | 184.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:T-H9703EnAc/GitCli.git
fa6563e..92e2373 develop -> develop
Branch 'develop' set up to track remote branch 'develop' from 'origin'.
- GitHubを確認すると「main」ブランチは更新されていません。
- 「develop」ブランチは更新されています。
「プルリク」を実施します。
- 「Pull requests」を押下します。
- 「NEW pull request」を押下します。
- プルダウンから「base: main」、「compare: develop」を選択します。
- base: マージ先(変更させたいブランチ)
- compare: マージ元(自分が変更したブランチ)
- 変更内容を確認したら、「Create pull request」を押下します。
- 「Add a title(タイトル)」と「Add a description(説明)」を記載したら、「Create pull request」を押下します。
- 以下のように表示されたら、プルリクは成功です。
- 「Merge pull request」を押下します。
本来は、レビュアーがコードレビューを行い、問題がなければ「Merge pull request」を実施します。
- 「Confirm merge」を押下します。
- 以下のように「Pull request successfully merged and closed」と表示されれば成功です。
- 「main」ブランチを確認すると、変更内容が反映されていることが確認できます。
- ローカルブランチを「main」ブランチに変更します。
mainブランチに変更する
git checkout main
実行結果
- mainブランチ変更のメッセージは、以下のように表示されます。
mainブランチ変更のメッセージ
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
- プルを実施します。
プルを実施
git pull origin main
実行結果
- プル後のメッセージは、以下のように表示されます。
プル後のメッセージ
remote: Enumerating objects: 1, done.
remote: Counting objects: 100% (1/1), done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (1/1), 684 bytes | 171.00 KiB/s, done.
From github.com:T-H9703EnAc/GitCli
* branch main -> FETCH_HEAD
fa6563e..04552c0 main -> origin/main
Updating fa6563e..04552c0
Fast-forward
README.md | 1 +
1 file changed, 1 insertion(+)
- ファイル内容を確認します。
ファイル内容を確認
cat README.md
実行結果
- ローカルリポジトリもリモートリポジトリ同様、「develop」ブランチの内容が「main」ブランチに反映されています。
ファイル内容
# GitCli
README.mdに追記
README.mdに追記(fetch merge)
README.mdに追記(pull)
README.mdに追記(プルリク)
まだpushしていない直前のコミットメッセージを修正してpushする
- 「README.md」に変更を加えます。
README.mdに追記する
echo "README.mdに追記(コミットメッセージ修正)" >> README.md
- 変更状態を確認します。
実行結果
- 変更内容は以下のように表示されます。
ブランチ確認結果
diff --git a/README.md b/README.md
index 67dad33..e626677 100644
--- a/README.md
+++ b/README.md
@@ -3,3 +3,4 @@ README.mdに追記
README.mdに追記(fetch merge)
README.mdに追記(pull)
README.mdに追記(プルリク)
+README.mdに追記(コミットメッセージ修正)
- 変更したファイルをステージングに追加します。
ステージングに追加
git add README.md
- ステージングに追加されているか確認します。
ステージングに追加されているか確認
git status
実行結果
- ステージング状態は以下のように表示されます。
ステージング状態の確認
On branch main
Your branch is up to date with 'origin/main'.
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
- を間違えたコミットメッセージでコミットを実施します。
間違えたコミットメッセージでコミットを実施
git commit -m "README.mdに内容を追記(コミットメッセージ修正)_間違い"
実行結果
- コミット後のメッセージは、以下のように表示されます。
コミットの結果
[main 736fe07] README.mdに内容を追記(コミットメッセージ修正)_間違い
1 file changed, 1 insertion(+)
- 直前のコミットメッセージを確認します。
直前のコミットメッセージを確認
git log -1 --oneline
実行結果
- 直前のコミットメッセージは、以下のように表示されます。
コミットの結果
736fe07 (HEAD -> main) README.mdに内容を追記(コミットメッセージ修正)_間違い
- コミットメッセージを修正します。
コミットメッセージを修正する
git commit --amend
- 以下の画像のように、テキストエディタが開くので、メッセージを修正します。
- メッセージを以下のように修正します。
修正後コミットメッセージ
README.mdに内容を追記(コミットメッセージ修正)
-
添付画像のように開いたテキストエディタがNanoの場合は、「Ctrl + O(オー)」を押下します。
-
「Enter」で保存します。
-
「Ctrl + X」でエディタを閉じます
実行結果
- コミットメッセージ修正後は、以下のように表示されます。
コミットメッセージ修正後の結果
[main c441272] README.mdに内容を追記(コミットメッセージ修正)
Date: Tue Dec 19 01:05:53 2023 +0900
1 file changed, 1 insertion(+)
- コミットメッセージのログを確認します。
git log --oneline
実行結果
- コミットメッセージのログは、以下のように表示されます。
コミットメッセージのログ確認結果
c441272 (HEAD -> main) README.mdに内容を追記(コミットメッセージ修正)
04552c0 (origin/main) Merge pull request #1 from T-H9703EnAc/develop
92e2373 (origin/develop, develop) README.mdに内容を追記(プルリク)
fa6563e README.mdをリモートリポジトリから直接更新2
04b79dd README.mdをリモートリポジトリから直接更新
ba2db7b README.mdに内容を追記
70e94a1 first commit
- プッシュを実施します。
プッシュを実施
git push -u origin main
実行結果
- プッシュ後のメッセージは、以下のように表示されます。
プッシュ後のメッセージ
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 415 bytes | 415.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:T-H9703EnAc/GitCli.git
04552c0..c441272 main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
- リモートのコミットの履歴も正常であることが確認できます。