gitinit——单独的git-dir覆盖现有的.git文件夹



我有一个回购:

mkdir test
cd test
git init
touch hi.txt
git add .
git commit -m 'first test add'
git status

其中我想添加一个单独的git repo来管理不同的工作:

git init --separate-git-dir .git2

但是,运行此命令会用存储符号链接的文件覆盖.git

我不希望这种情况发生:(

我想让原始的.gitrepo/folder和.git2和谐相处。。。

这样我就可以运行以下命令:

git --git-dir=.git2 add new_file.txt

谢谢!

--separate-git-dir选项的目的不是在同一存储库中为您提供多个.git目录,而是将.git目录与工作树解耦。

来自文件:

与其将存储库初始化为$GIT_DIR./.git/的目录,不如在其中创建一个包含实际存储库路径的文本文件。

如果这是重新初始化,则存储库将移动到指定的路径。

例如,这允许您将.git目录移动到一个单独的存储位置(例如,出于空间或备份原因(,同时仍将工作树保留在原来的位置。

如果您想将多个独立的存储库(每个存储库都有自己的历史记录(合并为一个存储库,您可能需要查看子模块。

用解决了问题

git --work-tree=. --git-dir=git2 init

不使用--separate-git-dir标志

现在每个后续命令都需要:

git --work-tree=. --git-dir=git2 status
git --work-tree=. --git-dir=git2 add .
git --work-tree=. --git-dir=git2 commit -m 'yay!'

詹基。但这正是我所需要的。。。

您使用了错误的标志--单独的git-dir标志是将.git文件夹存储到自定义位置,而不是项目的根目录。

最新更新