サイドバーの壁紙
博主头像
tin博主等级

子の曰わく、我れ三人行なえば必ず我が師を得(う)。其の善き者を択びてこれに従う。其の善からざる者にしてこれを改む。

  • 累積執筆 72 記事
  • 累計作成 32 タグ
  • 累計受入 2 コメント

目 次CONTENT

記事目次
git

(編集中)git操作の整理その1(git fetch,git pull,remotes)

tin
tin
2023-10-16 / 0 コメント / 0 いいね! / 214 読み / 1,051 文字

1. git fetchとは

参考リンク
git fetch コマンドは、リモート リポジトリからローカル リポジトリにコミット、ファイル、参照をダウンロードします。 フェッチとは、他の開発者の作業内容を確認する場合に行う操作です。
git fetch origin main コマンドをローカルの main ブランチで実行する場合、以下のイメージ

$ git fetch origin main
From https://github.com/xxxxxx/docker_boot
* branch            main       -> FETCH_HEAD

変更を適用するには、git merge origin/main または git pull origin main コマンドを使用してリモートブランチの変更をローカルブランチに統合する。
git merge origin/main ですか、またはgit merge FETCH_HEAD ですか

2. リモートブランチ参照

以下のいくつかの方法を使用できます。

①. git branch -r コマンド:

git branch -r コマンドは、リモートブランチの一覧を表示します。これにより、リモートリポジトリのすべてのリモートブランチが表示されます。

git branch -r

このコマンドの出力は、リモートブランチの名前が origin/branch_name の形式で表示されます。

②. git remote show コマンド:

git remote show コマンドを使用して、リモートリポジトリに関する情報を表示できます。これにはリモートブランチの一覧も含まれます。

git remote show origin

このコマンドはリモートリポジトリ origin の情報を表示し、その中にリモートブランチの情報も含まれます。

git ls-remote コマンド:

git ls-remote コマンドは、リモートリポジトリのリファレンス(ブランチやタグなど)の一覧を表示します。これにより、リモートブランチの情報も表示できます。

git ls-remote --heads origin

このコマンドは origin リモートリポジトリのブランチの一覧を表示します。

④. git diffコマンド

git diff branch_name..origin/branch_name

これらの方法を使用して、リモートブランチの一覧や詳細情報を取得し、必要に応じてリモートブランチとの対話や操作を行うことができます。

3. remotes/とは

remotes/ は Git がリモートリポジトリとそのリモートブランチを管理するための内部的な名前空間の一部です。Git はリモートリポジトリから取得したブランチを、この名前空間内に格納します。

例えば、origin という名前のデフォルトのリモートリポジトリから master ブランチを取得すると、Git はそれを remotes/origin/master という名前で格納します。これは Git の内部で使用される名前で、通常、操作を行う際にはこの remotes/ の部分を省略して origin/master として扱います。

簡潔に言えば、remotes/ は Git の内部表現であり、通常の Git コマンドで明示的に指定する必要はありません。Git が自動的にリモートリポジトリとそのブランチを追跡し、適切なリモートブランチに対応するローカルブランチを更新します。

なので、「git checkout -b demo2 remotes/origin/demo1」と「git checkout -b demo2 origin/demo1」は同じです。

$ git checkout -b demo2 origin/demo1
Switched to a new branch 'demo2'
branch 'demo2' set up to track 'origin/demo1'.

$ git checkout -b demo2 remotes/origin/demo1
Switched to a new branch 'demo2'
branch 'demo2' set up to track 'origin/demo1'.
0
git
  • 0

コメント欄