1

「git pull origin BRANCH」を実行すると、誤って間違ったブランチ名を入力することがあります。
ローカル リポジトリで現在チェックしているブランチと XXX が異なる場合、「git pull origin XXX」を禁止する方法はありますか? つまり、ローカルでチェックされたブランチが YYY ではなく XXX である場合にのみ、「git pull」を許可します。

つまり、「マージ」が発生することを望んでいますが、現在ローカルリポジトリにチェックインしているのと同じブランチをプルする場合のみです。同じブランチ名からのみ「git pull」を許可するようにローカルリポジトリを構成する方法はありますか?

例: ケース 1:
ローカル リポジトリで現在チェックされているブランチは "test" です。

[* test ] /code$ git pull origin master

これにより、コードが「test」ブランチからローカルの「master」ブランチにマージされます。==>これを禁止したい。

ケース 2:

ローカル リポジトリで現在チェックされているブランチは「master」です

[* master ] /code$ git pull origin master

これにより、リモートの「マスター」ブランチからローカルの「マスター」ブランチに変更がマージされます。==>これでOKです。

私の問題をうまく説明できたと思います。

前もって感謝します。

4

4 に答える 4

3

使用する必要がありますgit fetch

のことを行います:

ローカル リポジトリに存在しないすべてのオブジェクトをリモート リポジトリから取得します。

編集:

「git pull」と「git fetch」の違いは何ですか? ( "git pull does a git fetch followed by a git merge")

編集2:

私の知る限り、ブランチはローカルで名前を付けることができ、いつでも何でもできるため、ブランチにプルすることを禁止することはできません。

ただし、didn't check を使用してプルする前の最後のコミットにプロジェクトを変更できます git pull --abort。このようなものにする必要があります。

もう1つできることはgit checkout、作成する前にブランチのSHA1にすることですgit pull.

いつでもすべて元に戻すことができます (元に戻すことはできません):

git clean -fd
git reset HEAD --hard
于 2013-04-03T09:34:17.083 に答える
1

あまり心配する必要はありませんgit reset。リポジトリをプルするたびに、シップシェイプになっていることを確認してください。

于 2013-04-04T17:13:42.140 に答える
1

git fetchコードをマージしないもの を使用してください。git pull実際には、2 つのコマンドとgit fetchそれに続くコマンドの組み合わせです。git merge

于 2013-04-03T09:35:16.717 に答える