已关闭,此问题需要更focused。它目前不接受回答。
**想改善这个问题吗?**更新问题,使其只关注editing this post的一个问题。
17天前关闭
Improve this question
在我的远程服务器上使用git进行版本控制之后,我现在希望在远程和本地文件系统上使用git进行版本控制。
到目前为止,我这样做的方法是:
1.创建远程裸存储库作为“保存”目录:
- 创建目录
mkdir /save
- 为此项目创建保存存储库
mkdir /save/projectName
- 输入项目存储库
cd /save/projectName
并将其初始化为裸git init --bare
1.在本地克隆远程保存库,添加、编辑和提交,然后推回远程存储:
- 创建一个本地开发目录
mkdir /webDev
并输入cd /webDev
- 克隆此项目的远程保存`git clone user@host:/save/projectName
- 添加文件,然后运行
git add *
,编辑它们,然后提交`git commit * -m“Update”。 - 使用
git push origin master
将更改推送到远程保存存储库
1.将更新的保存存储库克隆到远程计算机上的开发存储库中:
- 进入服务器目录
/srv
和开发子目录/srv/dev
- 使用
git clone /save/projectName
克隆远程保存的存储库
1.检查开发站点是否按预期工作,然后对生产目录重复(3):
- 在生产目录
/srv
中运行git clone /save/projectName
这一切都很好,但是我担心的是内存占用有3个目录相同的内容,在这之上,对于多个项目,将增加3*N的项目数N。
我读过很多关于使用git的在线教程和网站,但我还没有能够清楚地遵循任何。人们经常谈论使用分支,但我现在还不想考虑分支--只是克隆、推和拉。
我想我最好在我的本地机器上使用动态IP来拥有裸/save
存储库,然后以某种方式将内容复制到远程机器的开发和生产目录。这会将每个项目的3个目录减少到2个,这样会更好,但是我还没有找到一种方便地从动态IP地址git clone
的方法。
总而言之,我能想到的几个问题可以解决我的问题:
1.克隆的git仓库是否占用与原始文件相同的内存空间?还是git以某种方式使内存大小更简洁?
1.是否有一种行业标准的方法来设置本地、远程开发和远程生产位置的进程,以解决内存问题?
1.有没有一种方法可以在我的本地机器上托管裸git repo,然后以某种方式将它们移动到远程dev和prod位置?
任何方向与上述问题,或可能的误解,我可能有,沿着解释,将不胜感激。
1条答案
按热度按时间fdbelqdn1#
我没有意识到“记忆”的问题。只有磁盘空间问题。
通常的工作流是远程的。默认情况下,工作树不会被推送修改。
最佳实践是远程**bare repository**,带有
post-receive
钩子,可以配置为执行您需要的任何命令。就像去你实际的仓库(开发仓库或者生产仓库,取决于远程仓库)并执行
git pull
(从本地开发环境中推送到裸仓库的提交更新工作树)。如果你的开发/生产仓库在同一个远程服务器上(你的裸仓库在那里,你要推到的地方),那么你可以使用
git worktree
(也就是present here)来保持一个实际的仓库,和两个 checkout 的工作树。