2

だから私は別の開発者と一緒に働いていて、リモートブランチ(ちなみにリモートマスターではありません)にプルアンドプッシュしたいのですが、自分のマシンでローカルブランチをチェックアウトするときにそれができるように設定したいと思います明示的に指定しなくても、リモートブランチからプルしてリモートブランチにプッシュできます。

私は自分のマシンでこのコマンドを実行しました(リモートブランチは開発と呼ばれ、作成するローカルブランチはdev1と呼ばれると仮定します):

git branch --track dev1 origin/development

次に、ローカルブランチdev1をチェックアウトし、ファイルを変更し、ステージングし、コミットしてから、次のようにプッシュしようとしました。

git push origin

しかし、私はこのメッセージを受け取りました:

Everything up-to-date

また、dev1を作成してチェックアウトした直後に、.git/configファイルに余分な行があることに気付きました。

[branch "dev1"]
    remote = origin
    merge = refs/heads/development

だから問題は私が何が欠けているのかということです。基本的に、dev1をチェックアウトして実行するたびに、次のように設定したいと思います。

git pull origin

これを明示的に指定する必要がなく、実行すると、オリジン/開発から自動的にプルされます。

git push origin

これを明示的に指定しなくても、自動的にオリジン/開発にプッシュします。

また、プッシュする変更が明確にあったのに、なぜ「すべてが最新」と表示されたのですか。

4

1 に答える 1

1

Gitプッシュは何もしません(すべて最新)」でgit push述べたように、特定のリモートブランチにプッシュするように構成されたローカルブランチのみをプッシュします。

push.default設定のため、ブランチはプッシュする場所ではなく、dev1何をプルするかを知っています。

マッチング-一致するすべてのブランチをプッシュします。両端で同じ名前を持つすべてのブランチは一致していると見なされます。これがデフォルトです。

ローカルブランチはアップストリームブランチと同じ名前ではないため、ここに問題があります。

push.default追跡に設定すると、機能します。

追跡-現在のブランチをその上流のブランチにプッシュします。

git remote show origin次に、originにプッシュするように構成されたブランチが一覧表示され、dev1が一覧表示されます。

于 2010-12-15T07:17:38.833 に答える