将Git推送到私有仓库

55

我一直在本地开发一个web应用程序,并被要求将其推送到一个仅为此项目创建的空(只有readme文件)的私人repo。我对git比较新手,无法成功操作。

可以有人告诉我出了什么问题吗?

我首先使用命令行导航到本地应用程序的主文件夹,并初始化git。然后,我尝试使用以下命令克隆远程repo:

git clone git://github.com/somename/Web-App.git

但是我遇到了错误:

正在克隆到 'Web-App'... 致命错误:远程错误:存储库未找到。

我知道存储库在那里。我是否实际上需要先从远程克隆或拉取,或者是否有一种方法只推送到该存储库。

再次说明,我所要做的就是将我本地的文件推送到我被授予访问权限的特定存储库。

我非常感谢任何帮助。

6个回答

60

假设“yourWebApp”是您本地Web应用程序的文件夹。请将其更改为该目录

cd 'yourWebApp'

在文件夹中初始化Git

git init

现在将您的Github URL添加为远程仓库

git remote add origin git://github.com/somename/Web-App.git

这里的origin是您网址的简称

现在从Github存储库中拉取自述文件

 git pull origin master
现在把您的Web应用程序推送到GitHub存储库。
git push origin master

假设你在默认分支master中,需要拉取自述文件以将其与本地工作合并。如果你的GitHub存储库是空的,可以跳过拉取步骤直接将其推送到你的GitHub存储库。

另一方面,如果您想使用克隆,就不需要初始化,因为克隆会自动设置Git目录。 克隆还会设置您的远程Git URL。在这种情况下,您的工作流应该是

 git clone https://github.com/path/to/your/repo
 make some changes
 git add your changes
 git commit your changes
 git push

4
感谢您的帮助。我按照步骤操作,但在执行“git pull origin master”时出现错误。 致命错误:远程错误: 未找到存储库。 - irm
我在浏览器中输入了链接,它确实将我带到了我想要推送的仓库。我本地应用程序所在的文件夹需要与仓库的名称匹配吗?我没有创建我要推送的仓库,我只有权限推送到这个私有仓库。如果这有帮助的话。 - irm
4
感谢您一直陪伴在我身边。它没有要求我输入任何凭据。在执行命令:git remote add origin git://github.com/.../Web-App.git 后,它只是进入下一行并没有出现任何错误。 - irm
3
执行git remote -v命令后,它会输出正确的代码库。如果我执行git push origin master命令,则会出现以下错误: fatal: remote error: You can't push to git://github.com/name/Web-App.git Use https: //github.com/name/Web-App.git - irm
2
这个问题解决了吗?我遇到了一个类似的问题,可以在本地分支并将其推送到远程,但是私有repo就不行。 - The Stupid Engineer
显示剩余12条评论

22

我之前遇到了同样的问题。通过从Windows中删除旧凭据,我成功地解决了这个问题。

  1. 从开始菜单打开控制面板
  2. 进入“用户帐户”->“凭据管理器”->“管理Windows凭据”
  3. 删除与Git或GitHub相关的任何凭据

完成上述步骤后,问题就得以解决了。


请问您能具体说明一下您所采取的步骤吗? - Emmanuel Aliji

5

如果您想推送到私有存储库,您可能需要先fork它,将更改推送到您的副本(该副本将保持私有),然后创建一个pull请求。当我试图直接推送到私有存储库时,我收到了令人困惑的“remote: Repository not found. fatal”消息,尽管我可以正常拉取。


2
我忘记在我的URL之前加上https:
git remote -v # URL doesn't have https
git remote remove origin # remove old URL
git remote add origin https://github.com/user-name/project-name.git # add new URL w/ https
git push -u origin main # try again

如果您不删除旧的URL,将会出现error: remote origin already exists.错误。

0

对于这个目的来说,git clone 有点过头了。

Git 提供的处理其他服务器的机制称为远程(remote),这通常在克隆时自动设置,这也解释了为什么你会这样做。

文档可以在这里找到:

http://git-scm.com/book/en/Git-Basics-Working-with-Remotes

一些摘要命令:

git remote add [remote-name] [branch-name]

git fetch [remote-name]

git push [remote-name] [branch-name]

此外,您可能考虑设置跟踪分支,这将消除每次输入命令时需要限定远程名称的需要。有关该用例的文档在此处。

http://git-scm.com/book/en/Git-Branching-Remote-Branches

通常,如果您克隆一个存储库,git会执行以下命令:git checkout -b master [remotename]/master 但是,您的跟踪分支不一定要是master。
希望这可以帮到您。

0

仅需两步:

git remote add origin 'your_url_name'
git push -u origin master

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接