git管理対象だけど、間違って更新してしまった時は・・・・
PRを出してレビューを受けている際に、「不要なファイル・改修がpushされてます。」みたいな感じで気がつくあるあるネタ。手元でデバッグ用にコードを少し修正してたのを忘れてそのままgit add .
してたりするときに発生。git管理が不要なファイルをpushしてしまった時はgit rm
コマンドを利用すればいいが、git管理対象だけど、間違って更新してしまった時は・・・・
やらかしやすい例
try.rb
# このファイルだけ修正してpushしたい
class Try
def index
Test.new.calc(5)
end
end
test.rb
# 修正ファイルから呼ばれる関数の中身を知りたくて標準出力を入れた。
class Test
def calc(y)
x = y + 1
p "x" # こんな感じでデバッグ用に値を標準出力するようにしてたとする
end
end
terminal
git add .
# ↑まとめてaddしているため try.rb と test.rb の2ファイルがaddされてしまう
git commit
git push
test.rbのpushをなかったことにしたい・・・ そんな時は・・
誤って更新したファイルを、戻したいコミットの状態にして再度pushすればOK
terminal
# まずはコミットログを確認
git log
# git checkout [戻したいコミットid] [対象ファイル名]
git checkout xxxxxx test.rb
# git add [対象ファイル名]
git add test.rb
git commit
git push origin [ブランチ名]
もちろん、普通に不要な改修を手で修正して元に戻すこともできますが、
コミットで戻してあげた方が安心です。
また、これ系でやらかしてしまう場合は、git add .
する前にgit status
で変更を確認して、ファイル単位でaddかまとめてaddして問題ないのかを確認すると良い。