Skip to content

All important commands using in git-GitHub || solve merge conflict between Vs-Code & GitHub-web-editor

Notifications You must be signed in to change notification settings

akashdip2001/git-github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

python_logo

Git & GitHub: Essential Commands

🔭 my website Git docs. Exams MCQ
My YouTube Channel

more Badges 🥇


Table of Contents

python_logo

  1. linux-basics-course
  2. Install Git & VS Code
  3. Check Git Installation
  4. Configuring Git (Terminal)
  5. Create Repository
  6. Add and Commit (Local)
  7. Push to Remote Repository on GitHub
    1. VS-code & Web-editor ⚠️ Merge Conflicts
    2. 🚀 Update the Git Remote URL
  8. Initialize a New Repository
  9. Branch Commands
  10. Merging Code
  11. GitHub Exam

Install Git & VS Code

Just copy & paste the code into your PowerShell - Done ✔️

You can install Git Bash using Chocolatey, a package manager for Windows. If you haven't installed Chocolatey yet, run the following command in PowerShell with administrative privileges:

Set-ExecutionPolicy Bypass -Scope Process -Force; `
[System.Net.ServicePointManager]::SecurityProtocol = `
[System.Net.ServicePointManager]::SecurityProtocol -bor 3072; `
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Then, install Git and VS Code:

choco install git.install
choco install vscode

Check Git Installation

python_logo

git --version
#check where oyu are?
pwd
#All files & folders
ls
#The folder tracked by git or not ?
git status
docs

Configuring Git (Terminal)

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --list

Git Configuration

🦖 Create an Repository Locally, Edit, and Push from GitHub

python_logo

Main Folder

│── Folder 01
└── Folder 02: I want to track this folder
cd Folder 02
git status
git init
Py Projects
Main Folder

│── Folder 01
└── Folder 02
     
     └── .git: ⚠️

⚠️ Not showing .git Folder ?

Open Vs code -> Settings -> Exclud -> Remove Git from here.

image Guide

Image 1 Image 2

Git Configuration

Or, 🦖 Clone an Existing Repository Locally, Edit, and Push from GitHub


Clone and Check Status

git clone https://github.com/username/repository.git
git status

Status Indicators

Here’s a comprehensive table summarizing the states and their short indicators in Git, along with descriptions:

State Short Indicator Description Icon
Untracked ?? Files that Git doesn't track yet. They are new and need to be added git add . to start tracking. (No specific icon provided)
Modified M Files that have been changed but are not yet staged for commit.
Staged A or M Files added to the staging area. A for newly added, M for modified files staged for commit.
Unmodified (none) Files that are tracked and have not been modified; they remain in their last committed state. (No specific icon provided)
Unmerged U (or UU) Files with conflicts during a merge; need resolution before completing the merge.
  • UU for a file that is unmerged with conflicts.
  • AA, DD, etc., for specific merge conflict cases (e.g., both sides added or deleted a file).

Add and Commit (Local)

python_logo

✈️ Create new file --> add & commit

touch "file 01" "file 02"
Py Projects
Main Folder

│── Folder 01
└── Folder 02
     
     │── .git:
     │── file 01
     └── file 02
# git add filename_01.txt filename_02.txt
git add .
New file add .
Again create a New file & commit all

Use git add . to add all changes.

git commit -m "1st commit"

✈️ Modified (edit) any file --> again add & Commit again

Image 1 Image 2

Next img

Again Use git add . to add all changes.

git add filename_02.txt
git commit -m "2nd commet after modified a file"

Push (Upload to Remote Repository on GitHub)

python_logo

⚠️⚠️⚠️ VS-code & Web-editor ❌ Merge Conflicts ⚠️⚠️⚠️

git & github with vs code setup

⚠️ I have a github propository in the github. And I clone this repository using http URL, so I directly push my all changes through VS code. But what happened eat I open Github web editor and modify any file and push from it. This time how to sync my geethab with vs code in this two cases - case1 - if my I not work on vs good and there was no modified or changes. And in case2 - what happened I update from GitHub web editor but there was also some modification exist in v.s code which is comet but not push ⚠️

✅ Solution ✅

To synchronize your local repository (in VS Code) with the remote GitHub repository in both cases, follow these steps:


Case 1: No Local Changes in VS Code

You updated a file in the GitHub web editor, but no changes were made in your local repository.

  1. Pull the Latest Changes:

    • Open the terminal in VS Code or use the Source Control tab.
    • Run:
      git pull origin <branch_name>
    • Replace <branch_name> with the branch you are working on (e.g., main or master).
  2. Confirm Sync:

    • After pulling, your local repository will now match the remote repository since there were no local changes to cause a conflict.

Case 2: Local Changes in VS Code Not Pushed Yet

You updated a file in the GitHub web editor and also made changes locally that are committed but not pushed.

  1. Pull the Latest Changes:

    • First, fetch and merge the remote changes using:
      git pull origin <branch_name>
  2. ⚠️ Resolve Merge Conflicts (if any):

    • If there are conflicts between the changes made locally and those from the GitHub web editor, Git will indicate the files with conflicts. Resolve these conflicts by:
      • Opening the conflicted files in VS Code.
      • Looking for conflict markers (<<<<<<<, =======, >>>>>>>).
      • Deciding whether to keep your changes, the remote changes, or both.
    • After resolving the conflicts, stage the resolved files:
      git add <file_name>
    • Commit the resolved changes:
      git commit -m "Resolved merge conflicts"
  3. Push Your Changes:

    • Once the merge is complete and there are no conflicts, push your changes back to the remote repository:
      git push origin <branch_name>

Notes

  • Always pull the latest changes before starting work in VS Code to minimize conflicts.
  • Use git status frequently to check the state of your repository and understand whether changes are staged, unstaged, or committed.
  • If you only want to review the changes made in the GitHub web editor before pulling, use:
    git fetch origin <branch_name>
    git log origin/<branch_name>

git & github with vs code setup

✅ This approach keeps both your local and remote repositories in sync efficiently. ✅

Push Changes to a Remote Repository

Once you've committed your changes locally, use the git push command to push those changes to a remote repository.

Syntax:

git push <remote_name> <branch_name>

Example:

git push origin main

Replace origin with the name of your remote repository, and main with the name of the branch you're pushing to.

If it's your first time pushing to the remote repository, you may need to set up tracking:

git push -u origin main

After the initial setup, simply use git push for future pushes.

git push

🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥

Update the Git Remote URL

🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥

1. 🚀 git clone from a another profile/repo

Screenshot (708)

2. 🚀 Check the Targate repo

Screenshot (709)

3. 🚀 Update the Targate repo

Step 1: Update the Git Remote URL

In the node-todo-cicd directory, update the remote URL to point to your repository:

git remote set-url origin https://github.com/akashdip2001/AWS.git

Verify the change with:

git remote -v

It should now display:

origin  https://github.com/akashdip2001/AWS.git (fetch)
origin  https://github.com/akashdip2001/AWS.git (push)

Step 2: Move the Files to the Target Directory

  1. Create the directory structure in your repository:

    mkdir -p Projects/CI-CD/Project\ 001
    mv * Projects/CI-CD/Project\ 001/
  2. Ensure no unnecessary files (e.g., .git from the original project) are moved:

    rm -rf Projects/CI-CD/Project\ 001/.git

Step 3: Stage and Commit the Changes

  1. Add the new directory and its content to the staging area:

    git add Projects/CI-CD/Project\ 001/
  2. Commit the changes with an appropriate message:

    git commit -m "Added node-todo-cicd project to Projects/CI-CD/Project 001"

Step 4: Push the Changes

Push the changes to your repository on GitHub:

git push origin master

Replace master with the branch name you're using if it differs.


Step 5: Verify the Upload

  1. Go to your repository on GitHub: https://github.com/akashdip2001/AWS.
  2. Navigate to Projects/CI-CD/Project 001 to ensure the files are correctly placed.

This method ensures the project is correctly uploaded to the desired directory in your repository.

Screenshot 2024-12-20 172351

🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥🚥


Initialize a New Repository

init - Used to create a new repository

mkdir <NewFolderName>
cd <NewFolderName>
git init

Use cd .. to navigate back to the main folder.

mkdir creates a new folder and cd enters it. Then, create or edit files within the folder.

git status
git add .
git commit -m "Initial commit"
git status
git push origin main

Git Initialization

🦖 Creating a Repository on GitHub (Without README) & Uploading Local Files

Without a README: This allows you to clone the repository locally, initialize Git, and push all local files.

git remote add origin https://github.com/username/repository.git
git remote -v

Use git remote -v to verify the remote connection.

Check the Branch

git branch

If you're on the master branch, rename it to main.

Rename the Branch to main

git branch -M main
git push -u origin main

The -u flag sets up tracking for future pushes, allowing you to use git push without specifying the remote and branch.

Push Any Changes Locally

git status
git add .
git commit -m "Add new file or update"
git push

🦖 Branch Commands

✈️ Check the Branch

git branch

✈️ Rename a Branch

#git branch -M main
git branch -m <old-branch-name> <new-branch-name>

✈️ Create a New Branch

git branch <new-branch-name>
git checkout -b <new-branch-name>

✈️ Check all existing Branches

git branch
also check using HEAD file

✈️ Navigate Between Branches

# create new Branch Then switch
git branch <branch-name>
git switch <branch-name>
git checkout <branch-name>
# Auto create the branct (if not exist) & switch
git switch -c <branch-name>

✈️ Delete a Branch

git branch -d <branch-name>

✅ After Making Changes

git status
git add .
git commit -m "Your commit message"
git push origin <branch-name>
docs

Create a new Branch in VS-Code ⚠️ git push

steps

Screenshot (359)

git branch
git branch "Test-Share-link"
git switch "Test-Share-link"
git branch
git status
git add .
git commit -m "add Test-Share-link .md file"
# ❌ git push
#
git push --set-upstream origin Test-Share-link

Screenshot (360) Screenshot (361) Screenshot (362) Screenshot (363)

Branch Operations


Some practical-Problems

create a Project Locallyt with branch name master and 🔵 want to upload a existing Repo with `main' branch.

🟢 Normally you can push your code with master and Marge the Branch in GitHub ⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️

“The workspace currently open doesn’t have any folders containing Git repositories.”

You want to upload this directory to your existing GitHub repo:
👉 https://github.com/akashdip2001/Arduino-IDE-setup


✅ Steps to Upload Your Current Directory to That Repo:

Follow these simple steps inside VS Code terminal:


🟢 1. Initialize Git in Your Project Folder

If you haven’t yet:

cd path/to/ESP8266_LED_Control
git init

🟢 2. Add Remote Link to Your Existing GitHub Repo

git remote add origin https://github.com/akashdip2001/Arduino-IDE-setup.git

If you get an error like “remote origin already exists”, use:

git remote set-url origin https://github.com/akashdip2001/Arduino-IDE-setup.git

🟢 3. Add and Commit All Files

git add .
git commit -m "Upload ESP8266 LED Control project"

🟢 4. Push to GitHub

If your GitHub repo's branch is main:

git push -u origin main

Or if it's master:

git push -u origin master

✅ Done! Check your repo

Go to your repo page: github.com/akashdip2001/Arduino-IDE-setup — your files should now be uploaded 🎉


🔵⚠️ Some Tile error comes when try to upload in main branch

you can directly upload to the main branch, but here’s what’s happening and how to fix it in the cleanest way:


🔍 What Happened ??

  • Your local branch is named master by default.
  • Your GitHub repo (https://github.com/akashdip2001/Arduino-IDE-setup.git) has the main branch (not master).
  • When you tried git push origin main, Git said:
    error: src refspec main does not match any
    ➤ Because your local branch is still named master.

✅ Two Easy Fix Options

🔵 Option 1: Rename Local master to main (RECOMMENDED)

This way, you’ll align with GitHub’s default and won’t create extra branches.

git branch -m master main
git push -u origin main

Done! Now you’re working with the main branch directly, just like your GitHub repo. ✔️


🔵 Option 2: Push master as main

If you don't want to rename the local branch but still push it to main on GitHub:

git push -u origin master:main

This tells Git: “Push my local master branch to the remote main branch.”


🧹 Clean Tip

To always start your new projects with a main branch locally, you can set this globally:

git config --global init.defaultBranch main

This avoids the master vs main mix-up in the future. ✅


⚠️ error come for Option 1

This is just a small sync issue between your local main branch and the remote main branch on GitHub.


💥 What's the problem ??

The remote main branch already has some commits (probably a README or .gitignore added through GitHub's UI), but your local main doesn't have them. So Git is blocking your push to avoid overwriting remote history.


✅ How to fix it safely

Here’s the step-by-step:


🔵

  1. Pull remote main first and merge
git pull origin main --allow-unrelated-histories
  • The --allow-unrelated-histories flag helps when your local repo and the GitHub repo were initialized separately.
  • You may be asked to enter a merge commit message. Just accept it (save and close the editor).

2. Now push successfully

git push -u origin main

Boom 💥! Now your local project is successfully pushed to GitHub’s main branch.

Screenshot (292)


✅ Optional Cleanup (Next time)

To avoid this in future projects:

  • Create the repo on GitHub without any files (uncheck README, .gitignore, License).
  • Or initialize your local repo first, then push, and GitHub won’t have conflicts.

⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️⚙️

🦖 Merging Code

Method 1: Using Git Commands

python_logo

#git diff <branch-name>   # Compare commits, branches, files & more
git merge <branch-name>
GUI

Method 2: Creating a Pull Request (PR)

git pull origin main    # Download and synchronize with GitHub

Merge Operations


📄 Documentation My YouTube Channel

github exam

Releases

No releases published

Packages

No packages published

Languages