当前位置:  开发笔记 > 运维 > 正文

git push/clone到新服务器

如何解决《gitpush/clone到新服务器》经验,为你挑选了4个好方法。

我只是在学习git而且有些东西我无法解决.在我的Mac上本地创建和使用git存储库后,我可以将副本推送到其他地方的另一台服务器吗?我在防火墙后面,所以很遗憾我无法git clone从另一台机器运行.



1> hobbs..:

    git remote add 名字 网址

    git push 名称 分支

例:

git remote add origin git@github.com:foo/bar.git
git push origin master

请参阅文档git push- 您可以将远程设置为给定分支的默认远程; 如果你不这样做,这个名字origin很特别.只有git push一个人会像git push origin thisbranch一样(对于你所在的任何分支).


使用`git init --bare/foo/bar.git`在服务器上创建一个空的裸存储库就足够了,然后在那里推送你的本地存储库(就像在这个答案中一样).您无需将带有zipped/tared的任何内容传输到服务器.
作为**推送克隆的更接近的效果**而不仅仅是*pushinh _branch_*:[`git push -u --all`](http://linux.die.net/man/1/git -push)我们可以省略`origin`,因为它是推送的默认假名,`-u`也会跟踪远程分支.

2> Grant Limber..:

你可能想要做的是首先在你的本地机器上彻底克隆存储库

git clone --bare /path/to/repo /path/to/bare/repo.git  # don't forget the .git!

现在,使用tar/gzip或您喜欢的任何归档工具归档新的repo.git目录,然后将归档文件复制到服务器.

取消归档服务器上的repo.然后,您需要在本地存储库上设置一个远程:

git remote add repo-name user@host:/path/to/repo.git #this assumes you're using SSH

然后,您可以使用以下命令从远程仓库推送和拉出:

git push repo-name branch-name
git pull repo-name branch-name


".git"只是识别裸git repo的非官方标准
你能解释一下"不要忘记.git!"的评论吗?将.git添加到文件夹末尾的重点是什么?我应该什么时候这样做?仅限会议?
我没有遵循这个想法...这不会打破设置git服务器的整个目的,实际上*使用它来"转移/复制/保持同步/备份"而不是*压缩*并使用其他一些方法?
@Cawas你只需要手动压缩/复制/提取一次回购.之后你只需要git push and pull.

3> Greg Hewgill..:

有许多方法可以移动存储库,git bundle如果网络可用性不足,这是一种很好的方法.由于Git存储库实际上只是一个充满文件的目录,因此您可以通过以.git最适合您的方式复制目录来"克隆"存储库.

最有效的方法是在某处使用外部存储库(使用GitHub或设置Gitosis),然后git push.



4> 小智..:
remote server> cd /home/ec2-user
remote server> git init --bare --shared  test
add ssh pub key to remote server
local> git remote add aws ssh://ec2-user@:/home/ec2-user/dev/test
local> git push aws master

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有