Git 備忘録

リモートのpushを取り消す

リモートのpushを取り消す方法は下記方法がある

  • git reset
  • git revert

git revert

# 直前のコミットのみを打ち消す場合
$ git revert HEAD

# pushするだけでOK
$ git push origin master
#複数のコミットを取り消す場合(4つ)
$ git revert HEAD~3
$ git push origin master
#特定のコミットのみを取り消す場合
# git logコマンドでコミットidを調べる
$ git log
$ git revert <commit id>
$ git push origin master
挙動確認用

リベート前
https://github.com/yukiotakakura/laravel9-posgre-line-app/commit/463298d55c371b704c7af4dffd2332de02fa1ef4

リベート後
https://github.com/yukiotakakura/laravel9-posgre-line-app/commit/b082d632fd84b16be69d0b78ce101877f6fb80ca

ローカルで作業していた内容は消える?ローカルの作業を保持しつつ、リモートpushを取り消したい場合は別途対応が必要

ローカル上で色々作業したが、すべて無かったことにしたい時

概要
ローカル上で色々作業したが、すべて無かったことにしたい
(ローカル上の状態を現在居るブランチの前回プル時 or 前回コミット時と同じ状態に戻したい)

手順

git checkout .

sourcetreeの場合は、ブランチを選択➜コミット部分を右クリック➜チャックアウトを実行する

上記コマンドだけでは、新規作成したファイルは削除されない為、下記コマンドを実行して、新規作成したファイルを削除する

# -dfオプションで再帰的に新規作成したファイルの削除を行う
git clean -df
【結果】
Removing src/app/Actions/
Removing src/app/Events/
・
・
・

参考
Git 操作の取り消し・元に戻す手順

.gitignoreを後から追加してgit管理から除外する

手順

.gitignoreを作成しコミット&Pushを行う

# 下記ディレクトリをgit管理下から除外する
# containers/postgres/data
# containers/postgres/logs
/data
/logs

ignoreしたいディレクトリをgit rm –cachedする

% git rm --cached -r containers/postgres/data
% git rm --cached -r containers/postgres/logs

・
・
・
rm 'containers/postgres/data/postgresql.conf'
rm 'containers/postgres/data/postmaster.opts'
rm 'containers/postgres/data/postmaster.pid'

上記コマンドを実行後は、コミット&Pushすれば完了
もしgit rm –cachedを取り消したい場合は、下記を実行する

git reset HEAD [ファイル名 or ディレクトリ名]

参考
.gitignoreを途中から設置したときにやること
gitignoreを後から追加してgit管理から除外する方法

コメント

タイトルとURLをコピーしました