混帐结帐:得到同样的行为SVN恢复

问题描述:

我注意到,SVN恢复不完全的行为方式GIT结帐同...:混帐结帐:得到同样的行为SVN恢复

SVN情况: 如果我有一个SVN远程仓库我在计算机上签出并在本地对文件进行修改。当我这样做时,有人在服务器上的同一文件上提交新的更改。

现在我想恢复我对本地存储库的更改。我做

svn revert [file] 

这使我的文件处于与我在计算机上检出远程存储库时所用的状态完全相同的状态。

GIT案例: 现在有了GIT。我克隆远程仓库,做一个文件中的一些变化,有人推了一些提交影响是相同的文件,我想要做的

git checkout -- file 

这是要给我的有人修改了文件的版本前面提到的,而不是我在此用户故事开始时克隆的文件。现在

,我想我可以这样做:

git checkout [commit number of the remote version I cloned] -- file 

但我觉得“乏味/伤脑筋”,知道我只是想我的文件恢复到我的仓库的本地版本。

所以我的问题是: 有没有一种方法来专门签出一个文件到我在本地存储库上的版本,当我最后一次拉动远程存储库时?是这样的:

git checkout local -- file 

? 预先感谢您的宝贵意见&答案=)

+3

在写问题之前,您是否尝试过使用'git checkout - file'?因为它会检出适当版本的文件,除非你之前做过'git pull',而这种情况你没有,因为你需要在'file'中解决冲突。 – Paul 2014-12-02 12:05:17

如果我理解你的要求正确,你需要记住的是,git的配置(通常情况下)为“主”分支轨道了什么远程/上游主机。

您可能想要做的是在克隆存储库后创建本地分支:git checkout -b my_branch - 并在此处完成您的工作,因此它不受上游更改的影响,但这些更改仍会被拉入您的本地master分支。

然后,您可以在您方便的时候将您的更改git rebase更改到当前的主人。