Pycharm "keeping changes" 从一个分支结账到另一个分支?
Pycharm "keeping changes" when checking out from one branch to another?
我正在学习从命令行使用 git,我一直在从 Pycharm GUI 使用它。
我正在 my_project
目录和 pycharm 分支 my_branch
.
上工作
现在,我想为我的代码带来一些新功能,我想在另一个分支中进行,这样万一我破坏了某些东西,我可以通过简单地删除新分支来中止新功能。
要创建并切换到新分支,我有 运行 git checkout -b my_branch_2
,开始做一些更改(提交 none),然后我想回到 my_branch
, 所以我 运行 git checkout my_branch
.
在这一点上,正如 Pycharm GUI 通常在尝试从未提交更改的分支签出到另一个分支时所做的那样,我希望 git 询问我是否要提交更改或者结帐并放弃对 my_branch_2
的更改并切换到 my_branch
代码(当用户 select 按钮“强制结帐”时 Pycharm 执行后一个选项)。
相反,它切换回 my_branch
而不询问任何内容并携带我对 my_branch_2
所做的更改,因此最终错误的代码被带到我的稳定分支!
为什么会这样?
我是不是用错了命令git checkout
?
当我从其 GUI 中选择“强制签出”选项时,我必须运行复制Pycharm的哪些git命令?
这是 git checkout
的预期行为
Local modifications to the files in the working tree are kept, so that they can be committed
如果你不想让那些东西继续存在,reset, stash or clean它们。
因此,命令行上的“Pycharm 的强制检出”(这将删除所有未提交的本地更改并从当前分支切换到 my_branch
)等效于
git checkout . && git checkout my_branch
这必须是 运行 在根目录中。
我正在学习从命令行使用 git,我一直在从 Pycharm GUI 使用它。
我正在 my_project
目录和 pycharm 分支 my_branch
.
现在,我想为我的代码带来一些新功能,我想在另一个分支中进行,这样万一我破坏了某些东西,我可以通过简单地删除新分支来中止新功能。
要创建并切换到新分支,我有 运行 git checkout -b my_branch_2
,开始做一些更改(提交 none),然后我想回到 my_branch
, 所以我 运行 git checkout my_branch
.
在这一点上,正如 Pycharm GUI 通常在尝试从未提交更改的分支签出到另一个分支时所做的那样,我希望 git 询问我是否要提交更改或者结帐并放弃对 my_branch_2
的更改并切换到 my_branch
代码(当用户 select 按钮“强制结帐”时 Pycharm 执行后一个选项)。
相反,它切换回 my_branch
而不询问任何内容并携带我对 my_branch_2
所做的更改,因此最终错误的代码被带到我的稳定分支!
为什么会这样?
我是不是用错了命令git checkout
?
当我从其 GUI 中选择“强制签出”选项时,我必须运行复制Pycharm的哪些git命令?
这是 git checkout
的预期行为Local modifications to the files in the working tree are kept, so that they can be committed
如果你不想让那些东西继续存在,reset, stash or clean它们。
因此,命令行上的“Pycharm 的强制检出”(这将删除所有未提交的本地更改并从当前分支切换到 my_branch
)等效于
git checkout . && git checkout my_branch
这必须是 运行 在根目录中。