如何将本地Git存储库移动到远程Git存储库

Mau*_*imo 61 git

我有我的本地机器上的各种Git项目.我有一台服务器,我想用作我的远程Git存储库.如何在保持历史记录完整的同时将本地Git存储库(项目)移动到我的服务器?

谢谢!

编辑:谢谢你所有的好答案.我选择的回答对我有限的GIT知识有意义.

编辑#2:我注意到我的原始答案选择没有复制我的标签.git push --mirror <path>复制标签.

kni*_*ttl 64

在您的服务器上创建git存储库作为裸存储库

git init --bare repo.git
Run Code Online (Sandbox Code Playgroud)

然后,推送本地存储库的提交

git push --mirror ssh://yourserver/~/repo.git
Run Code Online (Sandbox Code Playgroud)

  • 关于这个有很多废话。感谢您的最佳和简便方法! (2认同)

Dor*_*mer 59

首先,在服务器上创建一个git仓库

git init --bare /path/to/repo
Run Code Online (Sandbox Code Playgroud)

然后将远程仓库添加到本地仓库(ssh://或https://)

git remote add origin ssh://server/path/to/repo
Run Code Online (Sandbox Code Playgroud)

并且,推送文件/提交

git push origin master
Run Code Online (Sandbox Code Playgroud)

最后,推送标签

git push origin --tags
Run Code Online (Sandbox Code Playgroud)

  • 我更喜欢这个,因为--mirror选项(来自git help :)"新创建的本地引用将被推送到远程端,本地更新的引​​用将在远程端强制更新,删除的引用将从远程端删除". (2认同)

iwe*_*ein 11

Ralf Wernders博客上有一个很好的教程.假设您知道如何在服务器上创建存储库,或者已经完成了:

git remote add <remote> <url>
Run Code Online (Sandbox Code Playgroud)

将远程添加到本地存储库.<remote>是遥控器的名称(通常是"原点").<url>是具有写访问权限的存储库的URL(如git @ ...)

git push <remote> <branch>
Run Code Online (Sandbox Code Playgroud)

将提交移动到原点.<branch>是你推动的分支(通常是"主人").