私にとってGitrebase
は、線形の履歴を取得するための良い方法ですが、最近、その動作について少し混乱しました。状況は、ローカル リポジトリ、GitLab のオリジン リポジトリ、およびコースの読み取り専用アップストリーム リポジトリを持っているということです。
基本的に、TA はアップストリーム リポジトリでドキュメントとコードをリリースします。私はそれを取得して自分のリポジトリにマージし、ラボを終了します。これは繰り返しのプロセスです。lab2 は、lab1 を終了してオリジンにプッシュした後にリリースされます。この反復では、混乱することが起こります。
lab3 がリリースされた後、master
(lab1 と lab2 のコードを含む) を にリベースしましupstream/master
たが、コミットがすべて git 履歴の最新の場所にまとめられていることがわかりました。
lab1-TA-release -> lab2-TA-release -> lab3-TA-release -> lab1-my-code (リベース時間あり) -> lab2-my-code (リベース時間あり)
私の仕事の軌跡を示すのはコミット時間だと思うので、私が見たいのは次のような線形の履歴です:
lab1-TA-release -> lab1-my-code -> lab2-TA-release -> lab2-my-code -> lab3-TA-release
私の願いを叶える方法はありますか?
- - -アップデート - - -
たとえば、lab2 が終了し、lab3 が にリリースされましたupstream/master
。lab3-TA-release
はローカル マスターにありません (そのため、単純に使用rebase
して自分の をリゾートすることはできませんmaster
)。私はgit rebase upstream/master
最初にする必要があります。ここmy lab2-my-code
にlab1-my-code
集まって、新しい時間でリフレッシュしました。そのため、実際のコミット時間 (仕事を終えたとき) が消えてしまい、混乱してしまいました。
コミットの元の時間 (リアルタイムを意味する) を自動的に予約して線形にする方法はありますか?