将差异转换为提交

时间:2019-01-29 05:46:25

标签: git

我在回购中进行了一些不定期的更改。在终端上输出:

--- a/app/something.java
+++ b/app/something.java
@@ -37,13 +37,17 @@ public class SomeController extends Controller{
                requestVo.setJobName("temp1");
                requestVo.setJobGroup("g1");
                requestVo.setJobInfo(JobInfo.INFO);
-               requestVo.setJobExecutionType(JobExecutionType.IMMEDIATE);
-               requestVo.setExecutionTime(new Date());
+               requestVo.setJobExecutionType(JobExecutionType.TIMED);
+               requestVo.setExecutionTime(getExecutionTime(3600*1000l));
                requestVo.setJobData("testing 123");
        }

+       private Date getExecutionTime(long delay) {
+               return new Date(System.currentTimeMillis() + delay);
+       }
+

...

然后我继续进行git reset --hard HEAD,因此丢失了更改。有什么办法找回更改吗?还是从终端将我的更改作为提交应用?

2 个答案:

答案 0 :(得分:5)

如果您仍然有git diff的完整输出,如问题中显示的摘录所示,您可以尝试:

  • 选择此git diff输出并将其复制粘贴到文件diff.patch中。
  • apply that patch在您的(重置)源上

也就是说:

git apply save.patch
# or
patch -p1 < save.patch

注意:这里首选git apply,因为git diff输出文件重命名的行,而输出patch会忽略。

如果您没有完整的差异输出...则使用先前的答案/评论。

答案 1 :(得分:1)

git reset --hard放弃您的未分阶段工作,然后转到上一个提交。运行此命令后,git没有任何更改记录。您必须使用其他方式,但是git在这里不能为您提供帮助。