gpt4 book ai didi

Git:分支应该隔离变化,还是不应该?

转载 作者:太空狗 更新时间:2023-10-29 13:21:17 65 4
gpt4 key购买 nike

我以为我已经很好地掌握了 Git,但现在我感到很惊讶。我认为分支会隔离其他分支的更改,所以我在一个新分支中开始了一个大的实验性重构。这种重构意味着移动许多文件。当我切换到 master 时,我仍然可以看到变化!

我去我的沙盒存储库重现了这个问题:

$ git branch crazy-refactoring
$ git checkout crazy-refactoring
$ rm README
$ git checkout master
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add/rm <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
#
# deleted: README
#
no changes added to commit (use "git add" and/or "git commit -a")
$ ls README
ls: cannot access README: No such file or directory

为什么?我创建一个分支的全部意义在于我可以尝试一些东西,如果不成功就把它扔掉。思想?

最佳答案

您没有提交删除。只有提交的更改是“隔离的”。

关于您的评论:

Maybe I'm missing something, but it seems to me a weird and undesirable behavior.

想想看:

您在 crazy-refactoring 中删除了 README 但没有提交更改。 Git 知道您更改了文件并且您没有提交它。为了保留您的更改,如果您 checkout 另一个分支,它不会覆盖它们。
否则,当您切换回您进行更改的分支时,Git 将无法知道更改是什么。它们将会丢失,这比在另一个分支中看到更改要糟糕得多。

您当前的工作目录始终是当前分支 + 未提交的更改(除非您重置它们)。

当然,Git 会在检查其他分支时警告您有未提交的更改,但有时希望保留更改切换到另一个分支。

关于Git:分支应该隔离变化,还是不应该?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6551604/

65 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com