initial
This commit is contained in:
commit
74ae93a96e
1 changed files with 94691 additions and 0 deletions
122
joplin notion extension/Web Development/Github/Basics.md
Normal file
122
joplin notion extension/Web Development/Github/Basics.md
Normal file
|
|
@ -0,0 +1,122 @@
|
|||
Basics
|
||||
|
||||
- https://www.nobledesktop.com/learn/git/git-branches
|
||||
|
||||
[Git Branches_ List, Create, Switch to, Merge, Push, & Delete (11_2_2023 4_41_42 PM).html](../../../_resources/Git%20Branches_%20List,%20Create,%20Switch%20to,%20Merge,%20Push.html)
|
||||
|
||||
- Branches
|
||||
- If you want to push your code to a different branch of the remote repository on Codeberg, you can specify the branch in the git push command. Here's how you can do it:
|
||||
|
||||
Assuming you have already added the remote repository using a command like:
|
||||
|
||||
|
||||
|
||||
`git remote add origin your-codeberg-repo-url.git`
|
||||
|
||||
You can push your code to a different branch as follows:
|
||||
|
||||
|
||||
|
||||
`git push origin your-local-branch-name:your-remote-branch-name`
|
||||
|
||||
Here's what each part of the command does:
|
||||
|
||||
your-local-branch-name: Replace this with the name of the local branch you want to push. This is the branch that contains the code you want to deploy.
|
||||
|
||||
your-remote-branch-name: Replace this with the name of the branch in the remote repository (on Codeberg) where you want to push your code.
|
||||
|
||||
For example, if you have a local branch called "feature-branch" and you want to push it to a branch named "production" on Codeberg, you would use the following command:
|
||||
|
||||
|
||||
|
||||
`git push origin feature-branch:production`
|
||||
|
||||
This command will push the code from your local "feature-branch" to the "production" branch on the remote repository on Codeberg. Make sure the branch names are accurate to avoid any conflicts or errors.
|
||||
**to change default branch**
|
||||
`git push -u origin --all`
|
||||
|
||||
- undo git add
|
||||
For specific files use
|
||||
`git reset <file>`
|
||||
For all files
|
||||
`git reset HEAD`
|
||||
- diff
|
||||
When using diff and we wanna avoid the changes in whitespace bcz of pretty formatting then use
|
||||
`git diff -w`
|
||||
or
|
||||
` git diff -w --numstat`
|
||||
When using diff filemode ie permissions is different by default in windows and unix machines so when using git diff output can be
|
||||
```text
|
||||
old mode : 100644
|
||||
new mode : 100755
|
||||
```
|
||||
So to fix it use
|
||||
`git config core.filemode false`
|
||||
https://stackoverflow.com/questions/1257592/how-do-i-remove-files-saying-old-mode-100755-new-mode-100644-from-unstaged-cha
|
||||
- pull requests
|
||||
1. after cloning the repo(original one) and cd into it fetch the pull request to branch named 'local-branch-name'. name can be anything.
|
||||
`git fetch origin pull/PR_NUMBER/head:local-branch-name`
|
||||
2. Then switch to `local-branch-name` and check it, if changes are good then merge it by
|
||||
```bash
|
||||
git checkout main # or develop, or another branch
|
||||
git merge local-branch-name
|
||||
```
|
||||
- to list all files tracked by github use `git ls-files`
|
||||
- to push non interactively use this
|
||||
found this, this is the way
|
||||
`git push https://$GIT_USERNAME:$GIT_TOKEN@github.com/username/repo.git`
|
||||
|
||||
|
||||
to have different user and email for repo use this
|
||||
```sh
|
||||
git config user.name "Your Work Name"
|
||||
git config user.email "work@email.com"
|
||||
```
|
||||
|
||||
|
||||
**clearing .git folder**
|
||||
sometimes git folders can become very large. few things to clear is
|
||||
to check issues or dangling blobs(uncommited files/data to repo)
|
||||
`git fsck --full`
|
||||
and to remove dangling blobs
|
||||
`git prune`
|
||||
|
||||
but if it got commited then
|
||||
for untracking
|
||||
```sh
|
||||
git rm -r --cached bin/
|
||||
git rm -r --cached obj/
|
||||
```
|
||||
and for actual removing
|
||||
```sh
|
||||
# using filter branch
|
||||
git filter-branch --force --index-filter \
|
||||
"git rm --cached --ignore-unmatch path/to/bigfile.zip" \
|
||||
--prune-empty --tag-name-filter cat -- --all
|
||||
|
||||
# Clean up refs and gc
|
||||
rm -rf .git/refs/original/
|
||||
git reflog expire --expire=now --all
|
||||
git gc --prune=now --aggressive
|
||||
|
||||
# Force push
|
||||
git push origin --force --all
|
||||
git push origin --force --tags
|
||||
```
|
||||
|
||||
instead of filter branch, this can be used too, though it needs to be installed `pip install git-filter-repo --break-system-packages`
|
||||
```sh
|
||||
git filter-repo --path path/to/bigfile.zip --invert-paths
|
||||
```
|
||||
|
||||
|
||||
**applying patches **
|
||||
|
||||
from a file
|
||||
`git apply --check ytfetch-403-fix.patch`
|
||||
If it doesn't return anything, that's good.
|
||||
then
|
||||
`git apply ytfetch-403-fix.patch`
|
||||
|
||||
create patch with
|
||||
`git diff > my_patch.patch`
|
||||
Loading…
Reference in a new issue