Git CLI hints: Difference between revisions
m (→References) |
m (Стадий: 4 [Фаза:Авторизиране, Статус:Разработен]; Категория:DevOps and SRE) |
||
Line 117: | Line 117: | ||
{{devStage | {{devStage | ||
| Прндл = DevOps and SRE | | Прндл = DevOps and SRE | ||
| Стадий = | | Стадий = 4 | ||
| Фаза = | | Фаза = Авторизиране | ||
| Статус = | | Статус = Разработен | ||
| ИдтПт = Spas | | ИдтПт = Spas | ||
| РзбПт = | | РзбПт = Spas | ||
| АвтПт = | | АвтПт = {{REVISIONUSER}} | ||
| УтвПт = Spas | | УтвПт = Spas | ||
| ИдтДт = 5.07.2022 | | ИдтДт = 5.07.2022 | ||
| РзбДт = | | РзбДт = 3.03.2023 | ||
| АвтДт = | | АвтДт = {{Today}} | ||
| УтвДт = 13.01.2023 | | УтвДт = 13.01.2023 | ||
| ИдтРв = [[Special:Permalink/27692|27692]] | | ИдтРв = [[Special:Permalink/27692|27692]] | ||
| РзбРв = | | РзбРв = [[Special:Permalink/32337|32337]] | ||
| АвтРв = | | АвтРв = {{REVISIONID}} | ||
| РзАРв = [[Special:Permalink/32198|32198]] | | РзАРв = [[Special:Permalink/32198|32198]] | ||
| РзУРв = [[Special:Permalink/32215|32215]] | | РзУРв = [[Special:Permalink/32215|32215]] | ||
}} | }} | ||
</div> | </div> | ||
</noinclude> | </noinclude> |
Revision as of 12:28, 3 March 2023
Git Config
The following command uses the --global
flag and will be applied to the file ~/.gitconfig
.
git config --global user.name "Spas Z. Spasov"
git config --global user.email "spas.z.spasov@example.com"
git config --global init.defaultBranch "master"
git config --global remote.origin.prune true
To apply an option to the repository's .git/config
, you need to remove the --global
flag.
git config user.email "spas.z.spasov@work.com"
git config remote.origin.prune false
Append a file to a branch
touch file.name
git add -A
git commit -am "my update msg"
git push
How to shrink the .git folder
git gc --aggressive --prune # will perform garbage collection in your repository and prune old objects.
git repack -a -d --depth=250 --window=250 # It's better to use this command, because 'git gc --aggressive' is considered to be bad practice.
Delete all commit history
git checkout --orphan latest_branch # Checkout
git add -A # Add all the files to the 'current' branch
git commit -am "commit message" # Commit the changes
git branch -D main # Delete the branch 'main'
git branch -m main # Rename/move the 'current' branch to main
git push -f origin main # Finally, force update your repository
Delete/Remove a branch
git branch -d <branch-name>
Remove last Commit and Push from the Remote
git reset --soft HEAD~1
git push -f origin HEAD^:BRANCH_NAME
Now you are ready to push the same changes by a new commit.
Copy File from Another Branch
git restore --source master ./assets/css/src/style.less
Where master
is the name of the branch we want to copy from.
Hard Reset a Local Branch
BRANCH="master"
git stash
git fetch --all
git reset --hard FETCH_HEAD
git clean -df
git checkout "$BRANCH"
git pull --all
Push a New Local Branch to a Remote Git Repository and Track It
BRANCH="master"
git checkout -b "$BRANCH"
git push -u origin "$BRANCH"
Stash and Pop Changes
BRANCH="master"
git branch # Check does the curent local repo is attached to a remote branch
git chechout "$BRANCH" # Try to attach to the target "$BRANCH"...
At this stage if Git returns something like: "You local changes will be overwritten… Please commit your changes or stash them before you switch the branches."
Then you can checkout new branch, like it is shown in the above topic: git checkout ‑b "$BRANCH"
. Then checkout the $BRANCH
again, or you can stash your changes, checkout the target $BRANCH
(without creating a new one) and then pop the stash them after the pull of the remote changes:
git stash # Stash the changes
git status # Check does everything is clean
git checkout "$BRANCH" # Checkout the target "$BRANCH" again
git stash pop # Pop the stashed changes
git status # Check which files are modified
After that you can commit, merge and push your changes.
References
- Stack Overflow: How to delete all commit history in GitHub?
- Stack Overflow: How to shrink the .git folder
- Stack Overflow: How to clone all repos at once from GitHub?
- DevConnected: How To Undo Last Git Commit
- Stack Overflow: How can I remove a commit on GitHub?
- Stack Overflow: How do I copy a version of a single file from one Git branch to another?
- Free Code Camp: Push a new local branch to a remote Git repository and track it too
- Atlassian Git Tutorial: Undoing Commits & Changes
- Atlassian Git Tutorial:
git stash
– Saving Changes - GitHub Docs: Changing a commit message
- How-To Geek: View the Remote URL a Git Repository
- Super User: Change git init default branch name
- Stack Overflow: When does Git refresh the list of remote branches?