Nov. 30, 2025
What I Learned Sensitive information (API keys, private keys, configuration files, etc.) that has been accidentally committed continues to remain in Git’s history even with normal deletion. By using git filter-repo, you can rewrite Git history and completely remove sensitive information. However, removing from history does not make already leaked credentials safe, so you must always revoke and reissue the relevant credentials.
Details Background Previously, methods using git filter-branch were introduced, but warnings are now issued in the official documentation, and when creating new procedures, the use of git filter-repo is recommended.
Nov. 28, 2025
What I Learned I organized a workflow for using Git solely locally, without using remotes like GitHub, aimed at Git beginners and individual developers. Since Git inherently keeps all history locally, understanding local Git before learning about remotes makes it easier to handle and less confusing. Backups (pseudo-remote/mirror) are possible even within local environments.
Details Benefits of Using Git Locally Only Fewer concepts to learn, easier to study No risk of bothering others Can focus on Git’s essence (managing change history) 1.
Nov. 27, 2025
What I Learned I usually develop on a Mac, but recently I’ve had more opportunities to teach development to Windows users. So I organized the procedure for setting up a development environment on Windows. With the combination of WSL2 + Ubuntu + Git + VS Code, you can build a comfortable Linux development environment on Windows similar to Mac. It’s lighter than virtual machines and file sharing with Windows is smooth.
Nov. 19, 2025
What I Learned I learned how to remove unwanted file changes from a specific commit in a Pull Request. By combining git rebase -i and git commit --amend, you can pinpoint and modify past commits while keeping the history clean.
Details The Problem When creating a PR and checking the diff, I found that a certain commit had unintentionally changed a file:
D example/config.yaml (deleted) It’s common to accidentally include unrelated changes such as configuration files or documentation in commits.
Nov. 5, 2025
What I Learned Git’s interactive rebase (git rebase -i) is a powerful tool for cleaning up commit history before pushing changes. It allows you to reorder, squash, edit, or remove commits.
Details Interactive rebase opens an editor with a list of commits and commands:
1git rebase -i HEAD~3 Available commands:
pick - use commit as-is reword - change commit message edit - stop for amending squash - combine with previous commit fixup - like squash but discard commit message drop - remove commit Example workflow: