除了凌乱的标题(使用Git)之外,我如何修改和提交已经在暂存区域中添加的文件,但是能够保留原始的暂存文件以便在之后提交它?
也许还不够清楚所以这里有一个简单的例子来说明:
test.txt
制作ABC
文件(例如文件v1)ABC DEF
(比如文件v2)ABC DEF GHI
(比如文件v3)所以在这个阶段:
我在上面的第6步之后尝试了以下内容:
git add .
=>上做了git status
以绿色git status
向我显示要提交的更改以绿色显示git commit -am "v2"
,但由于git status
向我显示没有提交 我希望这个微不足道的解释足够清楚而不会无聊。但实际上这是我更现实的情况:
这次我通过良好的旧文件系统管理(也就是重命名文件)来管理这个笨拙的工作流程,但是这个坏习惯不会很快离开我,所以至少我想用Git做这个奇怪的过程。
再次感谢您
答案 0 :(得分:1)
据我所知,您对一组文件进行了一些更改。现在,您希望根据它们对应的功能将这些更改分为2个提交(v2和v3)。尝试使用
暂存更改这是git add --patch的简写,让您以交互方式在变化之间进行选择。让我们说你想先提交v2。输入' y'对于与v2和' n'相对应的更改对于v3。如果hunk包含v2和v3更改,则通过输入'来拆分它。 提交v2后,继续进行v3更改并进行提交。
如果您还不想暂停或提交v3的更改,但是您希望git将其保存以供日后使用,那么"存储"这些变化是您拥有的最佳选择。 简单地说,
隐藏所有未分级的更改。
如果你想挑选藏匿的变化,你可以这样做:
我喜欢给我的藏匿名称,以便我以后能记住这些变化的内容。为此:
希望这会有所帮助。 :)
答案 1 :(得分:1)
两个小傻瓜。
-a
is the "all" switch。当你使用它时,git会获取索引中所有内容的worktree版本。你想要索引中的v2和git commit-m v2
。
如果没有-a
git commit
只提交索引中的内容,那么请将您的v2内容编入索引并提交。
我同意c-rish,git add --patch
是您的工具,有选择地从工作树中添加更改。使用工作树中的v3,git add --patch并仅选择v2更改。还有一个git reset --patch
来有选择地撤消更改。