git使用のレバセ併合提出


ギット使用のレバセ統合提出技術
maybe yesは2015-03-15 22:43に発表しました。
原文のリンク:http://blog.lmlphp.com/archives/88/The_アメリカ.チュートリアル.of_ジートレバセto_mergeマルチプルcomitsアワa_submit 来源:LMLPHP裏庭
バージョンコントロールシステムGITについては、これまで深く研究していませんでしたが、日常使用の面から始めて、日常使用の問題を解決することができます。GITのバージョン制御には、3つの後悔方法があります。この記事では、rebaseの使用について説明します。
使用シーン:新ブランチ中開発の新機能の過程で、開発期間に関わるファイル数が多く、提出回数も非常に多く、提出過程全体が非常に複雑で、最終的に統合すると、いくつかの修正されたファイルを除去し、提出回数を一回のcomitに整理する必要があります。
以下のコマンドを使用して、すべての提出履歴を表示し、最初の「comit」の前の「comit」のハッシュ値を見つけてコピーします。
git log --pretty=oneline
rebaseコマンドに-iパラメータを加えて、指定された位置にマージして提出する例を示します。
git rebase -i f7d0bd75c8dabe127d8cbd2c1d70ff188ff83392
実行後、VIMモードに入り、最初のpick以外の全てをsquasに変更した場合、以下のようにsと略してもいいです。
pick 4f11983 add update method in mysql driver class;
squash aa8576a add attachEvent method
squash e6e8db4 modify default_theme_name constant name
squash f7d0bd7 fix method logPre;

# Rebase 6a2eb6d..f7d0bd7 onto 6a2eb6d
#
# Commands:
#  p, pick = use commit
#  r, reword = use commit, but edit the commit message
#  e, edit = use commit, but stop for amending
#  s, squash = use commit, but meld into previous commit
#  f, fixup = like "squash", but discard this commit's log message
#  x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
次に、使用:wq保存確認後、編集コメントモードに入ります。ここでは複数提出のcommentsを編集し、その後:wq保存すればいいです。通常、最初の提出まで回復すれば、衝突は発生しません。GITがrebaseの過程で衝突すると、一時分岐に入ります。この分岐で修正されたファイルを編集して提出するだけで、git rebase-continueを使ってrebaseを完成する過程、またはgit rebase-abortを使って操作をキャンセルします。最後のpushはパラメータ-fを加えなければなりません。そうでないとリモートライブラリに送ることができません。
何度も提出したら、記録を消去したくないです。削除したいファイルの内容をブランチを作成する前の状態に戻したいだけです。checkoutコマンドを使って、あるcomitとあるファイルを指定してもいいです。内容が回復したら、もう一度提出すればいいです。チームの人数が少ない時に、このようにしてもいいです。もしプロジェクトの開発メンバーが多いなら、記録が乱れないように、レバセを提出するのが一番いいです。
レビューを見る(97)評価(0)