用于 stage/unstage hunks/lines 的 git CLI 命令,例如 sourcetree
Posted
技术标签:
【中文标题】用于 stage/unstage hunks/lines 的 git CLI 命令,例如 sourcetree【英文标题】:git CLI commands for stage/unstage hunks/lines like sourcetree 【发布时间】:2015-08-26 23:53:48 【问题描述】:Sourcetree 可以轻松地暂存和取消暂存大块。也很容易从一个大块和舞台中选择特定的线条或取消它们。我试图弄清楚如何从命令行执行相同的操作。
我尝试在 sourcetree 中执行每个操作并显示命令历史面板。当我执行这些操作时,它不显示任何命令。对于其他操作,它工作正常。
在命令行中,我在交互模式下使用git add
,选择补丁选项,然后选择一个包含多行更改的文件。提示是:“暂存这个大块 [y,n,q,a,d,/,e,?]?”。如果我选择“?”选项它输出此帮助文本:
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
j - leave this hunk undecided, see next undecided hunk
J - leave this hunk undecided, see next hunk
k - leave this hunk undecided, see previous undecided hunk
K - leave this hunk undecided, see previous hunk
s - split the current hunk into smaller hunks
e - manually edit the current hunk
? - print help
's' 选项看起来很适合将单独的行从大块中分出。但是,当我输入它时,git 只是再次输出帮助文本。
谁能告诉我应该在文档的哪个位置查找?
【问题讨论】:
其实你做的一切都是对的。如果大块已经太小,则可能会发生这种情况,而不能将其拆分为更小的块。 可以在 sourcetree 中拆分同一个块。 我不知道 SourceTree。请尝试手动编辑('e')大块,看看会发生什么。 我在多行更改中的一行开头添加了一个“+”并保存了文件。得到这个输出:暂存这个块 [y,n,q,a,d,/,j,J,g,e,?]? e错误:补丁失败:changeme.txt:1错误:changeme.txt:补丁不适用您编辑的大块不适用。再次编辑(说“不”丢弃!)[y/n]? 是的,这可能会发生。这是一个相关的问题以及如何解决它:***.com/questions/3268596/… 【参考方案1】:聚会迟到了,但它可能会帮助其他人寻找解决方案。
git 倾向于在同一个块附近添加行 - 如果你想逐行暂存代码,你可以在交互模式下编辑块。
修改文件后,输入:
git add -p
现在,您可以输入e
,而不是s
。
这会让您进入编辑模式以更改大块。
如果您发现要在此特定大块中暂存的特定行,请确保将其 +
和 -
保留在其中,并按照快速指南中的说明编辑其他行。
示例时间
假设我有以下更改:
- allScriptsTimeout: 60000,
- getPageTimeout: 60000
+ allScriptsTimeout: 180000,
+ getPageTimeout: 180000
但是,我只想暂存第一条更改的线路。如上所述,输入git add -p
并选择e
在编辑器中,将 -
更改为空格并删除您不想暂存的行。
假设我只想暂存+ allScriptsTimeout: 180000,
,我将文件更改为:
- allScriptsTimeout: 60000,
getPageTimeout: 60000
+ allScriptsTimeout: 180000,
我们开始了,只有一行已上演,准备提交。
虽然很麻烦,但绝对可以在 git CLI 中添加单独的行 :)
【讨论】:
以上是关于用于 stage/unstage hunks/lines 的 git CLI 命令,例如 sourcetree的主要内容,如果未能解决你的问题,请参考以下文章
python 用于生成车库的唯一编号的脚本,用于文本广告系列。一个脚本用于创建XLS文件,另一个脚本用于单独创建
RSA非对称加密,私钥用于签名公钥用于验签;公钥用于加密私钥用于解密