Как сделать начальный push-запрос к удаленному репозиторию с помощью Git? - PullRequest
142 голосов
/ 25 февраля 2010

Я прочитал бесчисленные учебные пособия, и я продолжаю идти в гору. Вот что у меня есть:

- я запускаю RubyMine на своем рабочем столе Windows
- Я установил Git на свою учетную запись хостинга WebFaction согласно их инструкциям
- Git работает нормально на обеих машинах

Вот что я делаю:
1. На сервере:
а. mkdir проект
б. git init
с. git add.
д. git commit <--- "нечего коммитить" <br /> 2. На клиенте:
а. Создайте новый проект в RubyMine.
б. "git init" в верхнем каталоге проекта
с. «Нажать изменения» на сервере <---- «не удалось отправить некоторые ссылки на ...». <Br />

Какие шаги я пропускаю?

Ответы [ 6 ]

341 голосов
/ 25 февраля 2010

на сервере:

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

Обратите внимание, что при добавлении источника можно использовать несколько форматов и схем. Я рекомендую вам посмотреть, что предоставляет ваш хостинг.

5 голосов
/ 16 апреля 2015

Вы можете попробовать это:

на сервере:

добавление новой группы к /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

(спасибо Джошу Линдси за поддержку клиента)

после Клиента, выполните на Сервере следующие команды:

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

Это поможет.

4 голосов
/ 25 февраля 2010

Вы должны добавить хотя бы один файл в хранилище перед фиксацией, например, .gitignore.

2 голосов
/ 29 июня 2017

Если ваш проект не имеет ветки upstream, то есть если это первый раз, когда удаленный репозиторий узнает о ветке, созданной в вашем локальном репозитории, должна работать следующая команда.

git push --set-upstream origin <branch-name>
0 голосов
/ 01 июня 2016

@ Джош Линдси уже отлично ответил. Но я хочу добавить некоторую информацию, так как я часто использую 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

Обратите внимание, что двоеточие между доменом и путем больше не существует.

0 голосов
/ 25 февраля 2010

Вам необходимо настроить удаленное хранилище на вашем клиенте:

git remote add origin ssh://myserver.com/path/to/project
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...