问题标签 [git-worktree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
88 浏览

git - 从我的 git 服务器结帐/克隆多个分支

我的 git 服务器上有这种情况:

给出输出:

如何同时将分支 shared_data 和 common_data 检出单独的本地文件夹中:

在我的本地工作站上?我已经阅读了许多帖子,但不知何故我不知道如何为此使用 work_tree。

谢谢

燃气轮机

0 投票
0 回答
50 浏览

git - git worktree 和重置保管箱共享文件夹

我的 Dropbox 文件夹中有一个项目仓库。从那里,我与不使用 git 的合著者分享它。

共同作者的 Dropbox 帐户已满。合著者删除了一个大文件以节省空间,但过去的提交包含该文件。问题是那个.git将大文件保存在 repo 历史中的目录仍然太大。

我希望遵循这里的建议,使用git worktree链接的工作树项目-repo-shared。这将是 Dropbox 中的新共享文件夹(它不应该有.git目录,因此要小得多)。

问题是如何在我的合著者磁盘上的文件中不产生冲突。这些是我应该计划采取的步骤吗?

(1) 取消共享 Dropbox 中的 project-repo 文件夹(提前告知合著者)

(2) 做git worktree add -b shared-in-dropbox ~/Dropbox/project-repo-shared

(3) 在 dropbox.com 中,与共同作者共享新文件夹 project-repo-shared

(4) 合著者的机器同步新的project-repo-shared文件夹后,可以删除project-repo,瞧!(正确的?)

更好的想法非常欢迎!

0 投票
2 回答
1585 浏览

git - 如何在 Git 中的两个独立工作树之间切换分支?

我为“开发”分支添加了一个链接的工作树。所以我的工作树是这样的:

- “项目”工作树 -> 主分支
- “project_develop”工作树 -> 开发分支

在这种情况下,我想做的是在“project_develop”工作树上签出 master 分支。但据我所知,不可能在不同的工作树上签出同一个分支。我能想到的唯一方法是添加一个新的临时分支。

如果有人向我展示另一种方式,我将不胜感激。
谢谢!

0 投票
1 回答
258 浏览

git - 为什么我的工作树中的 HEAD 指向 master 中的顶部提交?

我使用创建了一个工作树git worktree add,它按预期工作了几天。今天想看看上个版本的一些代码,所以暂时分离了HEAD

在我找到我需要的东西之后,我试图回到我的工作树分支的顶端:

但是现在,HEAD指向我本地master分支中的最高提交。例如:

显示master.

任何想法为什么会发生这种情况或如何解决它?


编辑

我还看到一些奇怪的、不一致的行为。例如,这个:

0 投票
1 回答
52 浏览

git - 将链接的工作树放在主工作树的 .gitignore 目录下是否安全?

将链接的 git 工作树放在主 git 工作树的 .gitignored 子目录下是否安全?

例如,在我会做的主工作树的根目录中

https://spin.atomicobject.com/2016/06/26/parallelize-development-git-worktrees/上的网页说链接的工作树“应该在您的主存储库目录之外的某个地方”,但没有说明原因。如果它在 .gitignored 目录下,将它放在主工作树中会破坏 git 期望的任何不变量吗?

谢谢!

0 投票
1 回答
242 浏览

linux - 如何在虚拟机的主机-来宾文件系统上使用 Git 工作树

我在 Windows 的本地存储库中打开了一个新工作树,但无法在我的 Linux 虚拟机中编译它,因为“.git”包含一个以“C:/Git”开头的完整路径,而虚拟机没有认出。

我有一个 git 存储库,我经常需要在 Windows 和 Linux 上进行交叉编译。我最初在我的 Windows 系统中克隆了存储库,并将我的“C:”驱动器作为共享文件系统安装在虚拟 Ubuntu 机器中。这通常工作得很好。

当试图在 git 中打开一个新的工作树时,链接的存储库没有它自己的“.git”文件夹,而是一个指向原始存储库的“.git”文件夹的链接,这被保存为绝对路径,在以下格式:

尝试运行时:

我收到以下消息:

由于这个限制,我的几个脚本失败了。

有什么方法可以“欺骗”Linux 识别完整路径并正确识别原始 git 存储库?

0 投票
1 回答
101 浏览

git - 我怎样才能对签出相同存储库的 git 子模块进行重复数据删除?

我想在我自己的 repo 中跟踪一个大型 git repo 的两个不同分支作为子模块。例如,来自https://github.com/nixos/nixpkgs-channelsnixos-unstable的andnixos-19.03分支。

有没有办法添加子模块,以便 git 避免两次获取 repo 并避免在本地存储它的两个副本?

0 投票
0 回答
44 浏览

git - 无法删除已消失的本地工作树分支

我无法删除已消失的本地工作树分支。关键字是本地工作树分支消失。即,问题不能删除不存在的分支?和我的不匹配。

当我尝试在调用之前删除工作树文件夹时会发生这种情况git branch -d。观察:

在此处输入图像描述

更新:

git worktree prune可以删除工作树,但branch-b仍然存在:

如何删除branch-b我不再想要的?

0 投票
1 回答
49 浏览

python - 如何从 git worktree 命令生成多个文件夹?

这是我的数据框文件,其中包含 CommitId:

我需要检查每个提交并将代码版本复制到另一个目录中,因此对于此示例,我需要一个目录中的每个代码版本的 11 个,因此 11 个具有不同名称的目录

我试过这个示例代码:

但这不切实际,因为对于这个例子我有很多提交我有 11 次提交给其他人我有 100 多次提交。所以我尝试了这段代码,但它什么也没返回:

PS:我将提交放在一个列表中进行测试,然后我将从数据框中读取

0 投票
0 回答
51 浏览

git - 从工作树提交更改 .git/config 中的远程 url

当我尝试从工作树提交时,repo 配置文件更改为不正确的远程 url。当我从主工作树提交时,它会改回正确的。

从我在主分支的回购中,我通过以下方式创建了一个工作树:

当我准备好提交时

然后在 /path/to/my/master/.git/config 文件中

改为

然后所有使用遥控器的工作都失败了......