我在我的本地计算机的主分支的一个克隆的主分支的一个远程服务器的回购。

我更新了一个文件,我想从远程主分支恢复到原始版本。

我该怎么做呢?


当前回答

您需要找到最新的提交id和要恢复的文件的目录。

然后使用以下命令

git checkout [commit ID] -- path/to/file
git commit -m 'commit message'

将帮助您将想要的文件恢复到远程计算机上该文件的最新版本。

其他回答

如果你还没有把它提交给主分支,它很容易:

退出主分支(比如git checkout -b oops/fluke/dang) 在那里提交你的更改(比如git add -u;git提交。) 返回主分支(如git checkout master)

您的更改将保存在分支oops/fluke/dang;主人还是老样子。

我也遇到过同样的问题,遇到了这个线程,但我的问题是上游。下面的git命令对我有用。

语法

git checkout {remoteName}/{branch} -- {../path/file.js}

例子

git checkout upstream/develop -- public/js/index.js

还可以用git做恢复吗

Git恢复——源源/主文件名

为了添加一个替代方案(当然不一定是一个更好的),如果你之前已经提交了文件,但现在你需要撤消更改,下面是你可以做的:

git diff HEAD..master -- path/to/file.ext | git apply -

这将生成一个差异以将文件恢复到主分支中的版本,然后应用它。git apply后的负号告诉git从标准输入读取补丁。

然后可以像往常一样提交文件。

下面是用shell函数表示的相同命令:

# Git Reset File
function grf() {
  git diff HEAD..master -- $1 | git apply -
}

# for example: grf ./someChangedFile.txt

您需要找到最新的提交id和要恢复的文件的目录。

然后使用以下命令

git checkout [commit ID] -- path/to/file
git commit -m 'commit message'

将帮助您将想要的文件恢复到远程计算机上该文件的最新版本。