Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我使用git reset--soft HEAD^来保持我的状态,然后进行了提交。那么,是不是每次,如果我想提交,我都应该使用git reset--soft HEAD^?_Git - Fatal编程技术网

我使用git reset--soft HEAD^来保持我的状态,然后进行了提交。那么,是不是每次,如果我想提交,我都应该使用git reset--soft HEAD^?

我使用git reset--soft HEAD^来保持我的状态,然后进行了提交。那么,是不是每次,如果我想提交,我都应该使用git reset--soft HEAD^?,git,Git,事实上我并不确定,我每次都遵循git amend方法。这是个好习惯吗?如果不是,为什么git-amend不好?否,使用git-commit--amend是not每次都是一个好的实践。它将当前更改与以前提交的更改合并。你会有一个巨大的承诺,没有承诺的历史,什么都没有。你应该做很多小的、细粒度的更改,这样你就可以跟踪功能的发展和bug的引入 使用git reset--soft HEAD^在效果上或多或少是相同的:您将分支指针移动到上一个提交,但保持工作目录状态不变,然后使用引入的所有更改进行单个大提

事实上我并不确定,我每次都遵循git amend方法。这是个好习惯吗?如果不是,为什么git-amend不好?

否,使用
git-commit--amend
not每次都是一个好的实践。它将当前更改与以前提交的更改合并。你会有一个巨大的承诺,没有承诺的历史,什么都没有。你应该做很多小的、细粒度的更改,这样你就可以跟踪功能的发展和bug的引入

使用
git reset--soft HEAD^
在效果上或多或少是相同的:您将分支指针移动到上一个提交,但保持工作目录状态不变,然后使用引入的所有更改进行单个大提交

每次提交时使用这两个命令中的任何一个都会留下一个包含迄今为止整个项目的提交。这样做绝对没有什么好的理由,使用版本控制是完全错误的

git reset --soft HEAD^
将有效地返回到上次提交之前的状态,但将更改保留在索引中(就像您已经完成了git添加,但还没有完成git提交一样)


不要每次都
gitcommit--ammend
,这只会不断修改您的上一次提交。您希望将更改保留为有意义的更改集。

为什么这样做?你认为它完成了什么?你为什么不做一个git提交呢?你为什么“每次”都要这么做?每次提交之前,都不清楚您认为通过使用
git reset…
可以获得什么。
git reset--soft HEAD ^
git reset--soft HEAD ~
是一样的
HEAD~
HEAD^
是同义词。嗯,不是在posh git中,似乎posh git不喜欢插入符号,只是忽略了它(因此它什么也没做)。我想知道这是powershell问题还是posh git问题。我会编辑我的帖子来解决这个问题。我不知道,但是插入符号对于浏览git历史非常重要。如果你的环境不允许你使用它,你就错过了。