⚙️
【Git&Github】git fetchとGitのブランチ管理とワークフロー
git fetch
とは
もう少し詳しく知りたい場合
リモートリポジトリからブランチを指定せず最新状態を取得
リモートリポジトリの最新の変更をローカルに取得(通常リモート名はorigin)
git fetch origin
リモートリポジトリの特定のブランチから最新状態を取得
1.ローカルリポジトリのブランチを確認
ローカルリポジトリのブランチを確認
git branch
出力結果
$ git branch
* feature
main
2.リモートリポジトリのブランチを確認
リモートリポジトリのブランチを確認
git branch -r
出力結果
$ git branch -r
origin/feature
origin/main
3.特定のブランチの最新状態を取得
特定のブランチを最新状態を取得
git fetch origin <branch>
Gitのブランチ管理とワークフロー
1.ローカルリポジトリのブランチを確認
ローカルリポジトリのブランチを確認
git branch
出力結果(featureブランチにリモートリポジトリのブランチ最新状態を反映させる)
$ git branch
* feature
main
2.リモートリポジトリのブランチを確認
リモートリポジトリのブランチを確認
git branch -r
出力結果(どのリモートリポジトリのブランチを反映させるかを決める)
$ git branch -r
origin/feature
origin/main
3.特定のブランチの最新状態を取得
特定のブランチを最新状態を取得
git fetch origin feature
ここまでで、リモートとローカルリポジトリのブランチの状態が同じになっている。
4.ローカルの開発環境で新しい機能や修正の追加
5.リモートリポジトリにそのブランチをプッシュ
git add .
git commit -m "フェッチのテスト"
git push -u origin/feature
出力結果
出力結果
$ git add .
$ git commit -m "フェッチのテスト"
[feature 416367e] フェッチのテスト
1 file changed, 1 insertion(+)
$ git push -u origin/feature
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 8 threads
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 436 bytes | 436.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (4/4), completed with 4 local objects.
6.プルリクエストを送る(featureブランチとmainブランチに統合)
7.不要になったブランチを削除する
※GitHub上でブランチを削除しても、git branch -r
で表示されるリモートリポジトリのブランチの情報はローカルリポジトリには自動的に反映されない。
8.ローカルリポジトリのブランチを削除する
8-1.ブランチを切り替える
ブランチを切り替える(削除したいブランチにいると削除できないため)
git checkout main
出力結果
$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
8-2.ブランチを削除する
該当するブランチを削除する
git branch -d feature
$ git branch -d feature
warning: deleting branch 'feature' that has been merged to
'refs/remotes/origin/feature', but not yet merged to HEAD
Deleted branch feature (was 416367e).
#### 8-3.削除されたか確認する
```sh:
$ git branch -vv
* main bea05f7 [origin/main] Merge pull request #2 from pyusuket/feature
まとめ
git fetch
とは、リモートリポジトリから情報を取得するためのコマンドである。ローカルの指定したブランチへ最新状態を読み取り、コードを編集していき、GitHub
にてコードの確認およびプルリクエストを行う。その後、不要なブランチを削除し、リポジトリを整理することが重要である。
Discussion