Webアプリケーションの開発プロセスでは、多くの場合2つの質問があります。
1.すでに解決されているが、まだバトルサーバーにアップロードされていないタスク。 つまり、gitを更新するときに戦闘サーバーに正確に何が注がれるのか
2.ログをすばやく表示する方法-サーバーに何をいつアップロードしたか。
バージョン管理システムとして、gitが使用されます(それを介して、実稼働サーバーが更新されます)。 Redmineのタスクマネージャーとして。
redmineについてのいくつかの言葉。 彼のために、Hetznerから最も安価なVPSを取得し、リポジトリをredmineに関連付けました。 「
re #111
」という形式のコミットに対するコメントがタスクNo. 111に自動的に添付されると、非常に便利です。 したがって、「
fix #111
」はこのタスクを閉じます。 さて、リビジョンへのリンクを示したり、コミット間の差分を表示したりする形式のパン メインの「マスター」リポジトリはgithubにありますが、私はそれを放棄します。
したがって、上記の質問はコンソールのコマンドを使用してかなり簡単に回答できます。
1。
git config --global alias.incoming '!git remote update -p; git log ..@{u}'
そして、さらに
git incoming
コマンドで、それが私たちにあふれることがわかります。 詳細は
こちら (リンクは
q&aにあります )
2。
git reflog
そして
git log HEAD@{1}..HEAD@{0}
ただし、この方法は必ずしも便利ではありません。 特に、タスク#111が何であるかがすぐにはわからず、ログでフラッシュされます。
より便利にするためにどのように実装したか。
タスクのredmineでは、新しい論理フィールドProductionが追加されました。はい-サーバーにアップロードされ、いいえ-アップロードされません。
また、ユーザー
Robotがredmineに追加されました。
サーバーにアップロードするとき、フック
post-merge
ます。 このフックは、どのコミットがアップロードされたかを正確に調べ、各コミットを実行し、タスク番号がある場合は
Production=true
redmineでこのタスクをマークし、最後に変更の最終リストを作成し、ロボットのタスクを作成します(ステータスは「解決済み」)そしてそこに変更を書き込みます。
フックはphpで記述されているため Ruby on Rails REST APIを操作するための優れた
ActiveResource.phpライブラリが見つかりました。
コード全体を提供します 少しあります:
最終的な説明のタスクは次のようになります。

最後に何がありますか。
redmineフィルターを使用して、解決されたがあふれていないタスクを確認できます。 また、サーバーでいつ、何が更新されたかを簡単に確認できます-レポートに便利です。
ところで、.bashrcに自分を追加してください
alias gl='git log --pretty="%Cgreen%h %Cblue%an%Creset %s %Cred%ar"'
git log
代わりに
gl
を使用し
git log
。