Gitコマンド
githubとか操作していて、たまに間違ってやらかしてしまうことがありますよね。そんな時に焦らずにできるようにメモ
(1)Githubに既にpushしたものをgitignoreしたい場合
(1) gitignoreしたいファイルを追加
echo "test.txt" >> .gitignore
(2) ローカルに残しつつgit管理から除外
it rm --cached test.txt
(3) コミット & push
git add .
git commit -m "test ignore"
git push
解説
git rm -r --cached test.txt
このコマンドは、Gitのインデックス(ステージングエリア)からすべての
ファイルとディレクトリを再帰的に削除し、
それらの変更をインデックスから取り消します。--cachedオプションは、ファイルやディレクトリを
実際のワーキングディレクトリから削除するのではなく、Gitのトラッキングから削除することを指示します。
ただし、実際のファイルやディレクトリは削除されません
(2) リモートのmainブランチに間違ってそのままpushしてしまったことをなかったことにする
(1) コミットしたものを一個前に戻す
git reset --hard HEAD~1
(2) 間違ってpushしたことをなかったことにする
git push --force
解説
git reset: Gitの履歴を変更するコマンドの一つです。resetコマンドを使用すると
、特定のコミットへの移動やリセットが可能です。
--hard: --hardオプションは、リセットする際にワーキングディレクトリとインデックス(ステージングエリア)を
リセットすることを指定します。 ※もしローカルで何か作業していたものもなくなる
HEAD~1: HEADは現在のブランチの最新のコミットを指します。~1は直前のコミットを表します。
つまり、直前のコミットを参照します。HEAD~1は最新のコミットから一つ前のコミットを指します。
(3)リモートのmainブランチに間違ったブランチをmergeしてしまった
※作業としては、(2)と同じです!
(1) コミットしたものを一個前に戻す
git reset --hard HEAD~1
(2) 間違ってpushしたことをなかったことにする
git push --force
解説
git reset: Gitの履歴を変更するコマンドの一つです。resetコマンドを使用すると
、特定のコミットへの移動やリセットが可能です。
--hard: --hardオプションは、リセットする際にワーキングディレクトリとインデックス(ステージングエリア)を
リセットすることを指定します。 ※もしローカルで何か作業していたものもなくなる
HEAD~1: HEADは現在のブランチの最新のコミットを指します。~1は直前のコミットを表します。
つまり、直前のコミットを参照します。HEAD~1は最新のコミットから一つ前のコミットを指します。
この記事が気に入ったらサポートをしてみませんか?