20200925のGitに関する記事は4件です。

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用語集

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

リポジトリを分割した後にfatal: bad revision 'HEAD' と表示されたら

リポジトリを分割した後にfatal: bad revision 'HEAD' と表示されたら

解決方法

branch checkout master

でブランチを切り替えるとなる。

自分用のメモ。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【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】作業ブランチを間違えた場合(変更内容を違うブランチへ持っていく方法)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Commitizenを使ってもうコミットメッセージに迷わない

はじめに

gitのコミットメッセージをどう表現するかで迷うことが多々あります。
チームによってざっくりと指針が決まっているものの、明確ではない場合も多いのではないでしょうか?
私自身fix: chore: feat:などの接頭辞を使って書くことが多いですが、それぞれの接頭辞の意味を毎回ググっている気がします。特に chore:...
そんな悩みを Commitizenを使って解決したのでその備忘録として記します。

対象

もう実装は終わっているのに。。。なぜコミットするだけなのに。。。ここでこんなに時間を使わないといけないの。。。といった悩みを持っている方。

Commitizenとは?

CLIを使って対話的にコミットメッセージを作ることができます。
コミットメッセージのルールは angular.jsのコミットガイドラインが元になっているそうです。

コミットメッセージのフォーマット

コミットメッセージのフォーマットは以下のようになっています

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

対話の内容

はじめにcommit typeが聞かれます
スクリーンショット 2020-09-25 0.33.30.png

その後はcommitに対しての質問をされます
スクリーンショット 2020-09-25 0.41.01.png

一つ一つ答えていくと

スクリーンショット 2020-09-25 0.41.18.png

こんな感じのコミットメッセージが出来上がります。

インストール

ローカルにインストールすることもできますが、今回はグローバルにインストールします。

$ 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

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む