随着所有git对我们曾经习惯使用SourceSafe或MKS等的现有存储库的广泛宣传,我决定将它用于我的项目。
在您工作的相同文件夹中托管您的存储库(也就是.git)是不好的做法 - 您可能会意外覆盖您的存储库,我认为我可以将其托管在我的编码目录之外。在google上搜索建议时,我被引导到stackoverflow - 我建议将符号软链接(连接)我的外部.git存储库到我的编码目录。所以,这就是我做的事情
C:/my_codebase/.git was where i had done and init and created my git repo
c:/eclipseWorkSpace/my_codeProject was where I ran these git commands using the bash git shell
My Git Install was Git-1.9.0-preview20140217
步骤1尝试创建一个指向我真实仓库的快捷方式或符号链接,希望git会被误认为它在我的代码库中使用了一个真正的.git文件夹
$ ln -s 'C:/my_codebase/.git' '.'
ln: creating symbolic link
./.git' to
C:/tasha_codebase/.git': Permission denied
第2步 - 我认为它还没有被创建 - 注意事实上它已经创建了一个FRESH .git目录,它甚至没有符号链接/连接到我正在尝试的真实仓库 - 因此我在下面收到的消息想到再次执行命令,认为curr目录周围的单引号是错误的。
./.git' to
如果我是从git的制造商那里购买一辆汽车的消费者 - 很久以前我就会要求退款。至少汽车的DSL是直观的 - 你怎么想?你想要向右转,你将方向盘转向右边 - 你不会花几个小时搞清楚为什么它没有向右转。
那么,我做错了什么?
是否有一个DVCS仓库,其中有像GitHub这样的协作流程,允许外部工作目录 - 轻松 - 无需了解所有这些象征性的doodah变通办法?
毕竟这么多的想法就像工作一样 - 这使我们无法进行编码,就像玩游戏一样。
答案 0 :(得分:1)
work-tree和git-dir参数以及相应的环境变量怎么样?
git --work-tree=XXXX-checkout clone XXXX
会将.git中的内容放在XXXX中,并且工作目录的结帐将在XXXX-checkout中。如果您现在将环境设置为指向两个位置,那么
export GIT_WORK_TREE=$PWD/XXX-checkout
export GIT_DIR=$PWD/XXXX
然后你可以正常工作(公平地)结账。