从git获取一个干净的文件副本

leo*_*eon 1 svn git tortoisegit

在svn中,有时我会删除一个本地文件,然后使用'svn update'来获得一个干净的副本.我怎么能在git中做到这一点?git pull/fetch不起作用.我想出的唯一方法是使用差异性的差异.谢谢.我正在使用tortoiseGit.

moc*_*ace 5

文件在git和svn中以不同方式暂存和提交.与git的观点不同的要点是,使用git,文件通过称为索引的暂存区域进行版本控制,从那里它作为提交到您的分支指向的本地提交图的一部分,并从那里开始将分支推送到远程服务器时,传播到提交远程图形.

虽然承认"最新"有点误导,但为了简化,有四个"最新"文件版本:工作树中的一个,索引中的一个,本地分支中的一个和远程分支中的一个.本地和远程分支不一定是同步的.所以,当你说你想要一个文件的干净副本时,你必须先改进问题 - 并回答你自己所追求的四个问题.

该指数的最新版本:

$ git checkout -- /path/to/file
Run Code Online (Sandbox Code Playgroud)

来自本地分支的最新版本(也将丢弃索引中的文件):

$ git checkout HEAD -- /path/to/file
Run Code Online (Sandbox Code Playgroud)

来自远程分支的最新版本(作为本地机器上的当前版本,可能是陈旧的):

$ git checkout origin/master -- /path/to/file
Run Code Online (Sandbox Code Playgroud)

来自远程分支的最新版本(更新到最新的酒吧竞赛条件 - 不陈旧):

$ git fetch
$ git checkout origin/master -- /path/to/file
Run Code Online (Sandbox Code Playgroud)

来自远程分支的最新版本(更新到最新版本,并与本地分支同步):

$ git pull
$ git checkout master -- /path/to/file
Run Code Online (Sandbox Code Playgroud)