Intro
This is the list of git commands I compiled.
Create new local GIT repository
git init [project name]
Copy a repository
git clone username@host:/path/to/repository
Add a file to the staging area – must be done or won’t be saved in next commit
git add temp.txt or git add -A (add everything at once)
Create a snapshot of the changes and save to git directory??
Note that any committed changes won’t make their way to the remote repo
git commit –m “Message to go with the commit here”
Nota bene: git does not allow to add empty folders! If you try, you’ll simply see: nothing to commit, working tree clean
Put some “junk file” like .gitkeep in your empty folder for git add/git commit to work.
Set user-specific values
git config –global user.email youremail
Displays the list of changed files together with the files that are yet to be staged or committed
git status
Send local commits to the master branch of the remote repository
(Replace <master> with the branch where you want to push your changes when you’re not intending to push to the master branch)
git push origin <master>
For real basic setups like mine, where I work on branch master, it suffices to simply do git push
Merge all the changes present in the remote repository to the local working directory
git pull
Create branches and helps you to navigate between them
git checkout -b <branch-name>
Switch from one branch to another
git checkout <branch-name>
View all remote repositories
git remote -v
Connect the local repository to a remote server
git remote add origin <host-or-remoteURL>
Delete connection to a specified remote repository
git remote rm <name-of-the-repository>
List, create, or delete branches
git branch
Delete a branch
git -d <branch-name>
Merge a branch into the active one
git merge <branch-name>
List file conflicts
git diff –base <file-name>
View conflicts between branches before a merge
git diff <source-branch> <target-branch>
List all conflicts
git diff
Mark certain commits, i.e., v1.0
git tag <commitID>
View repository’s commit history, etc
git log, e.g., git log –oneline
Reset index?? and working directory to last git commit
git reset –hard HEAD
Remove files from the index?? and working directory
git rm filename.txt
Revert (undo) changes from a commit as per hash shown by git log –oneline
git revert <hash>
Temporarily save the changes not ready to be committed??
git stash
View info about any git object
git show
Fetch all objects from the remote repository that don’t currently reside in the local working directory
git fetch origin
View a tree object??
git ls-tree HEAD
Search everywhere
git grep <string>
Clean unneeded files and optimize local repository
git gc
Create zip or tar file of a repository
Git archive –format=tar master
Delete objects without incoming pointers??
git prune
Identify corrupted objects
git fsck
Ignore a file
Put the unqualified name of the file in .gitignore at same level as .git. It will not be added to the project. Use this for keeping passwords secret.
References and related
https://www.freecodecamp.org/news/10-important-git-commands-that-every-developer-should-know/