Git:将现有存储库从 PC 移动到服务器,从服务器克隆

发布于 2024-09-26 21:32:20 字数 355 浏览 5 评论 0原文

我的本地计算机上有一个现有的 Git 存储库。我想将该存储库移至我的 Web 服务器,然后在本地计算机上使用 git clone 来从服务器查看我的存储库。我计划在本地计算机上进行开发并将更新推送回服务器。我可以从本地计算机通过 ssh 连接到服务器,但反之则不行。我该怎么办?我认为 git bundle 应该以某种方式使用,不过,当我尝试在服务器上 git clone 我的包时,我收到了“警告:远程 HEAD 引用不存在的引用,无法签出”错误。我的本地计算机运行 OS X,服务器运行 Linux。

I have an existing Git repository on my local machine. I would like to move that repository to my web server, then git clone on my local machine to check out my repository from the server. I'm planning on then developing on my local machine and pushing updates back to the server. I can ssh from my local machine to the server, but not vice versa. How should I go about this? I think git bundle should be used somehow, though when I tried to git clone my bundle on my server, I got a "warning: remote HEAD refers to nonexistent ref, unable to checkout" error. My local machine is running OS X, the server is running Linux.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

赠我空喜 2024-10-03 21:32:20

在 Linux 服务器上的新目录中执行以下操作:

git init --shared --bare

然后在本地计算机上:

git remote add origin server:path/to/repo
git push --all origin

之后,服务器将拥有存储库的完整副本,您将能够对其进行推送和拉取。当您在本地已有一个克隆时,无需从服务器检查另一个克隆。

On the Linux server, in a new directory do:

git init --shared --bare

Then on your local machine:

git remote add origin server:path/to/repo
git push --all origin

After that, the server will have a full copy of the repository, and you will be able to push and pull to and from it. There's no need to check out another clone from the server when you've already got one locally.

黎夕旧梦 2024-10-03 21:32:20

使用“git Push --all origin”代替“git Push origin master”,这样您就可以移动所有分支,而不仅仅是主分支。

Instead of "git push origin master" use "git push --all origin" so that you move over all branches and not just the master branch.

甜柠檬 2024-10-03 21:32:20

怎么样:

local> cd my_repo.git
local> git remote add origin user@host:/path/to/my_repo.git
local> git config branch.master.remote origin
local> git config branch.master.merge refs/heads/master
local> git push origin master

这会将数据从本地存储库发送到您的服务器。然后执行以下操作:

local> cd ..
local> git clone user@host:/path/to/my_repo.git my_repo2.git

然后您将从服务器克隆。满意后,您可以删除原始存储库,并可能重命名第二个存储库。

How about this:

local> cd my_repo.git
local> git remote add origin user@host:/path/to/my_repo.git
local> git config branch.master.remote origin
local> git config branch.master.merge refs/heads/master
local> git push origin master

That will send the data from your local repo to your server. Then do this:

local> cd ..
local> git clone user@host:/path/to/my_repo.git my_repo2.git

Then you will have cloned from the server. When satisfied, you can get rid of the original repo, and possibly rename the second one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文