0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Git奮闘録

Last updated at Posted at 2022-08-04

概要

Gitを使った行き詰った問題や、その解決できた参考サイトをまとめた、Git初心者の備忘録。
基本自分の記録用に書いているので、自分の起こった出来事→その解決法という形式で記述する。
Git初心者が書いています。説明等に間違い・誤解を招く表現があると予想されます。正確な仕様・詳しい解説は各自調べてください。何かしらの被害が出てもおあしす としか言えません。

Electronでnode_modulesをcommitしてしまった

発生した問題

electronアプリを作成し、GitにPushしようとしたとき、node_modulesの中にあったelectorn.exeのサイズが100MBを超えており、pushできなかった。
Gitでpushする際、100MB以上のファイルをアップロードできない。これを解消するため、node_modulesをGitの管理から外し、すべてのcommitから削除する必要があった。
↓と同じ問題。
https://teratail.com/questions/225579

解決とその参考サイト

Gitの管理から外す

.gitignoreを作成し、node_modulesをGitの管理から外す

【参考】
.gitignoreを後から設定し、git管理から除外する方法
git rm で管理対象から外す。
【参考】
【Git】git rm --cached [ファイル名]:ファイルを管理対象から除外する

すべてのcommit履歴から削除

git filter-branchを使用

git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch node_modules" --prune-empty -- --all 

【参考】
git最強のオプション filter-branch
git filter-branchで過去の全てのcommitから画像ファイルの追加/変更をなかったことにしてリポジトリを軽量化する

git-rebase
最初のコミット以外全部消えた!と勘違いしたり(多分rebaseの途中)ととても疲れた。

git rebase -i 初期コミットのハッシュ

【参考】
7. rebaseでマージする|サル先生のGit入門【プロジェクト管理ツールBacklog】
初心者がgit rebase使って格闘した記録
Git 間違って rebase しちゃったのを元に戻したい
git のコミット履歴をすべて消す(現時点の状態の1コミットだけにする)

教訓

生成される画像ファイルや、node_modules等バックアップ対象外のファイル・フォルダはあらかじめ.gitignoreで除外する。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?