我目前在工作目录中有三个已修改的文件.但是我希望其中一个重置为HEAD状态.
在SVN我会使用svn revert <filename>(svn update <filename>如果需要的话后跟),但在git我应该使用git reset --hard.但是,此命令无法在单个文件上运行.
有没有办法在git中丢弃单个文件更改并用新的HEAD副本覆盖它?
有没有办法在文件上进行不同的提交.假设我已经修改了一个文件5次,并且在我已经提交并推送到存储库之后我想回到更改2.
在我的理解中,唯一的方法是保留许多分支,我做对了吗?如果我是对的,我会在几天内拥有数百个分支,所以我可能真的不理解它.
有人可以清楚吗?
我想仅将特定提交所做的更改还原到给定文件.
我可以使用git revert命令吗?
还有其他简单的方法吗?
我想知道为什么它不在GUI中实现?我知道git有一种内容方法与单文件方法相比,但有时单文件还原至关重要.
例如,之前需要来自少数提交的.png图形文件.
可能我需要结账,但我仍然不确定,因为概念有时会让我失望.
如何在git中查看一个文件的特定版本?
$ git checkout HEAD~43 Makefile
$ git reset Makefile
Run Code Online (Sandbox Code Playgroud)
但我不明白如何找出'HEAD~43',如果我这样做git log aFile,怎么才能找出我应该使用哪个'HEAD~43'?
为什么我需要运行git reset该文件?它有什么作用?
我正在尝试将我的更改还原到我的功能分支中的单个文件中,并且我希望此文件与master中的相同.
我试过了:
git checkout -- filename
git checkout filename
git checkout HEAD -- filename
Run Code Online (Sandbox Code Playgroud)
似乎这些都没有对我的功能分支进行任何更改.有什么建议?
鉴于以下互动:
$ git add foo
$ git commit -m "Initial import of 'foo'"
$ rm foo # This could be any destructive action on foo, like editing it.
Run Code Online (Sandbox Code Playgroud)
如何在工作副本中恢复"foo"?我正在寻找类似的东西:
$ git <magic> foo
Restored foo to revision <blah>.
Run Code Online (Sandbox Code Playgroud) 我知道这不是一个严格的编程问题,但它与git有关.我不小心在git中创建了一个分支--track(我在合并远程分支时得到了错误的选项顺序)
常规命令不起作用:
git branch -D "--track"
Run Code Online (Sandbox Code Playgroud)
我试图用引号和反斜线逃脱,但是都不起作用.
有任何想法吗?