- 投稿日:2020-09-25T21:54:35+09:00
Gitを使っていて起きる様々な『取り消したい!!』
●Gitを使っていて起きる様々な『取り消したい!!』
Gitを使っていると、時々、「今のコミット取り消したい!」みたいなことが起きたので、メモがてらまとめておきます。
今後他の方法なども書き加えて行けたらとも思っています!①ファイルへの変更をターミナルから取り消す(※git add前)
※ファイルに色々変更を加えたけど、まっさらな状態に戻したい!という時に使う
ターミナル~$ git checkout -- <ファイル名> ~$ git checkout -- <ディレクトリ名>ターミナル#全ての変更の取り消し ~$ git checkout -- .②ステージに追加した変更を元に戻したいとき(※git add後/git commit前)
うっかりgit addしたけど戻したい時
ターミナル~$ git reset HEAD <ファイル名> ~$ git reset HEAD <ディレクトリ名>ターミナル#全ての変更を取り消す(指定した変更をステージから取り消すだけなので、ワークツリーのファイルには影響はない) ~$ git reset HEAD .【裏側で起きている動作の説明】
ワークツリーからgit addでステージに加えられた変更を、
ローカルリポジトリに現在ある最新の(直前の)コミットから情報を持ってきて上書きしている。
つまり、HEADというのがその上書きするために用いられる、リポジトリの最新のコミットの内容を示していて、
それを使ってreset(上書き)するよ!ということ※git addによる変更を取り消しただけなので、ファイルには書き直したい?内容は残ったままになる。
③直前のコミットをやり直す(git commit後/git push前)
※リモートリポジトリにpushしたコミットはやり直してはだめ!!!
複数人で開発をしていた場合、他の人のリポジトリの状態とリモートリポジトリの内容が異なり取り込めないと言ったことが発生するためターミナル~$git commit --amend今のステージの状態を元に直前のコミットをやり直す(git addでやり直したい内容をステージに追加 → git commit --amendで直前のものを修正)
おまけ
今回の取り消し作業とは関係ないのですが、Git GitHub用語に関してイラスト付きでイメージしやすい説明をされてるサイトがあったので、Git初めてでよくわからないよーという方は見てみてください。
【イラストで覚える】初心者のためのGitとGitHub用語集
- 投稿日:2020-09-25T10:44:30+09:00
リポジトリを分割した後にfatal: bad revision 'HEAD' と表示されたら
- 投稿日:2020-09-25T10:26:24+09:00
【git】リモートブランチをローカルブランチにcheckoutするコマンド
はじめに
チーム開発をおこなっているとリモートにあるブランチをローカルに持ってきて開発したい時があると思います。
その方法を備忘録として書きました。リモートブランチをローカルブランチにcheckoutする方法
まず最新のリモートブランチを情報をローカルに反映させるために、fetchを行います。
ターミナル$ git fetchリモートを含め、全てのブランチを確認。
ターミナル$ git branch -a * develop // 現在のブランチ remotes/origin/HEAD -> origin/develop // remotesがあるものはリモートブランチ remotes/origin/develop remotes/origin/feature/create_user remotes/origin/feature/update_user remotes/origin/feature/delete_userそして、リモートブランチをローカルにcheckoutすると、リモートブランチの情報をローカルに作成することができます。
ターミナル$ git checkout -b ブランチ名 origin/ブランチ名 // ex) remotes/origin/feature/create_userを作成したい場合のコマンドは下記の通りです。 $ git checkout -b feature/create_user origin/feature/create_user終わりに
その他にもGitに関する記事を書いていますので良かったら見てみてください。
gitの使い方(git init 〜git push)
gitのブランチ作成〜リモートへの登録(git checkout ~ git push -u origin)
【git】ブランチ名の変更方法(ローカル、リモート)
【git】作業ブランチを間違えた場合(変更内容を違うブランチへ持っていく方法)
- 投稿日:2020-09-25T00:50:07+09:00
Commitizenを使ってもうコミットメッセージに迷わない
はじめに
gitのコミットメッセージをどう表現するかで迷うことが多々あります。
チームによってざっくりと指針が決まっているものの、明確ではない場合も多いのではないでしょうか?
私自身fix:
chore:
feat:
などの接頭辞を使って書くことが多いですが、それぞれの接頭辞の意味を毎回ググっている気がします。特にchore:
...
そんな悩みを Commitizenを使って解決したのでその備忘録として記します。対象
もう実装は終わっているのに。。。なぜコミットするだけなのに。。。ここでこんなに時間を使わないといけないの。。。といった悩みを持っている方。
Commitizenとは?
CLIを使って対話的にコミットメッセージを作ることができます。
コミットメッセージのルールはangular.js
のコミットガイドラインが元になっているそうです。コミットメッセージのフォーマット
コミットメッセージのフォーマットは以下のようになっています
<type>(<scope>): <subject> <BLANK LINE> <body> <BLANK LINE> <footer>対話の内容
一つ一つ答えていくと
こんな感じのコミットメッセージが出来上がります。
インストール
ローカルにインストールすることもできますが、今回はグローバルにインストールします。
$ npm install commitizen -g $ npm install -g cz-conventional-changelog $ echo '{ "path": "cz-conventional-changelog" }' > ~/.czrc $ exec $SHELL -l以上のコマンドで簡単にインストールでき、
$ git czこのコマンドでcommitzenがスタートします。
日本語化
日本語化もできるそうなのでお好みで設定してみてください。
https://www.npmjs.com/package/cz-conventional-changelog-ja