Может ли git push выполнить это? - PullRequest
2 голосов
/ 07 декабря 2010

Пара вопросов по git.

В настоящее время я единственный пользователь, и я успешно выполняю несколько основных команд в своем хранилище, и я доволен тем, как все выглядит. Однако я хочу позволить различным пользователям управлять и вносить изменения в репозиторий. Я читал кое-что о толчке / толчке и т. Д. Но пока не совсем понял. Могу ли я получить предложения о том, что читать, если я хочу добиться этого:

[release-directory] например: / release / live

[developer1] например: / developers / developer1 [developer2] Например: / developers / developer2

Скажем, разработчик работает в своем каталоге, а затем хочет сделать свою версию окончательной. Ему нужно «протолкнуть» свою сцену на «/ release / live»? Кроме того, что, если он выдвинул версию, которая испортила вещи. Как я могу вернуться? Кроме того, в какой ветви хранится контент? О каких разрешениях мне нужно позаботиться, чтобы позволить developer1 перейти в каталог release? Обе директории находятся на одном сервере, поэтому мне не нужно беспокоиться о SSH или о чем-либо.

Ответы [ 2 ]

1 голос
/ 07 декабря 2010

Обе директории находятся на одном сервере, поэтому мне не нужно беспокоиться о SSH или о чем-либо.

Когда все на одном сервере, вам нужен один пустой репозиторий(git init --bare), где каждый разработчик может вставить свои изменения в (= доступно для записи всем пользователям).Загрузка в не-пустой репозиторий вызывает проблемы.

[Я предполагаю, что ваш сервер работает под управлением linux / bsd / macos] Когда ваши пользователи разные пользователи unix, вам нужно не только chmod g+w репозиторий,но также установить бит закрепления во всех каталогах (что означает, что вновь созданные каталоги также наследуют биты разрешений, в противном случае первый созданный пользователем каталог, скорее всего, будет 755, что означает, что никакой другой пользователь не может создавать файлы в этом каталоге).

Скажем, разработчик работает в своем каталоге, а затем хочет сделать свою версию окончательной.Ему нужно «протолкнуть» свою область подготовки на «/ release / live»?

Типичный рабочий процесс заключается в том, что разработчик помещает изменения в общий репозиторий, а затем эти изменения передаются в /release/live на git pull от /release/live.(Вы также можете автоматизировать этот шаг с помощью хука в общем хранилище.)

Также можно перемещаться в удаленную ветвь только тогда, когда новая ветвь ветви является потомком головы, которая уже существует там.Это означает, что вы можете вставить только удаленную ветку, когда никто больше не вставит что-то в эту ветку.Когда кто-то нажал на эту ветку, вам нужно вытащить этот новый контент ветки, а затем объединить или переназначить свои собственные изменения с новым содержимым ветки.

Кроме того, что, если он выдвинул версию, которая испортила вещивверх.Как я могу вернуться?

Вы всегда можете git checkout более старую версию своего проекта.Также есть команда git revert, которая отменяет изменения данного коммита.

Кроме того, в какой ветви хранится контент?

Когда вы запускаетеВ новом git repo ваши изменения хранятся в ветке master.Вы можете создать новую ветку с помощью git branch MyNewBranchName (тогда вы останетесь на master) или git checkout -b MyNewBranchName (которая также перемещает вашу рабочую копию в новую ветку).Вы можете узнать ваше текущее имя ветки с помощью git branch (без каких-либо аргументов), тогда ваша текущая ветка помечается звездочкой перед ней.Когда вам больше не нужна ветка, вы можете удалить ее с помощью git branch -d MyNewBranchName (что гарантирует, что все коммиты этой ветви будут объединены с другими живыми ветвями) или git branch -D MyNewBranchName (это удаляет ветку и коммиты, которые не объединеныв другие ветки в конечном итоге теряются во время запуска сборки мусора).

Также большой ресурс о ветвлении - http://nvie.com/git-model.

0 голосов
/ 07 декабря 2010

Хорошим местом для начала изучения рабочих процессов (и общего знакомства с Git) является git pro book Книга О'Рейли также великолепна; Я настоятельно рекомендую.

Чтобы не "напутать", я бы порекомендовал копать глубже и становиться более удобным, с разветвлением и пометкой.

Чтобы предотвратить нежелательный доступ разработчиков к определенным веткам (например, к вашей ветке 'release'), рассмотрите gitolite .

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...