我有以下项目结构:
MyProgram /
的.git /
MyProgram /
File.c
File.h
MainFile.c
MyProgram.exe
MyStaticLibrary /
MyStaticLibrary /
ImportantFile.c
ImportantFile.h
在 Microsoft Visual Studio 2015 中,我将 MyProgram 与 MyStaticLibrary 相关联,因此我可以使用 ImportantFile.c / h 在我的多个项目中。然而,当我把这个提交给GitHub时,我发现我无法找到add
MyStaticLibrary
到回购的方式。如果我尝试,它会出现以下错误:
fatal ../MyStaticLibrary is outside repository
我不想做任何合并或手动复制粘贴,因为如果我有100个库怎么办?那么你就不能在每次提交时复制粘贴。另一个选择是我不在我的存储库中包含MyStaticLibrary
,但是那些希望编译我的代码的人不能这样做。
我该怎么办?
答案 0 :(得分:1)
对该错误消息的直接解释是正确的:您无法在存储库“上方”添加文件。
理想情况下,您可以将MyStaticLibrary/
版本与依赖它的所有项目分开,并使用依赖项管理器或Git submodule
将源代码转换为依赖它的项目。如果您有100个库都依赖于这样的子模块,那么您可能希望编写一个脚本来使它们全部都是最新的。
我不想进行任何合并或手动复制粘贴,因为如果我有100个库怎么办?那么你不能只在每次提交时复制粘贴。
这种本能是好的;只需对手动复制/粘贴说不。
另一个选择是我不在我的存储库中包含MyStaticLibrary,但是那些希望编译我的代码的人不能这样做。
同样,避免让项目需要不在存储库中或随时可用的东西。
答案 1 :(得分:0)
除非您已经创建了一些要保存的历史记录,否则可能最简单的事情就是删除.git
子目录并在正确的目录中重做init。
如果你有git历史记录,大概你也可以做以下事情:
$ mv .git ../
$ cd ..
$ git add . --all
$ git status // => you can see all the files recognized as renamed 100%
$ git commit -m "Moves repo to root directory."