仅应用 Git 中的部分更改的工具
Tool to apply only some changes in Git
假设我有两个文件“版本1.py”和“版本3.py”。我想在“版本 2.py”之间有一个版本,因为例如,我做了两个更改(例如功能 A 和错误修复 1)并且我不想同时提交两个更改,因为不考虑好的做法。我所做的是,我在屏幕的一侧打开了 diff,然后手动将我想要的更改复制到 Pycharm-IDE 中。那么在这种情况下的工作流程是什么?应该有一个工具可以做到这一点,不是吗?我没有找到一个。我会使用我找到的任何足够先进的工具,但是我更喜欢 Pycharm 或 Git 中的方法。我发现带有补丁文件的 emacs,但是 emacs 不采用原始文件,因此它不知道您何时尝试更改源文件。这导致我破坏了补丁,然后补丁没有被 git.
接受
如果您对一个文件进行了多项更改并且希望将它们分成多个提交,请使用 git add -p
。 “p”代表“补丁”。这将引导您逐一完成更改,并询问您是否要暂存它们。上演你想要的。
git diff
将向您显示剩余的未暂存更改。
git diff --staged
将显示您已进行的更改。
如果您只想测试分阶段的更改,您可以stash your unstaged changes并稍后检索它们。
一旦你确定你已经上演了什么,就提交它。 git commit
,不是 git commit -a
。
您可以使用 PyCharm 来完成所有这些。可以Commit part of a file,相当于git commit -p
。但是如果你这样做,你就无法测试你正在提交的内容。
要获得完全的灵活性,请参阅 "Use the Git staging area to commit changes" 以了解如何在 PyCharm 中启用暂存区以及如何使用他们的提交工具来暂存部分更改。相当于git add -p
.
并且您可以使用 PyCharm 来暂存未暂存的更改。 PyCharm 称之为“搁置”。参见 Use Git to work on several features simultaneously。
这是可行的,因为在 Git 中,您可以在“暂存区”中构建您想要提交的内容。这就是 git add
所做的,它将文件复制到暂存区。当您 git commit
您提交的是暂存区中的内容,而不是磁盘上的内容。
对于大多数任务,您可以 git add .
将所有内容复制到暂存区,或 git commit -a
复制所有内容并提交。但您也可以 select 您复制的内容。您只能使用 git add <filename>
暂存某些文件。而且您只能通过 git add -p
.
进行某些更改
假设我有两个文件“版本1.py”和“版本3.py”。我想在“版本 2.py”之间有一个版本,因为例如,我做了两个更改(例如功能 A 和错误修复 1)并且我不想同时提交两个更改,因为不考虑好的做法。我所做的是,我在屏幕的一侧打开了 diff,然后手动将我想要的更改复制到 Pycharm-IDE 中。那么在这种情况下的工作流程是什么?应该有一个工具可以做到这一点,不是吗?我没有找到一个。我会使用我找到的任何足够先进的工具,但是我更喜欢 Pycharm 或 Git 中的方法。我发现带有补丁文件的 emacs,但是 emacs 不采用原始文件,因此它不知道您何时尝试更改源文件。这导致我破坏了补丁,然后补丁没有被 git.
接受如果您对一个文件进行了多项更改并且希望将它们分成多个提交,请使用 git add -p
。 “p”代表“补丁”。这将引导您逐一完成更改,并询问您是否要暂存它们。上演你想要的。
git diff
将向您显示剩余的未暂存更改。
git diff --staged
将显示您已进行的更改。
如果您只想测试分阶段的更改,您可以stash your unstaged changes并稍后检索它们。
一旦你确定你已经上演了什么,就提交它。 git commit
,不是 git commit -a
。
您可以使用 PyCharm 来完成所有这些。可以Commit part of a file,相当于git commit -p
。但是如果你这样做,你就无法测试你正在提交的内容。
要获得完全的灵活性,请参阅 "Use the Git staging area to commit changes" 以了解如何在 PyCharm 中启用暂存区以及如何使用他们的提交工具来暂存部分更改。相当于git add -p
.
并且您可以使用 PyCharm 来暂存未暂存的更改。 PyCharm 称之为“搁置”。参见 Use Git to work on several features simultaneously。
这是可行的,因为在 Git 中,您可以在“暂存区”中构建您想要提交的内容。这就是 git add
所做的,它将文件复制到暂存区。当您 git commit
您提交的是暂存区中的内容,而不是磁盘上的内容。
对于大多数任务,您可以 git add .
将所有内容复制到暂存区,或 git commit -a
复制所有内容并提交。但您也可以 select 您复制的内容。您只能使用 git add <filename>
暂存某些文件。而且您只能通过 git add -p
.