我如何将我的本地分支重新设置为远程存储库的分支类似?

我试过:

git reset --hard HEAD

但 git 状态声明我有修改的文件:

On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
      modified:   java/com/mycompany/TestContacts.java
      modified:   java/com/mycompany/TestParser.java

当前回答

这是我经常使用的:

git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;

請注意,這是一個很好的做法,不做變化到您的當地主/開發分支,但相反,支票到另一個分支,任何變化,與分支名稱由變化類型,例如 feat/, chore/, fix/,等,所以你只需要拖動變化,不推任何變化從主。

git remote --verbose

git checkout develop;
git commit -m "Saving work.";
git branch saved-work;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force

git add .
git commit -m "Reset to upstream/develop"
git push --force origin develop

git merge -s recursive -X theirs develop

使用时

git merge -s recursive -X ours develop

与所有的变化相结合:

git commit -m "Saving work.";
git branch saved-work;
git checkout develop;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;
git add .;
git commit -m "Reset to upstream/develop";
git push --force origin develop;
git checkout branch_name;
git merge develop;

请注意,而不是上流/开发,您可以使用一个承诺标签,其他分支名称等 使用一个 CLI 工具,如 Oh My Zsh 检查您的分支是绿色的,表明没有什么承诺和工作目录是干净的(这是确认或也可以通过 git 状态验证)。

其他回答

答案

git clean -d -f

已被低估(d 删除目录) 谢谢!

这是我经常使用的:

git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;

請注意,這是一個很好的做法,不做變化到您的當地主/開發分支,但相反,支票到另一個分支,任何變化,與分支名稱由變化類型,例如 feat/, chore/, fix/,等,所以你只需要拖動變化,不推任何變化從主。

git remote --verbose

git checkout develop;
git commit -m "Saving work.";
git branch saved-work;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force

git add .
git commit -m "Reset to upstream/develop"
git push --force origin develop

git merge -s recursive -X theirs develop

使用时

git merge -s recursive -X ours develop

与所有的变化相结合:

git commit -m "Saving work.";
git branch saved-work;
git checkout develop;
git fetch upstream develop;
git reset --hard upstream/develop;
git clean -d --force;
git add .;
git commit -m "Reset to upstream/develop";
git push --force origin develop;
git checkout branch_name;
git merge develop;

请注意,而不是上流/开发,您可以使用一个承诺标签,其他分支名称等 使用一个 CLI 工具,如 Oh My Zsh 检查您的分支是绿色的,表明没有什么承诺和工作目录是干净的(这是确认或也可以通过 git 状态验证)。

使用下面的命令. 这些命令将从本地 git 删除所有未追踪的文件

git fetch origin
git reset --hard origin/master
git clean -d -f

我做了:

git branch -D master
git checkout master

完全重新设置分支


注意,您应该检查到另一个分支,以便能够删除所需分支。

只有3个命令会使它工作

git fetch origin
git reset --hard origin/HEAD
git clean -f