git init --separate-git-dir 覆盖现有的 .git 文件夹
git init --separate-git-dir overwrites the existing .git folder
我有一个仓库:
mkdir test
cd test
git init
touch hi.txt
git add .
git commit -m 'first test add'
git status
其中我想添加一个单独的 git 存储库来管理不同的工作:
git init --separate-git-dir .git2
运行 这个命令,但是用存储符号链接的文件覆盖 .git
。
我不希望这种情况发生:(
我希望原来的.git
repo/folder和.git2
和睦相处...
这样我就可以 运行 命令如下:
git --git-dir=.git2 add new_file.txt
谢谢!
--separate-git-dir
选项的目的不是在同一存储库中为您提供多个 .git
目录,而是 将 .git
目录与你的工作树.
Instead of initializing the repository as a directory to either $GIT_DIR
or ./.git/
, create a text file there containing the path to the actual repository.
If this is reinitialization, the repository will be moved to the specified path.
例如,这允许您将 .git
目录移动到单独的存储位置(例如,出于 space 或备份原因),同时仍将您的工作树保留在原处。
如果您想将多个独立的存储库(每个都有自己的历史记录)合并为一个,您可能需要查看 submodules。
解决了问题:
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!'
简奇。但这正是我所需要的...
您使用了错误的标志。 --separate-git-dir 标志用于将您的 .git 文件夹存储到自定义位置,而不是您项目的根目录。
我有一个仓库:
mkdir test
cd test
git init
touch hi.txt
git add .
git commit -m 'first test add'
git status
其中我想添加一个单独的 git 存储库来管理不同的工作:
git init --separate-git-dir .git2
运行 这个命令,但是用存储符号链接的文件覆盖 .git
。
我不希望这种情况发生:(
我希望原来的.git
repo/folder和.git2
和睦相处...
这样我就可以 运行 命令如下:
git --git-dir=.git2 add new_file.txt
谢谢!
--separate-git-dir
选项的目的不是在同一存储库中为您提供多个 .git
目录,而是 将 .git
目录与你的工作树.
Instead of initializing the repository as a directory to either
$GIT_DIR
or./.git/
, create a text file there containing the path to the actual repository.If this is reinitialization, the repository will be moved to the specified path.
例如,这允许您将 .git
目录移动到单独的存储位置(例如,出于 space 或备份原因),同时仍将您的工作树保留在原处。
如果您想将多个独立的存储库(每个都有自己的历史记录)合并为一个,您可能需要查看 submodules。
解决了问题:
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!'
简奇。但这正是我所需要的...
您使用了错误的标志。 --separate-git-dir 标志用于将您的 .git 文件夹存储到自定义位置,而不是您项目的根目录。