Требует ли github каждого коммиттера иметь свой собственный форк проекта? - PullRequest
5 голосов
/ 03 июня 2010

Я хотел бы попробовать git (размещенный на github) для нового проекта, но у меня есть сомнения относительно того, как он работает. Я работаю с другим парнем, нужно ли нам иметь две ветки проекта, а затем объединять их каждый раз, когда один из нас вносит изменения в код, или можно работать в паре с одним источником?

Ответы [ 4 ]

6 голосов
/ 14 июня 2010

Короткий ответ - нет, если вы используете публичный репозиторий. Перейдите в раздел администратора для репозитория, выберите панель «Collaborators» и добавьте столько пользователей, сколько вы хотите иметь возможность фиксировать в репозиторий. Тогда все пользователи будут использовать один и тот же адрес для клонирования и нажатия на.

Только не забудьте вытащить их изменения, прежде чем вносить свои.

6 голосов
/ 03 июня 2010

Можно иметь столько дополнительных коммиттеров (называемых соавторов в терминах GitHub) в одном проекте, сколько вам нужно. Однако максимальное количество зависит от тарифного плана. Обратите внимание, что в общедоступных репозиториях может быть неограниченное количество соавторов.

Что касается самого Git: любой, кто имеет доступ для записи в хранилище, может нажать на него.

2 голосов
/ 03 июня 2010

Прежде всего, позвольте мне заявить, что у меня нет большого опыта работы с мерзавцем. Тем не менее, позвольте мне получить мой ответ.

Короткий ответ будет: да, в некотором смысле, так оно и будет. Но это не должно быть такой большой проблемой, как вы о ней заявляете.

Я предположил, что вы по какой-то причине знаете SVN, но дайте мне знать, если нет, и я постараюсь записать вещи с другой точки зрения.

Способ SVN, централизованный способ, состоит в том, что существует один репозиторий, и у каждого есть рабочая копия. В рабочую копию можно вносить изменения, а затем изменения могут быть зафиксированы в хранилище. Если два человека вносили изменения в свои рабочие копии одновременно, вам может потребоваться объединить изменения, но если это не так, все будет автоматически.

Git децентрализован. Это достигается не только наличием одного репозитория, но и каждого пользователя, имеющего свой репозиторий. Обычно к хранилищу прилагается рабочая копия (причем рабочая копия - это просто обычные файлы, а хранилище находится в .git. Вы вносите изменения в свою рабочую копию и затем фиксируете их в своем хранилище. Затем, если вы решите, что изменения должны быть доступны общественности, вы можете отправить изменения в свой репозиторий в открытый репозиторий.

(Обратите внимание, что общедоступный репозиторий является общедоступным только потому, что вы относитесь к нему как к тому, что git не знает ничего другого. Если вы работаете над одной функцией со своим коллегой Бобом, вы можете вместо этого перейти в репозиторий Боба и только тогда, когда вы двое из вас сделано, отправьте его в общедоступный репозиторий или нет, если это просто ваша личная модификация.)

По сути, при обычном использовании с git слияние будет более проблематичным, чем с SVN. К счастью, слияние Git также лучше, так что вам придется делать меньше самостоятельно (или так мне сказали). Однако не должно быть слишком много конфликтов, если вы не ждете месяцы, прежде чем отправлять что-то в публичный репозиторий. Еще лучше, если вы боитесь слияния (причин для этого нет, но если да), вы можете нажать сразу после каждого коммита - в этом случае вы не будете делать больше слияния, чем с SVN. Вы отказываетесь от некоторой гибкости git, но большая часть этого может быть снова сведена на нет с помощью правильного использования веток (что автоматически означает использование явного слияния, но в git на самом деле бояться нечего).

1 голос
/ 03 июня 2010

С git вы оба получите локальные копии репозитория. Когда вы нажимаете (или извлекаете) из хранилища github, вы будете вынуждены объединиться, если другой человек внес изменения в файл, в который вы также внесли изменения с момента последнего извлечения / извлечения. Вам обоим нет необходимости иметь собственную вилку.

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