MyEnigma

とあるエンジニアのブログです。#Robotics #Programing #C++ #Python #MATLAB #Vim #Mathematics #Book #Movie #Traveling #Mac #iPhone

困った時の逆引きGitメモ(コマンドライン編)

目次

はじめに

Gitを使う時に

毎回ググっていることが多いので、

メモとして残しておきます。

 

GitやGitHubの基本的な使い方に関しては、

下記を参照ください。

myenigma.hatenablog.com

 

JetBrains IDEによるGitの使い方は、

下記を参照ください。

myenigma.hatenablog.com

 

コミットメッセージにdiffを表示する

$ git commit -v

変更自動検出を組み合わせると、

$ git commit -av

 

前回コミットした時の状態に戻す

$ git reset --hard HEAD

前回のコミットからすべてなかったコトになるので注意が必要です

 

直前のコミットをなかったコトにする

$ git reset --hard HEAD^

上記だとファイルもコミット前に戻りますが、

$ git reset --soft HEAD^

だとコミットだけがなかったことになり、

ローカルのファイルはそのままになります。

 

直前のpushをなかったことにしたい。

下記の記事の通り、2つの方法があります。

www-creators.com

履歴を残さない

$ git reset --hard HEAD^

$ git push -f origin master

履歴を残す(より安全)

revertで直前のコミットを打ち消すコミットをします。

$ git revert HEAD

$ git push -f origin master

無理やりリモートリポジトリにローカルを合わせる

なんか変なことしてパニックになった時に使います。

$ git fetch origin

$ git reset --hard origin/master

 

間違えたgitのaddを取り消す

間違ってgit addしちゃうことは多いですが、

そんな時は、

$ git reset HEAD hote.txt

でaddを取り消すことができます。

qiita.com

 

一つ前のコミットを修正

コミットしてみたが、

コミットメッセージを変えたくなったり、

ファイルをaddし忘れた時などは、

下記のコマンドを使います

$ git commit --amend

上記のコマンドを使うと、

一つ前のコミットと今回のコミットを一緒にしてくれます。

 

また、

$ git commit --amend "New commit message"

で一つ前のコミットメッセージを修正できます。

 

git pullした時にコンフリクトしたファイルを調べる

$ git ls-files -u [path]

同じように

git statusをした時に、

Unmerged paths:に書かれているファイルも

コンフリクトしているので、

そちらで確認する方法もあります。

 

更新されたファイルの一覧を表示する

$ git ls-files -m

 

ブランチのグラフを見たい

$ git log --graph

 

gitで管理していないファイルやディレクトリをすべて削除する。(gitinore対象のファイルも含めて)

$ git clean -xdf

 

過去のコミットを分割したい

$ git rebase -i

で可能です。

ken-c-lo.hatenadiary.org

 

JetBrainsのIDEで実施する場合は下記の記事を参照ください。

myenigma.hatenablog.com

 

別のブランチのあるコミットだけをmergeしたい

別のブランチのあるコミット(その前のコミットは不要)だけをmergeしたい場合は、

cherry-pickを利用します。

www.sejuku.net

 

参考資料

medium.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

myenigma.hatenablog.com

MyEnigma Supporters

もしこの記事が参考になり、

ブログをサポートしたいと思われた方は、

こちらからよろしくお願いします。

myenigma.hatenablog.com