我刚刚启动了一个新的git项目,该项目到目前为止已存储在本地Mac上。现在,该项目已进行了一些修订,我想将这些更改推送到网络位置(我在本地网络中有一个Time Capsule,我希望在其中维护我所有代码的主副本,而不是推送到Github)。
我目前正在阅读Pro Git书,但是有些地方没有解释。我需要解释的要点是git项目和git存储库之间有什么区别;还是同一件事?
这是我想要的结构。
我所有项目的远程根目录(本地)都将是:
/Volumes/Capsule/dev/github/...
在这里,我想要我的项目,例如:
/Volumes/Capsule/dev/github/canary
/Volumes/Capsule/dev/github/guinea
那么,金丝雀和几内亚会成为仓库或项目吗?
我知道您可以使用以下格式的命令添加远程:git remote add
我正在工作的示例是:
git remote add local_proj /opt/git/project.git
但是什么是project.git?(或者这是一个错字?不应该是... / project / .git)
我的canary项目的根文件夹是〜/ dev / github / canary,而git管理文件位于〜/ dev / github / canary / .git中
那么金丝雀项目的等效命令是什么?
我从〜/ dev / github(canary在此文件夹中)尝试了以下内容
git remote add canary /Volumes/Capsule/dev/github/canary.git
但收到以下错误消息:
fatal: Not a git repository (or any of the parent directories): .git
您在git remote add中指定的引用是针对每个项目还是针对每个存储库?我会为金丝雀和几内亚提供2个差异引用,还是仅在1个偏远的地方引用金丝雀和几内亚?
因此,经过大量的实验,我发现了这个非常简单的问题的解决方案,在单个位置的任何地方似乎都没有得到足够的解释。
(可能会与“本地”术语混淆。在本文中,“本地”仅指Mac内部磁盘上项目的本地位置,而不是网络位置。“本地”(大写的“ L”) ,指的是协议。远程存储库将使用本地协议创建,例如ssh或http。
local project location: ~/dev/github/...
remote location: /Volumes/Capsule/dev/github/...
因此,仅重申一下,问题在于需要将项目推到远程位置。该远程位置/仓库实际上还不存在。
您要做的第一件事是创建远程位置。因此,继续上面的示例,我需要在远程位置创建远程canary项目。另外,由于此远程位置不是工作目录,因此应将其创建为裸存储库:
1)创建远程文件夹:
cd /Volumes/Capsule/dev/github
mkdir canary.git
(NB如Pro Git 2nd Ed中第132页所示,裸仓库以.git后缀命名,例如canary.git)
2)初始化远程位置:
cd canary.git/
git init --bare --shared
Initialized empty shared Git repository in /Volumes/Capsule/dev/github/canary.git/
(--shared选项是必需的,以确保在远程路径上正确创建了正确的写许可权,使您可以将其推送到它,而不会发生访问错误)
现在创建了远程裸仓库,现在可以将其配置为本地现有项目(canary)的推送目标。
3)将远程仓库添加到本地项目金丝雀
回到您的本地项目
cd ~/dev/github/canary
使用git remote add添加远程
git remote add origin /Volumes/Capsule/dev/github/canary.git
并检查你做了什么
git remote -v
origin /Volumes/Capsule/dev/github/canary.git (fetch)
origin /Volumes/Capsule/dev/github/canary.git (push)
“起源”现在是对本地金丝雀回购的远程引用。
4)将本地Canary项目推送到远程
git push origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 281 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /Volumes/Capsule/dev/github/canary.git
* [new branch] master -> master
在这里,本地项目被推送到新的本地远程位置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句