我有一个回购:
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
。
我不希望这种情况发生:(
我想让原始的.git
repo/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文件夹存储到自定义位置,而不是项目的根目录。