124 lines
2.3 KiB
Markdown
124 lines
2.3 KiB
Markdown
# Git Commands
|
|
|
|
You can also review [Oh Shit, Git!?!](https://ohshitgit.com/), for some good solutions to comon git problems.
|
|
|
|
## Random Ideas
|
|
|
|
[Kart: DVC for geospatial and tabular data. Git for GIS](https://kartproject.org/), [Discussion](https://news.ycombinator.com/item?id=38073512#git), [Go to Post from 2023-10-30T20:40:06](https://social.lansky.name/@hn50/111325898767760054)
|
|
|
|
[Use KeePassXC to sign your Git commits](https://code.mendhak.com/keepassxc-sign-git-commit-with-ssh/)
|
|
|
|
## Git Commands and Examples
|
|
|
|
Create a new branch locally within an already cloned repository:
|
|
|
|
```bash
|
|
git checkout -b <branch-name>
|
|
```
|
|
|
|
Delete a local branch:
|
|
|
|
```bash
|
|
git branch -d <branch-name>
|
|
```
|
|
|
|
Rebase onto the main branch:
|
|
|
|
```bash
|
|
git fetch
|
|
git rebase origin/main
|
|
git push origin HEAD -f
|
|
```
|
|
|
|
Abort a rebase:
|
|
|
|
```bash
|
|
git rebase --abort
|
|
```
|
|
|
|
Stash changes:
|
|
|
|
```bash
|
|
git stash
|
|
git stash pop
|
|
```
|
|
|
|
Revert a commit:
|
|
|
|
```bash
|
|
# Should work if only 1 commit was made
|
|
git reset --soft HEAD~1
|
|
|
|
# More forceful approach:
|
|
git revert cb7cf15b54ff09495201244b070d18d96d4703ce
|
|
git reset --hard HEAD~2
|
|
```
|
|
|
|
Show changes between two tags:
|
|
|
|
```bash
|
|
# Tag from previous version
|
|
git tag -a v0.1.0 -m "Release version 0.1.0"
|
|
|
|
# Add changes
|
|
git commit -am "add hint for change log"
|
|
# and more
|
|
|
|
# Add final tag for version
|
|
git tag -a v0.2.0 -m "Release version 0.2.0"
|
|
|
|
# Show diff between tags
|
|
git log v0.1.0..v0.2.0 --no-merges --format="%h - %s" --date=short
|
|
```
|
|
|
|
Git diff log between commits:
|
|
|
|
```bash
|
|
git log 79e28d9cef4cc777afc9e5b2569a5d34d9331867..6888fd61ae9d5744effcf27620a645e1750cbafc --no-merges --format="%h - %s (%an, %ad)" --date=short
|
|
```
|
|
|
|
Debug SSH connection via Git:
|
|
|
|
```bash
|
|
GIT_SSH_COMMAND="ssh -v"
|
|
git pull
|
|
unset GIT_SSH_COMMAND
|
|
```
|
|
|
|
Add executable flag on Windows:
|
|
|
|
```bash
|
|
git update-index --chmod=+x git_mirror.sh
|
|
```
|
|
|
|
Check the remote branch of a cloned repository and change it:
|
|
|
|
```bash
|
|
git remote -v
|
|
|
|
git remote set-url origin xwr@vs-ssh.visualstudio.com:v3/xwr/jambor.pro/app-docker-compose
|
|
|
|
git remote -v
|
|
|
|
for branch in $(git branch -r | grep -v '\->'); do
|
|
git checkout ${branch#origin/}
|
|
git push -u origin HEAD
|
|
git push --tags origin
|
|
done
|
|
```
|
|
|
|
Renaming branches:
|
|
|
|
```bash
|
|
# Delete remote branch
|
|
git push origin --delete wikiMaster
|
|
|
|
# Delete local branch
|
|
git branch -d wikiMaster
|
|
|
|
# Move branch
|
|
git branch -m main wikiMaster
|
|
|
|
# Push
|
|
git push origin HEAD
|
|
```
|