ケースバイケースとは言いますが、
基本的には後者の「ブランチAからそのままブランチBをcheckoutしてしまって作業を始める」を採用してください。
企業内でやっているならレビュワー(先輩・上司等)に一言その旨を伝えるようにしてください。
何故そうなるのか?
ブランチAは何らかのレビューを受けて改修はあるかもしれないが、
そのうちブランチAの修正内容はmasterに取り込まれるからです。
えっ、取り込まれる予定がない?それこそ無駄な仕事では???ってなってしまいますからね。
チェリーピックで1個のファイルのコミットだけ抽出して……とかやると
「それ正常動作する保証あるん?テストしたんか?」という話になるわけで
1個のファイルを抜き出すメリットとデメリット(正常動作しなくなるリスク)が全く噛み合ってません。
無駄な作業だらけになるので、結果的にブランチAの最終結果を全て使った方が楽です。
もしかするとブランチAはレビュー→修正作業を経て別物になってしまうかもしれません。
その場合、ブランチAはコミットを中に詰め込むのではなく、上に積み上げるようにしましょう。
そうすればブランチBにはrebaseで簡単に下に滑り込ませる事ができるので、
ブランチAの最終結果の上にブランチBがあるんだぞという状態を維持できます。
こんな感じのコマンドの遷移になります。
giit add .
のあたりは私がファイル名を知らないから適当に書いてますが、
ちゃんとgiit diff [ファイル名]
→git add [ファイル名]
を繰り返して確認するようにしましょう。
bash
1$ git branch
2 branch-a
3* branch-b
4
5# ブランチAでレビュー内容を取り込む必要が出てきた
6$ git add .
7$ git commit -m "tmp"
8$ git checkout branch-a
9
10# ブランチAの改修作業完了
11$ git add .
12$ git commit -m "Import review content"
13$ git push origin branch-a
14
15# ブランチBにAの内容をすべりこませる
16$ git checkout branch-b
17$ giit rebase branch-a
18
19# もしコンフリクトが出たら
20$ git status
21$ vim [対象のファイル]
22$ git add .
23$ git rebase --continue
24
25# tmpコミット履歴を抽出
26$ git log
27$ git reset [コミットのハッシュID]
28$ git status
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/04/15 00:21
2022/04/15 03:37
2022/04/15 06:29