web-dev-qa-db-ja.com

現在のブランチを強制的にプッシュ

私はしばしば機能ブランチをリベースし、それらをサーバーに強制的にプッシュしたいと思います。

git Push --force Origin feature-mongodb-support

git Push --force Origin <current branch>のショートカットはありますか?

40
iblue

エイリアスを使用してコマンドを短縮できます。次のように使用します。

git config --global alias.fpush "Push --force Origin"

ブランチをプッシュするには、次のように入力します。

git fpush feature-mongodb-support

または、ブランチ名をコマンドにハードコーディングすることもできます。

git alias fpush "Push --force Origin feature-mongodb-support"

git fpushのみを使用して、貴重な作業をアップストリームにプッシュします。

ただし、ローカルブランチへの最後のマージ/リベースと強制プッシュの間に発生したサーバー上のすべての履歴を基本的に上書きするため、非早送り更新は危険です。頻繁に行う必要がある場合は、ワークフローに間違いなくsomething wrongがあります。

27
Sergey K.

これらの回答を読み、関連する質問( https://stackoverflow.com/a/18782415/586 )に対するこの回答を読んだ後、Originベースへのプッシュを強制するためにこのエイリアスを作成しました現在のブランチ名:

fp = "!git Push -f Origin \"$(git rev-parse --abbrev-ref HEAD)\""
6
jlleblanc

これでうまくいくはずです:

git alias fpush "Push --force Origin"

これにより、git fpush短縮版として。

2
Wes Hardaker

oh my zsh を使用すると、簡単にできます

ggfl

これはあなたのためにこれを行います

git Push --force-with-lease Origin <your_argument>/$(current_branch)

https://github.com/robbyrussell/oh-my-zsh/wiki/Cheatsheet

1
Lukas

追跡されるブランチに自動的に強制プッシュする(名前とアップストリームに関係なく)、このエイリアスを考案しました:

fbrpush=!git Push $(git rev-parse --abbrev-ref=loose --symbolic-full-name @{upstream} \
                    | sed 's:/: +:')

(読みやすくするために行が分割されています)

another SO answerに基づく

0
Klas Š.