新着記事一覧
タグ一覧
テーマ
ライト
ダーク
iPentec.com
/
Doc
/
Git
目次
1
概要
2
事前準備
3
手順
Gitのリモートリポジトリへのファイル追加などのプッシュを無かったことにしたい - Git
Gitのリモートリポジトリへのファイル追加などのプッシュを無かったことにしたい場合の手順について紹介します。
概要
リモートのリポジトリに不要なファイルをプッシュしてリモートリポジトリに不要なファイルを追加してしまった場合に、後からファイルの削除のプッシュではなく、ファイルの追加そのもののプッシュを無かったことにしたい場合があります。この記事では、Gitのリモートリポジトリへのファイル追加などのプッシュを無かったことにする手順を紹介します。
事前準備
ファイル追加する直前のリポジトリのコミットIDを調べます。間違いをやらかしてしまったコミットIDではなく、その一つ手前のコミットIDです。今回の場合IDは"3ea4d6d4"でした。
手順
"hard"をパラメータに付与するため、作業ディレクトリが前の状態に戻されてしまうため、ローカルのリポジトリのディレクトリをコピーしてバックアップを取ります。
その後、Gitコマンドプロンプトでリポジトリのディレクトリにカレントディレクトリを移します。
リポジトリのディレクトリで下記のコマンドを実行します。
git reset --hard (コミットID)
今回の場合
git reset --hard 3ea4d6d4
コマンドを実行します。
HEADが3ea4d6d4の状態に戻ります。
git push -f
コマンドを実行して、HEADが3ea4d6d4の状態をプッシュします。
プッシュ完了です。
バックアップしてあるローカルリポジトリから、変更のあったファイルをローカルリポジトリに移動して上書きします。上書き後、ローカルリポジトリへのコミット、リモートリポジトリへの同期を実行して、誤った変更以外の変更をリポジトリに反映します。
以上で作業は完了です。
補足
この記事で紹介した、git reset コマンドはreset処理を取り消すことはできないことと、他の開発者が作業を始めている可能性があるため、 リスクの高い方法です。一般的には、git revert を利用して履歴を残しつつ過去の状態に戻す方法を利用します。 git revert の利用については
こちらの記事
(gitリポジトリのロールバック)を参照してください。
著者
Penta
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
関連するページ
Gitリポジトリで過去のコミットのコミッター(Commit)やオーサー(Author)を変更する
TortoiseGit のインストール
Gitリポジトリのプルリクエストを作成する
Git for Windows のgitconfigファイルのインストール場所と初期値について
msysGit (Version 1.7.4 Preview)のインストール
Visual StudioでリモートGitリポジトリの複製をローカルに作成する (リポジトリのクローン)
Git でのタグの追加
Pythonのプログラム実行時に GitCommandNotFound: Cmd('git') not found due to: エラーが発生する
掲載日: 2017-11-30
ドキュメント
新着記事一覧
タグ一覧
ドキュメント トップ
SNSコンテンツ
YouTube
Instagram
Pinterest
X
iPentec
プライバシー
iPentecについて
iPentec all rights reserverd.