我在我的计算机上(从github(有一个分叉存储库的本地签出。所以在github上,我创建了一个分支,并检查出来。
现在我希望本地签出与原始 github 存储库(我创建分叉的存储库(相同。我将该原始存储库添加到我的本地存储库(名称为"orig"(并执行以下操作:
git pull orig master
但是,git status
向我展示了
On branch master
Your branch is ahead of 'origin/master' by 1 commit.
(use "git push" to publish your local commits)
nothing to commit, working directory clean
git diff
或git diff origin/master
也没有任何显示。
有没有办法使本地结帐等于原始主分支中的内容(无需删除本地存储库、github 分叉、重新分叉、重新签出......
我不在乎是否有任何未提交的更改或任何东西。我希望本地结帐等于原始存储库...
您可以将本地分支重置为 orig 中的分支,然后推送到您的分叉
git checkout master
git reset --hard origin/master
git push --force origin master
本地存储库和分支主分支将与原始存储库相同。如果需要清洁:git clean -f -d
使用以下命令:
git reset --hard HEAD
我已经遇到过几次同样的问题,以下是我为自己写下的解决方案。我不知道所有的细节,但我知道它让我摆脱了麻烦:)。
回滚提交。(在每个步骤之间运行"git status"(
- 例如,"您的分支比'origin/dev'领先 2 次提交。
- git 重置头^:
- 这将一次删除一个提交的文件(我认为(
- 会有一堆(红色(暂存/未跟踪的文件。不要惊慌。
- >"你的分支和'origin/dev'已经分道扬镳,分别有1个和5个不同的提交。
- 重复步骤 1。 直到 git 状态"您的分支落后于'origin/dev' 5 次提交">
- 现在我们要删除所有这些更改,以便以后可以重新拉回源。
- git restore *
- 删除所有暂存更改
- 现在可能只有一些未跟踪的文件。手动删除文件夹中的它们。
- git pull origin dev.
- 这应该是从源头拉取的最新开发。