Git:藏匿的替代方案

Mhd*_*Mhd 4 git git-extensions git-worktree

我正在为我的项目使用Git Extensions.我很喜欢.有一个问题一直困扰着我,我很确定Git Extensions中有一个技巧.这是场景:

  • 从master分支,我创建了3个分支A,B并且C.
  • 开始在分公司工作A,做了一些改变
  • 切换到分支B,我仍然看到更改,A因为他们没有提交
    • 我不想提交更改,A因为我还没有完成,我不希望此提交出现在提交历史记录中
    • 我不想隐藏更改,A因为如果我进行更改B并切换到C,我也必须隐藏更改B==>更改A已消失:被新存储覆盖.

我可以在不同的分支机构中制作许多藏匿处吗?
如果没有,最新的选择是stash什么?
commitrevert commit我唯一的选择吗?

Cod*_*ard 5

git worktree

Git worktree于2007年contrib在git repo 的文件夹下引入并被调用new-workdir.


例如:

git worktree add <second path>
Run Code Online (Sandbox Code Playgroud)

将在您的计算机上创建另一个文件夹,允许您同时在不同的分支上工作.

git worktree 将创建2个单独的工作文件夹,彼此分开,同时指向同一个存储库.

这将允许您对新工作树上的任何实验进行操作,而不会对存储库本身产生任何影响.在附加图像中,您可以看到有2个单独的工作文件夹,但它们都使用单个存储库并共享内容.

以下是有关如何创建新工作树的示例以及它的结果:

在此输入图像描述


我可以在不同的分支机构中制作许多藏匿处吗?

是的,你可以,但你想避免它.您可以将藏匿处弹出到不同于最初放置源的分支.

如果没有,那么什么是藏匿的替代方案?

如上所述 - 使用worktree

提交和还原提交,我唯一的选择吗?

再次:如上所述 - 使用worktree