Download from git overwriting local repository

from here

Command to start local repository configuration :

  1. move into your project folder
  2. git init
  3. git add .
  4. git commit -m “added readme”
  5. git remote add origin https://github.com/USER/PROJECTNAME.git  or replace git remote set-url origin https://github.com/USER/PROJECTNAME.git
  6. git push -u origin master or change master in to mail git push origin HEAD:main in general git push origin HEAD:<remoteBranch> 
  7. Edit .git/config file under your repo directoryFind url= entry under section [remote “origin”]

    Change it from url=https://github.com/rootux/my-repo.git to https://USERNAME@github.com/rootux/my-repo.git

    where USERNAME is your github user name

Important: If you have any local changes, they will be lost. With or without --hard option, any local commits that haven’t been pushed will be lost.[*]

If you have any files that are not tracked by Git (e.g. uploaded user content), these files will not be affected.


I think this is the right way:

git fetch --all

Then, you have two options:

git reset --hard origin/master

OR If you are on some other branch:

git reset --hard origin/<branch_name>

Explanation:

git fetch downloads the latest from remote without trying to merge or rebase anything.

Then the git reset resets the master branch to what you just fetched. The --hard option changes all the files in your working tree to match the files in origin/master


Maintain current local commits

[*]: It’s worth noting that it is possible to maintain current local commits by creating a branch from master before resetting:

git checkout master
git branch new-branch-to-save-current-commits
git fetch --all
git reset --hard origin/master

After this, all of the old commits will be kept in new-branch-to-save-current-commits.

Uncommitted changes

Uncommitted changes, however (even staged), will be lost. Make sure to stash and commit anything you need. For that you can run the following:

git stash

And then to reapply these uncommitted changes:

git stash pop