我注意到,在处理一两张票时,如果我离开,我不确定我的工作是什么,改变了什么,等等.
有没有办法在git add然后git commit之前查看对给定文件所做的更改?
当我运行时git add -p,有没有办法让git选择新制作的文件作为选择?
因此,如果我创建一个新文件foo.java,然后运行git add -p,git将不允许我选择要添加到索引中的文件内容.
有git add -p阶段变化并git checkout -p以交互方式丢弃变更.如何通过帅哥从索引中取消更改?
(我认为git unstage -p或git reset HEAD -p可能会奏效.)
在Git GUI中,我可以选择差异的一部分,然后只分段那些行或块.我将如何反向操作,如在文件中回滚更改的行.通常这些是偶然的空白更改我只想恢复但仍然分阶段/提交同一文件的其他部分.
本机git允许部分提交:您只能提交文件的某些行,剩下的用于以后的提交.
这在TortoiseGit中可行吗?
Stack Overflow上存在多个问题,解决了暂存和提交文件中的部分问题.但是,我无法使其发挥作用.
比方说,我们要实现一个虚拟的数学课在PHP(语言无所谓)与像一些基本的方法:add,subtract,multiply和divide.
让我们从类定义开始:
<?php
class Math {
}
?>
Run Code Online (Sandbox Code Playgroud)
现在:
$ git add math.php
$ git commit -m "Create Math class."
Run Code Online (Sandbox Code Playgroud)
在下一步,我们实现这两个add和subtract四个方法:
<?php
class Math {
public function add($a, $b) {
return $a + $b;
}
public function subtract($a, $b) {
return $a - $b;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
但是现在我们想要在单独的提交中提交add和subtract方法的实现.
这可能吗?
我尝试了什么
$ git add -p
出现以下内容:

我很想将大块头分成小块,所以我按下s,出现以下内容:

似乎git没有把它分成更小的帅哥.
我们现在尝试手动编辑当前的大块头.所以我按:e. …
可能重复:
如何在git中仅提交文件的一部分
我对文件进行了一些更改,并将其添加到git索引中.提交文件时,我意识到我实际上有更改应该与其他文件单独提交.
有没有办法在Git中只提交此文件的特定部分?
.dproj 文件对于Delphi项目至关重要,因此它们必须受版本控制.
这些文件由IDE控制,并且还包含一些经常更改的信息,但与版本控制完全无关.
例如:我经常更改应用程序的启动参数(一天几次),但如果只有处理启动参数的部分发生了变化,则不希望意外提交项目文件.
那么如何处理这种情况呢?
一个干净的解决方案是将文件分开,但使用Delphi IDE AFAIK是不可能的.
你能忽略文件的特定部分吗?
我们目前正在使用Subversion,但很快就会迁移到Git.
我通常会添加更改git add -p,并且很多时候会有大量的代码块,由空行分隔.
但是,git不再split是大块头,我不得不求助于手动编辑.
如何增加帅哥的粒度,使每个代码块都在一个单独的大块中?
编辑:这是一个与Git不同的问题:使用git add -i或git add -e时显示更多上下文?因为我不打算增加每个大块头的上下文,而是增加帅哥的数量.