見出し画像

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は最新のコミットから一つ前のコミットを指します。


#github #git

この記事が気に入ったらサポートをしてみませんか?