Git-Command-Guide
Git-Command-Guide copied to clipboard
:orange_book: A git command guide
Git Command Guide
Git is a version control software designed by Linus Torvalds, thinking about the efficiency and reliability of maintaining application versions when they have a large number of code files.
Advantages:
- ✔️ Better teamwork
- ✔️ Control of changes in the project
- ✔️ Audit and reliability
- ✔️ Return to previous versions
- ✔️ Local & Remotes Repositories
- ▪️▪️▪️ And much more
Download
Linux Debian:$ sudo apt-get install git
Linux Fedora:$ sudo yum install git
Mac
Windows
You can write the commands in your CMD or in the git bash terminal
About this Guide:
- 🔈 Everything in bold means that the value is relative, it changes according to each one.
- 🔈 Is not a finished version.
Star the Project :star:
The easiest way you can contribute is by "starring" this project on GitHub! This will help you to "bookmark" the content so you can return to it. But it will also help the people who "follow" you on GitHub to discover that you find it interesting or useful.
The more people star and share the project, the more possible contributors are able to understand the value of contributing and open sourcing their knowledge!
:octocat: I will be grateful that you follow me :octocat:
Commands 🚀
GIT Version: 🕵
git --version
Set name credential: ✋
git config --global user.name "germancutraro"
Set E-mail credential: ✉️
git config —-global user.email “[email protected]”
Disable warning detached head:
git config --global advice.detachedHead false
See all configurations: 🌍
git config —-list
See own custom configurations: 🌞
git config --list --global
Help Command 🙏
git help
Get help from a specific command 👏
git help commit
Create a Repository 👊
git init
Delete a Repository :boom:
rm -rf .git
Add a file 👉
git add index.html
Add multiple files 🖖
git add index.html index.js
Add all files 💥
git add .
Add all the files in the current directory by their extension: 🌕
git add *.txt
Add all the files that are in a folder: 📁
git add css/
Add all the files that were modified: 〽️
git add -u
Add all the files by their extension that are inside a folder: 📂
git add pdfs/*.pdf
See modified files 🔦
git status
See the modified files without so much information: 🤐
git status -s
See the modified files and in which branch we are working: 🔆
git status -sb
Delete a file that was in the staging area ⛔️
git reset index.js
Delete a file that was in the staging area by their extension ❌
git reset *.xml
Commit Changes 📝
git commit -m 'navbar created'
See all the commits that we did 👀
git log
See all the commits that we did in a pretty way 🌲
git log --oneline --decorate --all --graph
Create a Aliase/Shortcut 💧
git config --global alias.lg "log --oneline --decorate --all --graph"
So now we can do: git lg
for the pretty log command 👆
Review of the basic and important commands
-
$ git init
-> Initialize a local Git Repository -
$ git add <file>
-> Add file to the Staging Area -
$ git status
-> Check status of files in the working branch -
$ git commit
-> Commit Changes -
$ git push
-> Push to Remote Repository
See all the changes that happened between the working file and the staging file 📍
git diff
See all the changes that happened between the staging area file and the commited file ⭕
git diff --staged
Recover Files 💞
git checkout .
Delete all the changes added in a file 📄
git checkout -- README.md
Add files and commit in the same command: 🌟
git commit -am 'README actualizado'
Edit the commit message ✏️
git commit --amend -m 'We edited the message!'
Add or Back to the last commit ↶
git reset --soft HEAD^
Return to a specific commit in a weak way ↖️
git reset --soft 39ae8e6
Return to a specific commit in a hard way ⬅️
git reset --hard 39ae8e6
List of originated commits 📋
git reflog
Go back to a point 🔄
git reset --hard 43809d4
Rename Files ✍️
git mv index.js app.js
Delete Files ❌
git rm app.js
Branches
A branch is basically a new timeline that stores commits. They are used to develop functionalities independent of each other. The master branch is the default branch when you create a repository. Create new branches during development and merge them to the main branch when you finish.
Create a branch: 🔱
git branch myBranch
See the branches of our repository: 🔅
git branch
Work in a specific branch 🌿
git checkout myBranch
Create and move to a branch in a single command 🍀
git checkout -b myBranch
Merge branches:
First we go back to the master branch: ❄️
git checkout master
And now we run the next command 🌻
git merge myBranch
Once merged we can proceed to delete the branch 🌹
git branch -d myBranch
Tags
Create a tag 💅🏼
git tag -a v1.0.0 -m "Version 1.0.0"
Insert a tag in a specific commit 🔖
git tag -a v0.1.0 43809d4 -m 'Alpha Version'
See all Tags 🎌
git tag
See the tag message 👁🗨
git show v1.0.0
Delete a tag ✖️
git tag -d v0.1.0
Stash
Creation 📦
git stash
Get the list 💼
git stash list
Github
Once we create a repository, we can add it to the remote server: 📮
git remote add origin yourRepo.git
See the remote sources of our repository: ⬛
git remove -v
Once we have all our commits done and we have added the remote repository we can upload our files to Github:
Push: ✈️
git push -u origin master
But, as you can see, the tags are not uploaded with the git push
command:
Push the tags ▶️
git push --tags
Ignore Files ❗️
For this, you must create a .gitignore files, and there you can write the files and foulders that you dont want to upload to the github repository like:
node_modules package-lock.json
Pull 🌌
git pull
Clone a Repository ⌛
git clone repoUrl.git
Clone a repository in a specific folder 📁
git clone repoUrl.git my-folder