GitHub, как рабочий процесс на частном сервере через SSH - PullRequest
1 голос
/ 30 апреля 2010

У меня есть сервер (доступный через ssh) в Интернете, который мы с моим другом используем для совместной работы над проектами. Мы начали использовать git для контроля версий. Наша установка в настоящее время выглядит следующим образом:

  • Друг создал репозиторий на server с git --bare init с именем project.friend.git
  • Я клонировал project.friend.git на server до project.jesse.git
  • Затем я клонировал project.jesse.git на server на свой локальный компьютер, используя git clone jesse@server:/git_repos/project.jesse.git
  • Я работаю на своей локальной машине и фиксирую на локальной машине. Когда я хочу вставить свои изменения в project.jesse.git на server, я использую git push origin master. Мой друг работает над project.friend.git. Когда я хочу получить его изменения, я делаю pull jesse@server:/git_repos/project.friend.git.

Кажется, все работает нормально, но теперь я получаю следующую ошибку, когда делаю git push origin master:

localpc:project.jesse jesse$ git push origin master
Counting objects: 100, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (76/76), done.
Writing objects: 100% (76/76), 15.98 KiB, done.
Total 76 (delta 50), reused 0 (delta 0)
warning: updating the current branch
warning: Updating the currently checked out branch may cause confusion,
warning: as the index and work tree do not reflect changes that are in HEAD.
warning: As a result, you may see the changes you just pushed into it
warning: reverted when you run 'git diff' over there, and you may want
warning: to run 'git reset --hard' before starting to work to recover.
warning: 
warning: You can set 'receive.denyCurrentBranch' configuration variable to
warning: 'refuse' in the remote repository to forbid pushing into its
warning: current branch.
warning: To allow pushing into the current branch, you can set it to 'ignore';
warning: but this is not recommended unless you arranged to update its work
warning: tree to match what you pushed in some other way.
warning: 
warning: To squelch this message, you can set it to 'warn'.
warning: 
warning: Note that the default will change in a future version of git
warning: to refuse updating the current branch unless you have the
warning: configuration variable set to either 'ignore' or 'warn'.
To jesse@server:/git_repos/project.jesse.git
   c455cb7..e9ec677  master -> master

Мне нужно беспокоиться об этом предупреждении? Как я уже сказал, все, кажется, работает. Мой друг может вытащить мои изменения из моей ветки. У меня есть клон на сервере, поэтому он может получить к нему доступ, поскольку у него нет доступа к моей локальной машине. Есть ли что-то, что можно сделать лучше?

Спасибо!

1 Ответ

4 голосов
/ 30 апреля 2010

Вы должны установить репозиторий bare на сервере. Пустой репозиторий содержит только информацию истории версий, которая обычно находится в каталоге .git в корне вашего репозитория. Вы можете клонировать его или нажать на него, как и в любом другом хранилище.

Голые репозитории создаются с

 git init --bare

Если у вас уже есть история версий, создайте голый клон

git clone --bare git://some/where

Что касается вашего предупреждения, см. этот вопрос .

...