Initialisation
git remote add upstream git@salsa.debian.org….
git config –global –add user.name “Roland Clobus”
git config –global –add user.email “rclobus@rclobus.nl”
Protected branch (as e.g. for openQA)
git checkout debian
git pull upstream debian
# do stuff
git commit
git push upstream debian
Git-lfs and forks
After forking openqa-tests-debian, the LFS part was not cloned. Stackoverflow found a solution:
<Begin quote>
https://stackoverflow.com/questions/55359067/what-is-the-workflow-for-git-lfs-with-forks
git clone <address of your fork>
- Cloning the fork repo for the very first time – it does not have any LFS files copied yet, so you must clone it without the LFS files (otherwise cloning would fail)
export GIT_LFS_SKIP_SMUDGE=y
git clone <address of your fork>
- Synchronizing upstream -> fork (copying LFS files to your fork) – initially and each time you git fetch the upstream
git lfs fetch --all <upstream>
git lfs push --all <fork>
- Synchronizing fork -> upstream (only the current branch) – each time after your PR got merged
git lfs fetch <fork>
git lfs push <upstream>
<End quote>
Beautification of local history
git commit –amend –no-edit –author “Roland Clobus <rclobus@rclobus.nl>”
git commit –amend –no-edit –date “$(date)”
Cleanup
Branch cleanup: https://stackoverflow.com/questions/6127328/how-do-i-delete-all-git-branches-which-have-been-merged
git branch --merged
git branch -d merged_branch_name
Time travel
Go back in time to checkout a specific timestamp: https://stackoverflow.com/questions/6990484/how-to-checkout-in-git-by-date
git checkout `git rev-list -n 1 --first-parent --before="2022-06-01 00:00Z" upstream/debian`