4

明示的なブランチ名を指定しない場合、特定のブランチから質問が飛び交うことは知っていますが、ユーザー別のブランチを指定した場合でも、強制的にプルブランチを実行できるかどうか疑問に思っています。git pull

例。

ライブサーバーにログインして最新の変更をプルする場合は、ブランチライブからの変更のみが必要です。したがって、シェルで次のように実行するとします。

git pull origin master

私はgitをどちらかにしたいと思います

  1. エラーをスローします
  2. それを無視して、オリジンリモートのライブブランチからプルするだけです

これは可能ですか?このような状況は避けたいと思っています。コアビジネスシステムであるため、問題が発生した場合は良くありません。

4

1 に答える 1

3

これが本番サーバーの場合、誰でもそのリポジトリで任意のgitコマンドを実行できるようにするのは悪い考えのようです。マージ(例:とgit pull)を行うと、競合が発生し、ライブサーバーのセットアップが壊れてしまう可能性があります。人々は通常、開発者が以下をチェックするpost-receiveまたはフックを持つベアリポジトリにプッシュすることによって本番サーバーにデプロイできるようにすることによってのみこの問題に対処すると思います。update

  1. refs/heads/master更新中の場合
  2. その場合は、次の新しいディレクトリにチェックアウトします。

    GIT_WORK_TREE=/deployment/directory git checkout -f
    

もちろん、これは人々が間違ったものをローカルでマージしてからそれをステージングサーバーまたはライブサーバーにプッシュすることを妨げるものではありませんが、それについてできることはあまりありません-人々はコミットを適切にテストする必要があります(プッシュする前に、ローカルまたはステージングサーバー上で)。

于 2011-05-24T05:23:32.080 に答える