Skip to content

Conversation

@nyaocat
Copy link

@nyaocat nyaocat commented Oct 21, 2020

まこさんのリポジトリにC++のHello World的なコードを追加するブランチを作成して、コミットを重ねていたのだがそもそも最初のコミットからして動かないコードを書いてしまっていた!あわててコードを修正するコミットをしたが、これでは最初のコミットが『どのコミットの状態でもコードはコンパイル可能な状態であるべき』という原則(※と私は思ってる)に違反してしまっている!私の代わりに git rebase -i を使って直して欲しい!

今の状態

  1. READMEに C++ のコード片を追加 08fbfb4
  2. indentでなく言語識別子付きの三連バッククォートでコードブロック記述 6fab5ca
  3. 必要なヘッダの記述が抜けていたため追記修正 9b776ad

の順にコミットが並んでいる。

変更して欲しい内容

『必要なヘッダの記述が抜けていたため追記修正 9b776ad』で行った修正を『READMEに C++ のコード片を追加 08fbfb4』に合体させ、他のコミットはそのままにする。

最終的なコミットは

  1. READMEに C++ のコード片を追加
  2. indentでなく言語識別子付きの三連バッククォートでコードブロック記述

の2つになる。(それぞれのコミットが持つ diff は変化する)

int main() {
std::cout << "Hello" << std::endl;
}
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このCommit時にindentでなく言語識別子付きの三連バッククォートでコードブロック記述は残してはいけなかった

@maconaco maconaco marked this pull request as ready for review October 23, 2020 05:39
@maconaco
Copy link
Contributor

maconaco commented Oct 23, 2020

にゃおさんの作業してたブランチに移動

$ git switch -c add-cplusplus-code origin/add-cplusplus-code

rebase作業

  1. $ git rebase -i commit_number(rebase作業をしたいひとつ前のコミット番号)

  2. 3番目の必要なヘッダの記述が抜けていたため追記修正というcommitをfixupで
    1番目のREADMEに C++ のコード片を追加というコミットにまとめる

# before
pick 08fbfb4 READMEに C++ のコード片を追加
pick 6fab5ca indentでなく言語識別子付きの三連バッククォートでコードブロック記述
pick 9b776ad 必要なヘッダの記述が抜けていたため追記修正

# after
pick 08fbfb4 READMEに C++ のコード片を追加
fixup 9b776ad 必要なヘッダの記述が抜けていたため追記修正
pick 6fab5ca indentでなく言語識別子付きの三連バッククォートでコードブロック記述
  1. コンフリクトを修正する

  2. $ git rebase --continueでrebase作業を終了

  3. 3,4を今いるブランチの全commitでコンフリクトが起こらなくなるまで繰り返す
    6.git push --force origin add-cplusolus-codeでforce push

@YuMuuu
Copy link
Member

YuMuuu commented Oct 23, 2020

LGTM!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants