Github, как рабочий процесс на частном сервере над SSH
-
02-10-2019 - |
Вопрос
У меня есть сервер (доступен через 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
Это предупреждение о чем угодно, о чем мне нужно беспокоиться? Как я уже сказал, все, кажется, работает. Мой друг умеет тянуть мои изменения из моей ветки. У меня есть клон на сервере, чтобы он мог получить доступ к нему, поскольку у него нет доступа к моей местной машине. Есть ли что-то, что можно сделать лучше?
Спасибо!
Решение
Вы должны настроить голый Репозиторий на сервере. Голый репозиторий содержит только информацию об истории версии, которая обычно находится в .git
каталог в вашем корневом репозитории. Вы можете клонировать от него или нажать на него, как с любым другим хранилищем.
Голые репозитории создаются с
git init --bare
Если у вас уже есть история версии, сделайте голый клон
git clone --bare git://some/where
Что касается вашего предупреждения, см. этот вопрос.