是否有一个命令允许您部分撤消对工作目录中文件(或多个文件)的更改?
假设您已经编辑了很多文件但是您意识到要将某些更改撤消回已提交状态,而不是其他更改.
我正在设想一个git checkout类似的选项git add -p,即它通过hunk传递文件块并询问你是否要保留它.
thi*_*eek 112
使用git版本> = 1.7.1我可以
git checkout -p
Run Code Online (Sandbox Code Playgroud)
我不确定这个功能何时推出.
CB *_*ley 82
你可以用
git add -p <path>
Run Code Online (Sandbox Code Playgroud)
然后,将您要保留的块保存在特定文件中
git checkout -- <path>
Run Code Online (Sandbox Code Playgroud)
通过签出文件的暂存版本来丢弃您不想保留的工作树更改.
最后,你可以使用
git reset -- <path>
Run Code Online (Sandbox Code Playgroud)
将文件的暂存版本还原到文件的最新提交版本,以使您的更改不受影响.
git checkout $file将文件的状态恢复为$file上次提交的状态.我认为您可以使用git checkout SHA-1 -- $file将文件还原为SHA-1标识的提交.