我喜欢使用git add --patch(以及最近的git add -i)来解开我的提交,并验证我提交的内容是好用的。
有一段时间我会遇到一个可能是错误记录语句的块,一个额外的换行符(通常是擦除前面提到的日志记录语句) - 我实际上宁愿完全删除。
我不想上台,我也想简单地删除有问题的大块,而它正好在我面前(而不是跳回我的编辑器再试一次)。我也希望将更改应用于我的工作文件。
有办法做到这一点吗?
我所考虑的是使用编辑块功能。
结合下面提出的建议hash
,我得到的工作流程比现在好一些。
我同意这违反了git add
关注点的分离。 OTOH它会如此方便; P我听起来像我的老板;)
答案 0 :(得分:4)
比使用reset hard HEAD更好,在提交所有有效的帅哥之后,你可以git checkout文件将其重置为当前分支中记录的内容。这样它就不会影响任何其他文件。
答案 1 :(得分:1)
有一个详尽的解释,为什么git add不能通过Git maintainer Junio on the Git mailinglist来回应功能请求。
他的替代流程的简短版本:
# start from N-commit worth of change, debug and WIP
git stash save -p debug ;# stash away only the debugging aid
# now we have only N-commit worth of change and WIP
git stash save -p wip ;# stash away WIP
git add -p ;# prepare the index for the next commit
git stash save -k ;# save away the changes for later commits
git commit
答案 2 :(得分:0)
您可以根据需要添加索引,提交,然后重置硬HEAD,然后丢失索引中的内容。