如何在不丢失git历史记录的情况下将现有本地存储库推送到新的远程存储库

时间:2018-11-28 14:43:40

标签: git

我有一个有一些历史的本地git回购。
我想将其添加到我的远程git服务器中:

# On my server, I create a remote repo
git init project.git --bare --shared

# On my local computer, I add the remote repo
git remote add origin user@server:/srv/git/projet.git

# Try to push
git push origin master
# error: src refspec master does not match any.
# error: failed to push some refs to 'user@server:/srv/git/projet.git'

# Try to pull
git pull origin master
# fatal: Couldn't find remote ref master
# fatal: the remote end hung up unexpectedly

如果我先克隆远程仓库,然后复制源代码,我将丢失git历史记录。
有人知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

我想您已经在本地正确管理了您的仓库(git add,commit等),所以这可能不起作用,因为在源(您的服务器)上还没有分支主服务器,因为它是裸机,您没有最初不是从服务器克隆存储库。

您应该尝试

git push -u origin master

它也应该推送并创建远程master分支

来自文档https://git-scm.com/docs/git-push#git-push--u

  

对于每个最新的或成功推送的分支,添加上游(跟踪)引用,该引用由无参数git-pull [1]和其他命令使用。有关更多信息,请参见git-config [1]中的branch..merge。