GithubHelp home page GithubHelp logo

msaaddev / git-commands-workflows Goto Github PK

View Code? Open in Web Editor NEW
65.0 2.0 14.0 156 KB

πŸš€ All the git commands and workflows you need to know

Home Page: https://twitter.com/msaaddev

License: MIT License

Shell 100.00%
git shell workflow git-workflow git-commands git-basic-command github git-bash shellscript commands-cheat-sheet

git-commands-workflows's Introduction

git-commands-workflows

The git commands & workflows you need to know to work with git and automate your regular commands.


Initialization

# paste this in your terminal to change your current working directory to the project directory
cd your_project_path

# initialize git
git init

Commands

⚑️ The repetitive commands that I (and everyone else) use regularly.

# connect the remote GitHub repo with your local project
git remote add origin [github-repo-url]

# see untracked files
git status

# add all untracked files to the staging area
git add .

# commit the tracked files of the staging area
git commit -m "commit-msg"

# push all the changes to the GitHub
git push -u origin master

πŸ— Git Setup if you have never used git before.

# configure git with your github username
git config --global user.name "your_github_username"

# configure git with your github email (email you used to sign up on GitHub)
git config --global user.email "[email protected]"

🎩 Clone a repository in your computer.

# clone a repo
git clone [repo_url]

🌲 The git commands you need to know to work with branches.

# list all branches
git branch

# create a new branch
git branch [branch_name]

# checkout to the new branch
git checkout [branch_name]

# 	OR

# create AND checkout to the new branch
git checkout -b [branch_name]

# pushing the new branch on GitHub
git push origin [branch_name]

# delete a branch locally
git branch -d [branch_name]

# delete a branch on GitHub
git push origin -d [branch_name]

# pulling changes from some other branch
git pull origin [branch_name]

# merge a branch with the current active branch
git merge [branch_name]

# merge a branch to some defined branch
git merge [source_branch] [target_branch]

πŸ“š Stashing untracked changes β€”Β It saves all the new untracked changes and rewind your repo to the last commit.

# stash the untracked changes
git stash

# pop an existing stack
git stash apply stash@{stash_number}

# list all stashes
git stash list

# delete all saved stashes
git stash clear

πŸ’ Pulling all the new changes from the remote repository on GitHub

# pull changes from master branch
git pull origin master

# pulling changes from some other branch
git pull origin [branch_name]

🎯 Keep your GitHub forked repo in sync with the original repository.

# STEP #1: show URLs of remote repositories when listing your current remote connections
git remote -v

# STEP #2: add upstream
git remote add upstream [source-repo-url]

# STEP #3: fetching all the new changes from the main repository
git fetch upstream

# STEP #4: merging the new changes from the original repo to your forked local repo
git merge upstream/master

# STEP #5: pushing the new changes of the forked local repo to the GitHub
git push origin master

Note: Replace master with main if your primary branch is main.


Workflows

Open your .zshrc or .bashrc file. It is located in your Home directory. Paste the following shellcode there.

# Keep your GitHub forked repo in sync with the original repository with master as the primary branch
function fetchremotems() {
	git fetch upstream &&
	git merge upstream/master &&
	git push origin master
}

# Keep your GitHub forked repo in sync with the original repository with main as the primary branch
function fetchremotemn() {
	git fetch upstream &&
	git merge upstream/main &&
	git push origin main
}

# create new branch and checkout to it
function gcb() {
	git checkout -b "${1}"
}

# checkout to a branch
function gch() {
	git checkout "${1}"
}

# push changes to another branch
function gbp() {
	git push origin "${1}"
}

# add, commit, push changes to github
function gacp() {
	git add . &&
	git commit -m "${1}" &&
	git push
}

# aliases
alias gi='git init'
alias gs='git status'
alias ga='git add '
alias gaa='git add .'
alias gc='git commit -m '
alias gp='git push'
alias gra='git remote add origin '
alias gpm='git push -u origin master'

# create YOUR own git workflows
function [functionName]() {
    # commands to execute when function is called
    # if there are more than one commands, use && between them
    # to use the first output from the terminal, use "${1}"
}

πŸš€ Usage

Fetching changes from the original repo to your forked repo.

cd your_project_path

# do this only once in every forked local repo to add upstream
git remote add upstream [source-repo-url]

# write the following in the terminal – primary branch: master – whenever you need to fetch the changes
fetchremotems

# write the following in the terminal – primary branch: main – whenever you need to fetch the changes
fetchremotemn

Usage of the rest of the workflows.

# To create a new branch and also to checkout to it
gcb [branch_name]

# To checkout to an existing branch
gch [branch_name]

# To push changes to another branch
gbp [branch_name]

# To add, commit and push changes to the github
gacp "commit-msg"

# initialize git
gi

# check status
gs

# stage untracked file
ga [file_name]

# stage all untracked files
gaa

# commit the changes
gc "commit-msg"

# connect remote repo to the local repo
gra [repo-link]

# push changes to master
gpm

πŸ‘¨πŸ»β€πŸ’» Contributing

Feel free to add your git workflows in the repository. Just make sure you first read the contributing guidelines before making a PR.

⚑️ Other Projects

I have curated a detailed list of all the open-source projects I have authored. Do take out a moment and take a look.

πŸ”‘ License & Conduct

git-commands-workflows's People

Contributors

msaaddev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.