みなさんはGitって使っていますか…? ゲームのセーブポイントみたいにセーブできるの面白いですよね。
ただ、add、commit、push、status、log、時たまreset しか使ってないってことありませんか…?
私はそうでした。とりあえず巻き戻したい時、意味を考えずにgit reset --hard
。一部ファイルをaddし忘れたままcommitした時は、そのファイルを再度addして同じコミットメッセージで再度コミット。機能的に意味があるほどのキリの良くはないけど、(別のブランチに移りたいので)一旦コミットしたいけど、コミットlogには残したくない、でもやり方がわからないから一旦「コミット」。コミットした時は良いものの、後から見直すとなんのこんちゃわからない、、そんなことばっかりでした。
Gitには、上記の時にピッタリなコマンドがありそうなことはわかってはいるものの、わざわざ調べるのも、コマンド覚えるのもめんどくさい、、!そんな超絶めんどくさがりやな私でも「これは知ってよかった…!」「神様仏様Git様」と拝みたくなった(大袈裟)コマンドをまとめます!めんどくさがり屋なので、数は少ないですが、きっと覚えて損はないはず…!
最終更新 : 2022年12月26日 随時更新!
おすすめコマンド3選!(もっと増えるかも!)
git commit –amend
コミットした後にaddし忘れたファイルを見つけた、うっかりエンターキー押してコミットしちゃったけれど、コミットメッセージを書き直したい。。そんな時にお勧めしたいのがこの、git commit --amend
!
最新のコミットのみという制限はありますが、かなり便利です…! 使い方のイメージとしては、以下のような感じです。
git commit -m ‘Initial commit’
git公式サイトより
git add forgotten_file
git commit –amend
–no-edit というオプションを追加すると、コミットメッセージ編集用のエディターが立ち上がらずに修正できます。ファイルをaddし忘れた!なんて時に重宝です。
シンプルだけどまじで便利なので全人類使ってください。
git cherry-pick
このブランチのこのコミットだけ取り込みたい!そんな時ありますよね、、!そんな時にお勧めしたいのが、git cherry-pick
!
git cherry-pick [コミットのハッシュ]
コミットのハッシュは、git log を打つと出てくる [commit: 英数字ほにゃらら] の部分です。桁数めちゃくちゃ多いですが、リポジトリに保管してるたくさんのコミットから変更をコピーしたいコミットが特定できればOKなので、最初の5-6桁くらいでokだと思います。
git stash
冒頭にも書いた「機能的に意味があるほどのキリの良くはないけど、(別のブランチに移りたいので)一旦コミットしたいけど、コミットlogには残したくない、」そんな時に使えるコマンドがこのgit stash
!
stash は英単語的には「隠す、しまう」の意味がありますが(英辞郎より)、git stashも同じです!一時的に変更を隠すことができます!
変更を作業ファイルに戻したい時は、まずgit stash list
で一時的に隠している変更リストを確認します。
stash@{0}: WIP on main: c366edf first commit
stash@{1}: WIP on main: c366edf first commit
こんな感じででてきます。stash@{n} が一回分のstashで、stash@{0}が直近のstashです。これは、git stashをした回数分だけ出てきます。
WIP on [stashした時のブランチ]: [stashする前の直近コミットのハッシュ] [直前のコミットメッセージ]
戻したい変更を決めたらgit stash apply stash@{(戻したい変更の番号)}
を押すと、そのブランチにstashした変更が戻ってきます。
ただ、stashした変更は残っているので、git stash drop
で直近のstashした変更を、変更リスト(git stash list
で出てくるリスト)から削除することができます。リストから削除する変更を指定したい場合は、git stash drop stash@{n}
で削除できます。
ただこのgit stashですが、それだけだとstashする前のコミットメッセージが表示されてしまったり、untarckedなファイル(まだコミットしていないファイル)は、stashされません。特にすぐ変更を戻す場合はいいのですが、しばらく別の作業をしてから戻したいとなった時は悲惨です、。うっかりstashを削除しちゃうかもしれません。そんな悲劇を防ぎたいあなたにおすすめなのが以下のオプションです!
git stash save ‘メッセージ’
コミットメッセージのようにstashした時のメッセージを残せます!
オプション : -u
untrackedなファイルもstashする内容に含めることができます!
git stash save -u <メッセージ>
こんな感じで使えます!
ということで、個人的に感動したGitコマンドをまとめてみました。ただ、まだまだ初学者のため理解が浅い部分もあるかと思います。もし、ここは少し違うなぁなどご指摘等ありましたら、Twitterにて教えていただきたいです!よろしくお願いします。それでは、また次の記事で!
参考
今回参考にさせていただいた書籍・WEBページです!
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgwJTkwZ2l0JTIwc3Rhc2glRTMlODAlOTElRTMlODIlQjMlRTMlODMlOUYlRTMlODMlODMlRTMlODMlODglRTMlODElQUYlRTMlODElOUIlRTMlODElOUElRTMlODElQUIlRTUlQTQlODklRTYlOUIlQjQlRTMlODIlOTIlRTklODAlODAlRTklODElQkYlRTMlODElOTclRTMlODElOUYlRTMlODElODQlRTMlODElQTglRTMlODElOEQmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWVkMjQ0ZTQ0OTg3NTA3MDg5ZTNkZTI2YjdkYTA0ZDYx&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBjaGloaXJvJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz05OWVjZmVhMDZkNjkwYmQ1OTZiZTczOWVlYzI2Y2FjOA&blend-x=142&blend-y=436&blend-mode=normal&txt64=aW4g44Oq44Kz44O8SVTjgr3jg6rjg6Xjg7zjgrfjg6fjg7PjgrrmoKrlvI_kvJrnpL4&txt-width=770&txt-clip=end%2Cellipsis&txt-color=%23212121&txt-font=Hiragino%20Sans%20W6&txt-size=36&txt-x=156&txt-y=536&s=deb03487a10d1f98c5a1d4cc9ecb1b05)
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9Z2l0JUUzJTgxJUE3JUU2JTlDJUFBJUU4JUJGJUJEJUU4JUI3JUExJUVGJUJDJTg4dW50cmFja2VkJTI5JUUzJTgxJUFBJUUzJTgzJTk1JUUzJTgyJUExJUUzJTgyJUE0JUUzJTgzJUFCJUUzJTgyJTgyJUUzJTgxJUJFJUUzJTgxJUE4JUUzJTgyJTgxJUUzJTgxJUE2JUU5JTgwJTgwJUU5JTgxJUJGJTI4c3Rhc2glMjklRTMlODElOTklRTMlODIlOEImdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPTY5OTE2NDI0ODM3ZGU5OWI4Mjg4YWRkMDdlYzgwNDVk&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBtdXJhbjAwMSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZmYxNzljZWI0ZmI5ODZhMTI2ZmYzMmRiOTI1ZmUwM2U&blend-x=142&blend-y=486&blend-mode=normal&s=ec882be9b1eae31c75d649c924f43288)
![](https://backlog.com/ja/git-tutorial/site_image.png)
コメント