我在使用Git时遇到了一些问题。
我已经有一个托管在Digital Ocean Droplet上的实时站点。我想将代码推送到github仓库中,然后从本地进行所有开发。我会将我的本地代码推送到github,然后通过从github提取来对实时站点进行更新。
但是,我在起步时遇到了一些麻烦。
我已经创建了存储库,并且在项目上做了快速的git init
。我已经添加了文件,进行了提交,然后添加了存储库。但是,当我运行git push
时,我得到了:
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use
git push --set-upstream github master
因此,我运行了git push --set-upstream github master
。它给了我这个错误:
! [rejected] master -> master (fetch first)
error: failed to push some refs to 'https://github.com/WordsofDefiance/davidaccomazzo.com.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
有人可以帮助我创建此初始回购承诺吗?我想我会缺少一些超级基础的东西。
编辑:我在推时最终使用了--force
,它起作用了。谢谢。
答案 0 :(得分:1)
这是一个愚蠢的答案,但是,您使用的存储库似乎不存在,您创建了它吗?
如果是这样并且它不是公开的,那么它真的是空的吗? git push --force可能有用。
答案 1 :(得分:0)
要回答有关上游错误的第一个问题,这是因为要在没有任何其他参数的情况下运行git push
,需要设置默认的远程分支。这样git便知道将代码发送到哪里。通过将上游设置为github master
,实际上是在告诉git在运行git push github master
时运行git push
。有关其工作原理的详细信息,here。
对于第二个问题,silmari可能是正确的,因为您的远程存储库(在GitHub上)实际上不是空的。如果您最初在GitHub上建立存储库时选择添加许可证文件(例如MIT)或.gitignore
文件,则可能会发生这种情况。在这种情况下,GitHub为您创建了一个提交,您在本地没有该提交,这就是发生冲突的地方。
因此,我首先要做的是查看GitHub存储库的提交历史记录,并查看那里是否存在本地没有的提交。因为您已经在本地进行了提交,所以可能必须对远程分支进行git rebase才能“清理”本地历史记录,并能够进行推送(而无需使用强制推送)。
同样,大部分是我的猜测。希望对您有所帮助。