git push/clone到新服务器

Jac*_*cob 126 git

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

hob*_*bbs 134

  1. git remote add 名字 网址
  2. git push 名称 分支

例:

git remote add origin git@github.com:foo/bar.git
git push origin master
Run Code Online (Sandbox Code Playgroud)

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

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

Gra*_*erg 75

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

git clone --bare /path/to/repo /path/to/bare/repo.git  # don't forget the .git!
Run Code Online (Sandbox Code Playgroud)

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

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

git remote add repo-name user@host:/path/to/repo.git #this assumes you're using SSH
Run Code Online (Sandbox Code Playgroud)

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

git push repo-name branch-name
git pull repo-name branch-name
Run Code Online (Sandbox Code Playgroud)

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

Gre*_*ill 9

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

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


小智 7

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@<hostorip>:/home/ec2-user/dev/test
local> git push aws master
Run Code Online (Sandbox Code Playgroud)