问题标签 [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.
git - 我可以为空的 Git 存储库创建工作树吗?
我有一个空的 Git 存储库(即它还没有提交)。有没有办法为此仓库使用git worktree add
命令(带--no-checkout
选项)创建工作树?我的意思是指示 Git 不要将新创建的工作树与任何相关联HEAD
。
git - 一个 git worktree 是否支持多个分支?
根据文档,每个都git worktree
提供一个branch
(dev
/ feature
/prod
等等),但对我来说听起来也不合理,每个分支都有自己的worktree
,因为它会创建许多文件夹,并且在某些时候可能会令人困惑。
一个git worktree
可以支持多个branches
吗?例如所有属于的分支,feature
然后在当前相关的内容之间切换?这是正确的方法吗?
git - 如何合并来自另一个工作树的分支
我有 2 个银行的仓库:master 和 b1。
目前,结帐分支是 master(在主工作树中)。
我创建了一个工作树(称为 b1_worktree)并默认签出 b1 分支。
所以现在我可以在不使用“checkout”命令的情况下在两个分支上工作。
这是我的问题:
- 更改 b1_worktree 中分支 b1 中的代码后,如何将 b1 从 b1_worktree 合并到主工作树中的 master 分支?
- 是否可以将 b1 内容从 b1_worktree 更新到主工作树?
git - git diff --cached:未知选项“缓存”
在 Docker 容器内的 Git 工作树目录中,error: unknown option `cached'
运行git diff --cached
.
Git 的版本是 2.32.0,它明确指出它应该存在。
当切换回主存储库并将其挂载到容器中时,该命令可以正常工作。
这里发生了什么?
git - How to split changes in multiple linked working trees?
On my local repo I have the main working tree full of many unrelated changes.
I want to split my messy index into many distinct tidy linked worktrees, so I can isolate changes by concern and handle them without getting insane or rely on memory.
What's the minimal amount of steps to redistribute chunks among different worktrees?
Example
I would
- use
git stash save Concern001 -p
, to interactively select the changes I want to put into Concern001 - to then
git stash apply Concern001
into my worktree- (created via
git worktree add worktree/Concern001
).\
- (created via
But this approach fails in the case I want to move untracked changes to another worktree. Trying git stash save Concern001 -p -u
Can't use --patch and --include-untracked or --all at the same time
Moreover, the presence of the worktree/
directory among the untracked files makes the stashing error prone; although I can fix this adding /worktree
to .gitignore
.
For now I tried:
git add -p
to select the changes to isolategit commit -m 'Concern001'
=> commit-SHAcd worktree/Concern001
git cherry-pick <commit-SHA>
git reset HEAD^
to get again the changes in the worktree indexcd ../..
(back to main worktree)git reset HEAD^
..... but this will restore the changes I just moved away; and if I instead usegit reset HEAD^ --hard
then I would loose all the other temporary changes from the index.
This approach look verbose, cumbersome and error prone.
Is there a sequence of git
commands to select specific changes and move them between worktrees, without having to do too many intermediate operations❓</h3>
Ideally I'd use git stash
but doesn't cover all the use cases.
git - git main 和链接工作树之间的区别?
git中的“主工作树”和“链接工作树”有什么区别吗?如果有,有什么区别?
Git 有一个名为git-worktree的子命令,用于在一个存储库中管理多个工作树。使用此命令克隆时:
该目录main
将包含“主工作树”。之后,可以使用创建一个新的工作树git worktree add temp
。temp
现在是“链接工作树”。
有什么方法可以区分这两种类型吗?一件事应该是main
不能以与temp
( git worktree remove temp
) 相同的方式删除。但是还有其他可能/不可能与一种工作树而不是另一种有关的事情吗?
git - 在 git 工作树中查找顶级目录时,为什么我会得到“致命:不是 git 存储库...”?
我目前正在修补 git worktrees,突然遇到了一个问题。我尝试了这里描述的有和没有裸克隆的两种方法:
https://infrequently.org/2021/07/worktrees-step-by-step/ 和 https://svij.org/blog/2017/04/14/mit-git-worktree-mehrere-arbeitsverzeichnisse-managen/ (格)
我当前的目录设置如下所示:
当我输入 egworktree-master
并git rev-parse --show-toplevel
使用 git version运行时2.17.1
,它正确地将我指向工作树根目录。
当我现在在基于ubuntu:20.04
运行版本2.25.1
的 git 的 Docker 容器中执行相同操作时,我得到了
这是这个特定版本的问题吗?或者 git 是否使用了一些在 Docker 容器中不起作用的奇怪魔法?
是否有解决方法来获取工作树顶层目录?
docker - 如何将 Docker 与 git worktree 一起使用
我最近开始使用git worktree
它,它很棒。但是,我不确定如何使它与 Docker 一起使用。这是我的流程:
repo-a
有一个 dockerFile 来构建一个本地容器。我创建一个像
git worktree add branch-a
这样的新工作树将创建一个名为branch-a
branch的文件夹branch-a
。我收到了要审查的 PR,我需要切换到
branch-b
. 所以我回到我的--bare clone
回购,我这样做了git worktree add branch-b
。并 cd 进入该文件夹。我的 docker 容器没有捕获新文件,因为它仍然链接到文件
branch-a
,如果我这样做docker-compose up -d
,branch-b
它会抛出一个错误,说The container name "/<name here>" is already in use by container "31344e3448df72e032c42a96d078ea57c11a75023d197e9ab0683e7c773f54e4"
如何让我的 docker 容器监听不同文件夹的更改?
谢谢
git - 如何在 VS-code 中使用 Git 工作树?
我很难理解的东西:
如何在 VS-code 中使用 git 工作树?
我显然不能让它工作。
我试过使用命令行......但是当我尝试结帐到所需的分支时,它告诉我:
错误:命令失败:C:\Program Files\Git\cmd\git.exe -c core.longpaths=true -c core.quotepath=false -c color.ui=false checkout sequences --
致命的:“序列”已经在
当我在命令行中更改文件夹时,就像在这么多视频上(在 vs-code 之外)......它保持相同的分支签出。
有人可以帮助我或将我指向一个资源/博客,说明如何继续或如何配置以使 git worktree 与 vs-code 一起工作?