gpt4 book ai didi

git - 存储/分支/工作副本困惑

转载 作者:太空狗 更新时间:2023-10-29 14:38:04 29 4
gpt4 key购买 nike

我最近开始使用 SourceTree 和 Git,但我仍然对存储/分支和我的工作副本文件感到困惑。我一直无法找到任何可以为我澄清事情的东西。

我的困惑在于与分支和存储相关的文件的工作副本。我期望工作的方式是我的文件工作副本也将链接到分支。如果我要切换分支,它会在切换到新分支之前自动存储我的工作副本。如果我要切换回上一个分支,它将再次存储当前的工作副本文件并从上一个分支恢复那些文件。

在使用 SourceTree 和 Git 一段时间后,我很清楚这不是它的工作方式,并且您的工作副本文件完全独立于您的分支,存储也是如此。如果您切换到另一个分支,您的选择是手动 stash 您的工作副本文件、放弃更改或将您的工作文件带到新分支。

所以,我想知道的是,理想的工作流程是什么?假设我正在两个不同的分支中同时开发两个功能,并希望不断来回跳跃。我是否需要记住在每次切换之前存储我的工作副本文件,或者有更好的方法吗?

最佳答案

If I am to switch branches, it will automatically stash my working copy before switching to the new branch.



不! Git 不会自动为您存储本地更改。此外,如果您有未提交的更改与您 check out 的分支冲突,Git 不会让您 check out 有问题的分支。在检查其他分支之前,您需要“手动”丢弃或 stash 它们。

it appears pretty clear to me that [...] your working copy files are completely independent from your branches, as are stashes.



是的,这是有充分理由的。特别是,存储的一个用例是当您在 check out “错误”分支时开始进行更改。然后你可以摆脱困境
  • stash 您的本地更改(从而进入干净的工作状态),
  • 检查“正确”分支,
  • pop 该存储以恢复您的本地更改。

  • Say I am developing two features simultaneously in two different branches and want to constantly jump back and forth. Do I need to remember to stash my working copy files before every time I switch or is there a better approach to this?



    是的,在切换到另一个分支之前存储您的更改,然后 pop 以前的存储,将是正常的工作流程。如果你经常切换分支,那确实会很乏味,但是如果你从命令行使用 Git,你可以定义 aliases 来抽象掉一些复杂性。

    我自己从未使用过 SourceTree,但我可以想象, stash/ checkout /pop 会如何涉及大量乏味的鼠标点击。显然,虽然,SourceTree
    引入了一种名为“ Custom Actions”的机制,允许您定义自己的命令 including Git commands 。你可能想看看它...

    关于git - 存储/分支/工作副本困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27697835/

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