- blogs:
- cles::blog
2019/10/28

git で変更を半分だけコミットする

git を使ってソースコードを管理していると、1 コミットで 1 Issue になるように履歴もきれいに保ちたいということがあります。
始める前はそうは思っていても、作業中に別のことが気になって、そちらもついでに直してしまったような場合(例えばバグ修正中に typo を見つけたような場合)、コミットする段階になってから困ることがあります。そのような場合には add や commit 時に -p をつけてやれば、hunk ごとに(場合によっては hunk の中をさらに分割して)ステージすることができます。
Git - git-commit Documentation
-p
--patch
Use the interactive patch selection interface to chose which changes to commit. See git-add[1] for details.
実際に add/commit しようとすると、プロンプトがこんな感じになるので種類が多くて驚くかもしれません。
Stage this hunk [y,n,q,a,d,/,e,?]
基本的には y/n で答えればよく、さらに分割する必要があるときは e を選ぶという感じでしょうか。
e を選んだときにはエディタが立ち上がるので、そこで add/commit に含めたい変更(先頭が +/- で始まっている行)だけを残すようにすればよいだけです。
これについての詳細な説明は Git - git-add Documentation にあります。
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/11311
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . Windows 10 で勝手にログアウトされないようにする(1180)
2 . リモートデスクトップで Alt + PrtSc と同じことをするには(1065)
3 . RDP のプロトコルを TCP だけに変更する(900)
4 . Flash Player projector を使って .swf をスタンドアローンで再生する(873)
5 . リモートデスクトップで Ctrl + Alt + Del キーを送信するには(774)
2 . リモートデスクトップで Alt + PrtSc と同じことをするには(1065)
3 . RDP のプロトコルを TCP だけに変更する(900)
4 . Flash Player projector を使って .swf をスタンドアローンで再生する(873)
5 . リモートデスクトップで Ctrl + Alt + Del キーを送信するには(774)
cles::blogについて
Referrers