从远程获取一个文件的git pull

3

我复制了一个名为"Rep"的存储库并创建了自己的本地分支"Li"。 我把一个叫做"task.js"的文件提交到本地的"Li"分支,并将其推送到远程的"Li"分支。 现在我想要通过以下方式撤销这个操作:

  1. 从远程的"master"分支中拉取原始的"task.js"到本地的"Li"分支
  2. 将撤销后的"task.js"从本地的"Li"分支推送到远程的"Li"分支。

我试图阅读几篇"pull"教程,但无法找到一种方法来做到这一点(可能是因为我还没有真正理解基础知识...)

谢谢, Li


你能更具体地说明一下你的提交历史吗?Li 基于哪个分支?你的本地 master 是否正在跟踪远程 master?最好附上一个提交历史图表。 - weynhamz
我不知道如何生成这样的图表,而且它可能会让你更加困惑,因为我有更多的东西在那里,但是:我首先克隆了存储库,这创建了默认的本地主分支,对吧?然后我创建了一个名为“Li”的新分支,它源自本地主分支。然后我将此分支推送到远程存储库,从而创建了一个远程“Li”分支。如果需要更具体的指导,请指导我,我对Git还很陌生... - user429400
这意味着你的主分支中已经有一个 task.js 文件,它与远程主分支中的文件完全相同,对吗?你想做的就是用主分支中的文件覆盖错误的 task.js 文件,我理解得对吗? - weynhamz
是的,谢谢。很抱歉我无法很好地解释这个问题。虽然我有其他更改想要保留,但我只想还原这个特定的文件。 - user429400
2个回答

5

git reset HEAD~可以撤销当前分支的最新提交,但由于您已经将分支Li推送到公共仓库,最好执行git checkout master task.js并在分支Li中重新提交。


这个命令是做什么的?它会用本地的主任务.js覆盖本地的"Li"任务.js吗?(它可以工作,我只是想了解我做了什么) - user429400
是的,git checkout master task.js 只会检出主分支上的 task.js 文件。对于您的情况,您可能需要使用 -f 标志。 - weynhamz

0

你只需要使用以下命令来还原一个 Tom 的第一次提交:

git reset HEAD^1

然后将更改推送到远程分支。


由于他已经推送了Li分支,这意味着这可能不是一个好主意。 - weynhamz
哦,好的,所以他需要撤销那个提交。 - Mohanraj

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接