Git 吉特;“已更新”;恢复后,但它不是

Git 吉特;“已更新”;恢复后,但它不是,git,Git,我和我的朋友在同一家分店工作。我在项目的我这一方工作,承诺并完成了更新的分支 更新的版本未编译,但我必须继续在我这边工作,因此我恢复了更改: git revert -m 1 8fc8e4ddd2823e789b09af633115eae5f4997e5c 我继续工作,提交了我的更改,当我尝试拉它时,它显示已经是最新的。 我想我不需要重置任何东西,我想保留我处理的所有文件,并从github获取最新的分支。您使用过,也许您想要使用 您的历史应该如下所示: # from branch my/cu

我和我的朋友在同一家分店工作。我在项目的我这一方工作,承诺并完成了更新的分支

更新的版本未编译,但我必须继续在我这边工作,因此我恢复了更改:

git revert -m 1 8fc8e4ddd2823e789b09af633115eae5f4997e5c 
我继续工作,提交了我的更改,当我尝试拉它时,它显示
已经是最新的。

我想我不需要重置任何东西,我想保留我处理的所有文件,并从github获取最新的分支。

您使用过,也许您想要使用


您的历史应该如下所示:

# from branch my/current/branch :
$ git log --oneline --graph
* eacf304  more of my work
* eacf302  some of my work
* eacf301  reverted faulty commit
* eacf300  my friend's version
* eacf299  last working version
...
$ git log --oneline --graph my/current/branch origin/my/current/branch
* eacf304  (my/current/branch) more of my work
* eacf302  some of my work
| * eacf300  (origin/my/current/branch) my friend's version
|/
* eacf299  last working version
...
这里有一种重写本地分支机构历史记录的方法,可以“忘记”有关
eacf300
eacf301

$ git rebase --onto eacf299 eacf301 my/current/branch
这将重播从
eacf301
(不包括)开始的所有提交(位于
eacf299
之上)

您的历史现在看起来像:

# from branch my/current/branch :
$ git log --oneline --graph
* eacf304  more of my work
* eacf302  some of my work
* eacf301  reverted faulty commit
* eacf300  my friend's version
* eacf299  last working version
...
$ git log --oneline --graph my/current/branch origin/my/current/branch
* eacf304  (my/current/branch) more of my work
* eacf302  some of my work
| * eacf300  (origin/my/current/branch) my friend's version
|/
* eacf299  last working version
...

你的下一个
git pull
会将你朋友的作品与你的分支合并。

如果它说它是最新的,那么你有理由相信它不是吗?分支是最新的“当没有任何传入更改时”。如果没有人向远程分支推送任何提交,则您没有落后,因此是最新的。远程分支上有我在本地没有的文件,因此它应该将它们拉入。但是否有您没有的提交?当我这样做时“git日志”“我可以看到我朋友所做的提交。
git pull
意味着运行
git fetch
,然后运行第二个命令,默认情况下,
git merge
。合并并不意味着删除我所有的代码并使用它们。你已经有了他们的代码;你说你想要不同的代码来覆盖他们的代码;而且他们没有获取您的代码,然后自己重写了它,这是合并覆盖您的更改所必需的。我现在能做什么?在提交之前还原还原但编辑。但是很难说-我不知道你的存储库的状态是什么。@TomBob:我重新阅读了你的问题,你可能想使用
rebase
,还有一些额外的选项。我会重新写我的答案。