Ви хочете, щоб ваш центральний сховище був голим. Скажіть, машина, на якій вона живе, називається static:
$ ssh static git init --bare /git/myproject.git
Цей голий сховище є центральним місцем зустрічі: це для підштовхування та витягування, а не розвитку.
Робіть розробку на клонах центрального сховища:
$ cd ~/src
$ git clone static:/git/myproject.git
Навіть якщо ви працюєте static, працюйте в клоні:
$ git clone /git/myproject.git
Хоча ви єдиний, хто працює над цим сховищем, забувайте робити свою роботу над тим, що git-документація називає тематичними гілками . Безпосередня перевага цього полягає в тому, що він підтримує чистий майстер , тобто ви завжди можете перетягнути з центрального відділення головного майстра в поточний майстер місцевого сховища без злиття.
Наприклад:
$ git checkout -b fix-bug-in-foo
$ hack
$ git add file.c file.h
$ git commit -m "Fix ..."
Це може не здатися великою справою, але це дає вам свободу залишати проект , представлений на цій гілці, у частково приготовленому стані, або якщо ваша крута ідея виявиться флопом, ви можете легко викинути цю гілку без ламати що-небудь інше у вашому проекті, що вже працює в інших галузях. Нескінченно безкоштовні mulligans!
Можливо, ви підете додому в ту ніч і додали нову функцію. Наступного ранку, ти
$ git checkout master
$ git pull
оновити свого локального майстра, щоб відобразити те, що знаходиться в центральному сховищі.
Але тепер скажіть, що ви виправили помилку foo та готові включити її у свою головну гілку. Спочатку ви хочете інтегрувати його із змінами минулої ночі:
$ git checkout fix-bug-in-foo
$ git rebase master
rebaseКоманда робить свій репозиторій вид , як якщо б ви виправили помилку Foo на вершині нової функції минулої ночі. (Це схоже svn update, але більш гнучко і потужно.)
Тепер, щоб перейти до вашого головного майстра:
$ git checkout master
$ git merge fix-bug-in-foo
$ git push origin master
Ми ставимося до майстра як до особливого, але це лише умовно. Ви можете поділитися роботою над різними гілками різних сховищ через сховище git staticтак само просто.