回答編集履歴

1

質問者さんがしたい運用に対して、平常時に使うコマンドの共有

2023/04/04 04:10

投稿

miyabi-sun
miyabi-sun

スコア21158

test CHANGED
@@ -4,6 +4,62 @@
4
4
 
5
5
  `git commit --amend`や`git rebase`をうまく使いながら潰してください。
6
6
  `git reset`でローカルのファイルを維持したままmainブランチのタイミングまで戻っても良いでしょう。
7
+
8
+ また、自分が開発しているのに
9
+ mainブランチがどんどん積み上がって結果を受け取らなきゃいけない!
10
+ こういう時はローカルでmergeをしないで、rebaseを使って下に滑り込ませた方が良いです。
11
+
12
+ ```bash
13
+ $ git branch
14
+ * main
15
+
16
+ $ git checkout -b feature/a
17
+ $ git add [file-name]
18
+ $ git commit -m "Aコミット"
19
+
20
+ # 「mainが更新されたから受け取ってねー」
21
+ # 一度コミットして退避
22
+ $ git add [file-name]
23
+ $ git commit -m "tmp"
24
+
25
+ $ git checkout main
26
+ $ git pull origin main
27
+ $ git fetch
28
+
29
+ $ git checkout feature/a
30
+ $ git rebase master
31
+
32
+ $ git log
33
+ # "Aコミット"のIDをコピペ
34
+ $ git reset [AコミットのID]
35
+ ```
36
+
37
+ こんな感じで最新のmainを下に滑り込ませて、貴方のコミット常に最後に乗せる運用にすると良いです。
38
+
39
+ ---
40
+
41
+ 後は1PR1コミットを維持する場合のテクニックですが、
42
+ `git commit --amend`を使いましょう。
43
+ これは`git log`で出てくる一番最後のコミットに対して混ぜ込むコマンドとして機能します。
44
+
45
+ ```bash
46
+ $ git branch
47
+ * main
48
+
49
+ $ git checkout -b feature/a
50
+
51
+ $ git add [適当なファイル]
52
+ $ git commit -m "tmp"
53
+
54
+ # 一旦保存しておきたい
55
+ $ git add [ファイルパス]
56
+ $ git commit --amend
57
+
58
+ # できた!
59
+ $ git add [ファイルパス]
60
+ $ git commit --amend -m "ちゃんとしたコミットメッセージ"
61
+ $ git push origin feature/a
62
+ ```
7
63
 
8
64
  ---
9
65