0

ローカルレポからリモートレポに直接プッシュすることと、最初にリモートをチェックアウトしてからそのリモートをマスターにプッシュすることに違いがあるかどうかを知りたいですか? 昨日、新しいブランチをマスターにプッシュしましたが、バグがいくつかありました。これを修正できるかどうか、マスターに直接プッシュするのと同じかどうかを知りたいです。

編集:

マスター ブランチがあるとします。このブランチからレポを複製し、このレポを変更してマスターに直接プッシュします。

2 番目のシナリオは、新しいブランチを作成することですgit checkout -b new_branch

それからgit push new_branch master

4

1 に答える 1

0

... 昨日、新しいブランチを master にプッシュしました ...

ただし、masterはブランチの名前です。強制的に別のブランチに更新したと言いたいのですか?使用したコマンドを表示できますか?

master ブランチがあるとします。このブランチからレポを複製しました ...

いいえ、リポジトリを複製し、複製されたマスター ブランチがチェックアウトされました。ローカルのマスター ブランチを編集すると、プッシュするとリモートのマスター ブランチが更新されます (以下を参照)。

何らかの理由で新しいブランチを作成し、リモート マスターにそれを強制的にコピーさせた場合、マスターのローカル コピーを残すだけです。


1. ローカル マスターを使用する

$ git clone Repo
$ cd Repo
$ git checkout master

リモートリポジトリとローカルリポジトリには同じマスターがあります。変更後:

$ ... make changes ...
$ git commit -a

ローカル リポジトリに新しいコミットがあり、ローカル マスター ブランチがそれを指しています。

$ git push

これで、リモート リポジトリのマスター ブランチが更新され、あなたのブランチと一致するようになり、新しいコミットが送信されました。


2. 別のローカル ブランチを使用する

$ git clone Repo
$ cd Repo
$ git checkout master
$ git checkout -b new_branch

リモートリポジトリとローカルリポジトリには同じマスターがありますが、ローカルブランチもあります。変更後:

$ ... make changes ...
$ git commit -a

ローカル リポジトリに新しいコミットがあり、ローカル ブランチがそれを指しています (どちらのマスターも移動していません)。

$ git push new_branch master

ローカル マスターに影響を与えることなく、新しいローカル ブランチに追加したのと同じコミットにリモート マスターを進めます。

唯一の違いは、ローカル マスターがリモートの背後にあり (プルすると更新されます)、他の誰も見ることができず、リモート リポジトリで何も変更されていないローカル ブランチがあることです。

于 2013-09-25T17:32:50.410 に答える