プッシュして展開
受信したプッシュが自動的にチェックアウトするようにリモートリポジトリを構成する機能(もちろん、このコンピューターにローカルな変更がなかった場合)。 この機能は、テストおよび内部展開に便利です。追加のスクリプトをインストールしたり、サーバーにプッシュして作業コピーのファイルを自動的に変更したり、リポジトリに追加したりする必要はありません。
作者は、多くの副作用があるため、この機能を運用サーバーの展開に使用することは推奨されないことを警告しています。
- 作業コピーファイルの横に.gitディレクトリがあります。これは、Webサーバーから個別に非表示にする必要があります。
- 作業コピーファイルは1つのトランザクションで一度にすべて更新されるのではなく、一度に1つずつ更新されるため、短期間サーバーファイルが一貫性のない状態になる場合があります。
- ファイルの更新後にサーバーでアセンブリが必要な場合、スクリプトを使用する必要があります。
すでに複製されたローカルリポジトリに基づく高速複製
新しい--dissociateキーを使用すると、クローン作成中に--referenceで指定されたローカルリポジトリから必要なファイルを選択できます。これにより、ディスク上のどこかに目的のリポジトリのコピーが既にある場合、クローン作成時間とネットワーク負荷を大幅に削減できます:
git clone --reference ../oldclone --dissociate https://github.com/gitster/git.git
より保守的なデフォルトのgit push動作
最近、ブランチをプッシュするとき、gitは常に「push.default」の設定を推奨し、すぐにデフォルトの動作が変更されることを示唆していることを覚えていますか? 変更されました。 ローカルブランチの名前がアップストリームブランチの名前と異なる場合、gitは間違ったブランチのプッシュから保護するために、リモートを指定せずにプッシュを拒否します。
git checkout -b experimental origin/master git commit -a -m 'Experimental changes' git push # - push 'experimental', 'master'.
SSH接続パラメーターを手動で設定できるようになりました
GIT_SSH_COMMAND環境変数を使用して、gitがsshを使用する方法を正確に構成できるようになりました。 最後に、ユーザー全体の「〜/ .ssh / config」を変更せずに、異なるリポジトリに異なる秘密鍵を簡単に作成できます。
GIT_SSH_COMMAND='ssh -i git_id' git clone host:repo.git
自動化中にユーザー入力を無効にする機能
GIT_TERMINAL_PROMPT環境変数を0に設定すると、ユーザー入力を無効にできます。 これは、自動化スクリプトからgitが呼び出され、ユーザー入力が暗示されていない場合に便利です。現在、承認エラーが発生した場合、gitはユーザー名/パスワードを要求せず、cronスクリプトを中断します。
ささいなこと
- チェックアウト中の不要なファイルの書き換えを削減し、プッシュデプロイ時に小さな作業コピーファイルが一貫性のない状態になるようにしました。
- 「Git branch -d」(ブランチの削除)および「git branch -m」(ブランチの名前変更)で--forceスイッチがサポートされるようになりました。
全部
何かを見逃したり、誤解したり、間違って翻訳したりした場合は、書きます。