繁体   English   中英

如何使用 Git 对远程存储库进行初始推送?

[英]How do I do an initial push to a remote repository with Git?

我已经阅读了无数的教程,但我一直在总结。 这是我所拥有的:

  • 我在 Windows 桌面上运行 RubyMine
  • 我已经按照他们的说明在我的 WebFaction 托管帐户上安装了 Git
  • Git 似乎在两台机器上都运行良好

这是我在做什么:

  1. 在服务器上:
    • mkdir project
    • git init
    • git add .
    • git commit #==> nothing to commit
  2. 在客户端:
    • 在 RubyMine 中创建新项目
    • 项目顶层目录下的Git init
    • 将更改推送到服务器#==> failed to push some refs to...

我缺少哪些步骤?

在服务器上:

mkdir my_project.git
cd my_project.git
git --bare init

在客户端:

mkdir my_project
cd my_project
touch .gitignore
git init
git add .
git commit -m "Initial commit"
git remote add origin youruser@yourserver.com:/path/to/my_project.git
git push origin master

请注意,当您添加源时,您可以使用多种格式和模式。 我建议您查看您的托管服务提供的内容。

你可以试试这个:

在服务器上:

将新组添加到/etc/group像(示例)

mygroup:1001:michael,nir

创建新的 git 存储库:

mkdir /srv/git
cd /srv/git
mkdir project_dir
cd project_dir
git --bare init (initial git repository )
chgrp -R mygroup objects/ refs/ (change owner of directory )
chmod -R g+w objects/ refs/ (give permission write)

在客户端:

mkdir my_project
cd my_project
touch .gitignore
git init
git add .
git commit -m "Initial commit"
git remote add origin youruser@yourserver.com:/path/to/my_project.git
git push origin master

(感谢 Josh Lindsey 的客户端)

在客户端之后,在服务器上执行以下命令:

cd /srv/git/project_dir
chmod -R g+w objects/ refs/

如果在 git pull 后出现此错误:

There is no tracking information for the current branch. Please specify which branch you want to merge with. See git-pull(1) for details

git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:

git branch --set-upstream new origin/<branch>

尝试:

git push -u origin master

我会帮你的。

如果您的项目没有上游分支,也就是说,如果这是远程存储库第一次知道在本地存储库中创建的分支,则以下命令应该可以工作。

git push --set-upstream origin <branch-name>

在提交之前,您必须至少向存储库添加一个文件,例如.gitignore

@Josh Lindsey 已经回答得很好。 但我想补充一些信息,因为我经常使用 ssh。

因此只需更改:

git remote add origin youruser@yourserver.com:/path/to/my_project.git

至:

git remote add origin ssh://youruser@yourserver.com/path/to/my_project

请注意,域和路径之间的冒号不再存在。

您需要在客户端上设置远程存储库:

git remote add origin ssh://myserver.com/path/to/project

我知道有解决问题的现有答案。 对于 git 新手,截至 2021 年 2 月 11 日,git 中的默认分支是"main"而不是"master"分支,命令将是

git push -u origin main

运行下面的命令

git config --local -e

更改条目

url = git@github.com:username/repo.git

url = https://github.com/username/repo.git

如果您遇到@dangerous-dev 提到的事件,但您有一个名为master的本地默认分支和一个名为main的远程分支,请使用:

git push -u origin master:main

分别使用长版本:

git push --set-upstream origin master:main

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM