1. ホーム
  2. git

[解決済み] 既存の git ブランチからリモートブランチを追跡する

2023-05-27 06:15:06

質問

gitで作業するときの私のいつものワークフローは、次のようなものです。

  1. ローカルリポジトリを作成する
  2. そのリポジトリで何らかの作業、ファイルの追加や変更などを行います。
  3. リポジトリ用に中央のリモート ロケーションが必要だと判断し、作成します。
  4. ローカルリポジトリからこの新しいリモートリポジトリにすべてのコミットをプッシュします。

しかし、私は次のことができるようにしたいのです。 pushpull をこのリモートリポジトリからプッシュしたりプルしたりする場所を指定する必要はありません。私のローカルマスターがリモートマスターを追跡するようにしたいのです。

適切な の方法は私にとって明確ではなく、ドキュメントからそれを判断することができませんでした。たとえそれが本当は複数のコマンドではないはずだとしても。

これは、リポジトリごとに一度だけ行われることなので、私は一般的に、2 つの単純な、しかし厄介な解決策のうちの 1 つを採用しました。

  1. 使用する git clone を使って新しいローカルリポジトリを作成し、古いリポジトリを削除しています。git cloning の後、新しいリポジトリはオリジンを追跡するように設定されています。
  2. は .git/config を手動で編集し、master が origin を追跡するようにしました。

コマンド、おそらく何らかの形で git remote を実行して、master がリモート master を追跡するように既存のリポジトリをセットアップすることができるはずです。誰かそのコマンドが何であるか教えてください。

どのように解決するのですか?

set-upstream argを使用します。

git branch --set-upstream local-branch-name origin/remote-branch-name

上記のコマンドを実行すると、.git/config ファイルが正しく更新され、この出力で確認することもできます。

ブランチ local-branch-name はオリジンからのリモートブランチ remote-branch-name を追跡するように設定されています。

EDITです。 として martijn は次のように述べています: "バージョン Git v1.8.0 では、-set-upstream は非推奨となりました。代わりに --set-upstream-to を使ってください。

git branch --set-upstream-to local-branch-name origin/remote-branch-name

参照 この をご覧ください。