使用git,如何在不提交的情况下保存我的进度(以便以后可能会回滚到它)?

时间:2018-02-22 17:05:53

标签: git squash

有时候在开发过程中,我会尝试在我决定尝试新事物的地方努力工作时达到某种程度。我想建立在我当前的工作之上(所以git stash不起作用)并且能够回滚到当前状态,如果我决定我的新方法无处可去。但是,我目前的工作通常不会处于我想要提交它的状态并且永远存在于我的提交历史中,因为尝试新事物的目的通常是修复一些已经破坏的事情。

这里最好的做法是什么?我考虑过的一件事就是现在提交它,然后如果我用我的新方法成功,再做一次提交并将这两者压缩在一起。这是推荐的处理方法吗?

2 个答案:

答案 0 :(得分:1)

正如你自己建议的那样,压缩提交是一种方法。虽然我通常会提交一次并随后继续修改提交(-O0),因为它比压缩各种提交更容易。

答案 1 :(得分:0)

我认为只要你需要就提交!除非你把它们推到遥远的地方,否则不会伤害任何东西。

这就是我通常的做法,只有简单的命令。我重复你的问题以确定:" 你在新的功能开发过程中发现了一个新的错误。"

Delete

现在,如果(2)是您的功能开发提交的一部分,您可能希望将其压缩为一次提交。如果是的话,

$ # coding but now you found a serious bug otherwise
$ # you cannot continue the feature development
$
$ git commit -m "(1) In the middle of feature development X"
$
$ # Making a bugfix
$ git add . && git commit -m "(2) Bugfix"
$
$ # Continue with your feature development
$ git commit -m "(3) Finished development X"
$
$ # origin -- (1) -- (2) -- (3)

请注意$ git reset --soft (1)~1 # where (1) is a sha-1 of the commit (1) $ git commit -m "Feature development X with a minor bugfix" # (4) $ $ # origin -- (4) 保留当前工作目录状态。 如果(2)独立于X而是对系统的常见修复,则可以这样做:

git reset --soft