![]() |
1
82
你可以直接用
旧答案(之前
你可以这样做:
(选择要保留的大块)
现在,您只有一个提交,其中只有您想要保留的更改,其余的都是未分页的。
此时,未提交的更改已被丢弃,因此您有一个干净的工作目录,其中包含要保持提交状态的更改。
这会删除最后一次提交(“tmp”),但会将修改保留在工作目录中,而不分页。
编辑:替换
|
![]() |
2
296
我相信你能做到最简单的方法是:
从手册页:
|
![]() |
3
3
你可以跑
git diff file.txt >patch.tmp # edit patch.tmp to remove the hunks you want to keep patch -R <patch.tmp |
![]() |
4
2
看起来像你想要的
然后你可以使用
在提交之前查看将要做什么更改(因为还原只是一个正向的提交,它复制了过去更改的反向)
如果您使用的是纯Git存储库,那么根据您的目标,您可能会使用交互式Rebase(
|
![]() |
5
1
重新阅读问题,听起来您希望恢复工作树中的更改,而不是以前提交的更改,但其他一些答案使我的阅读听起来可能是错误的。你能澄清一下吗? 如果更改只是在工作副本中,那么最简单的方法是将要保留的更改分阶段进行:
然后,通过签出索引版本,放弃不希望保留的更改:
然后,如果您还不希望这些更改进行阶段化,则取消对它们的设置:
此配方仅将所选更改还原到文件(或您指定的文件),不会创建任何需要还原的临时提交。 如果要有选择地只应用在以前提交中所做的一些更改,则可以先将文件重置为以前提交的状态:
然后你可以按照之前的食谱
|
![]() |
6
0
当文件位于通过ssh终端访问的服务器上时,这里答案中描述的命令行选项非常方便。 但是,当文件在本地计算机上时,我更喜欢以下方式: 在NetBeans编辑器中打开该文件(附带Git支持)。Netbeans在行号处加上红色/绿色/蓝色标记,分别指示删除/添加/修改内容的位置。 右键单击这些标记,您可以选择撤消更改。 此外,您可以右键单击红色和蓝色标记以在弹出窗口中找到旧版本。 |
![]() |
Harry · 如何在编译时获取克隆的git仓库的标签 6 月前 |
![]() |
Ooker · 如何从blob中删除秘密? 6 月前 |
![]() |
hasdrubal · git日志图智能分支过滤器 6 月前 |
![]() |
J. Doe · 为什么git中没有跟踪git文件? 7 月前 |