From 80ccf68f55dbb70d7e5ed52ee95b3c9d1b6ce264 Mon Sep 17 00:00:00 2001 From: Jasper Ras Date: Thu, 20 Mar 2025 11:07:49 +0100 Subject: vault backup: 2025-03-20 11:07:48 --- 3 Resources/Git/Edit existing commits.md | 22 ++++++++++++++++++++++ 3 Resources/Git/Find files in history.md | 17 +++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 3 Resources/Git/Edit existing commits.md create mode 100644 3 Resources/Git/Find files in history.md (limited to '3 Resources/Git') diff --git a/3 Resources/Git/Edit existing commits.md b/3 Resources/Git/Edit existing commits.md new file mode 100644 index 0000000..9832ee5 --- /dev/null +++ b/3 Resources/Git/Edit existing commits.md @@ -0,0 +1,22 @@ +--- +tags: + - git +--- +I've found a nice and easy way to edit existing commits. Before I used the following "tedious" process. +``` +git stash # Git rebase wants a clean working tree +git rebase -i +... in the interactive editor, find the commit to edit, and mark it to edit ... +... write & quit ... +git stash pop # Optional. Only if you've already made the changes on HEAD. +git commit --amend +git rebase --continue +``` + +Now we can do something much easier using a so called "fixup commit". + +``` +git commit --fixup= +git rebase -i --autosquash +... write & quit +``` \ No newline at end of file diff --git a/3 Resources/Git/Find files in history.md b/3 Resources/Git/Find files in history.md new file mode 100644 index 0000000..d5592fe --- /dev/null +++ b/3 Resources/Git/Find files in history.md @@ -0,0 +1,17 @@ +--- +tags: + - git +references: + - https://stackoverflow.com/questions/7203515/how-to-find-a-deleted-file-in-the-project-commit-history +--- +Find a (deleted) file in all commits. +`g lg --all --full-history -- "**/shell.nix"` +or more generally +`g lg --all --full-history -- ` +then using the SHA +`g show -- ` + +**Epic bonus** +Restore the file: +`g checkout ^ -- ` +the caret (`^`) references one commit before sha, because in sha it is deleted. \ No newline at end of file -- cgit v1.2.3