Подтвердить что ты не робот

Есть ли способ заблокировать отдельные файлы или каталоги на fork при использовании github?

Мы - команда из 60 + разработчиков, работающих над одним и тем же продуктом, и переходим от SVN к Github. У нас есть процесс в SVN, где в отдельных файлах заблокирован и всякий раз, когда разработчик хочет совершить код, ему нужно его разблокировать владельцем файла. Три из нас являются владельцами всего 150 файлов. Перед разблокировкой предшествует обзор кода.

В Github мы планируем использовать модель Fork-Clone - каждый проект, над которым работает группа разработчиков, будет делать вилку, каждый разработчик сделает клон вилки, напишет код и зафиксирует происхождение, вывод функции будет выполнять запрос на вытягивание вверх по потоку.

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

Один метод, который, как мы думали, может работать, заключается в том, чтобы иметь крючки, когда нажатие git выполняется в начало (fork). Может быть один окончательный обзор git pull to upstream.

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

4b9b3361

Ответ 1

Этот пример использования является одной из причин, по которым Git намного лучше SVN → rebase! Если вы будете следовать хорошему рабочему процессу Git, вы перегружаетесь с восходящего потока перед отправкой запросов на Pull. Вам не нужно беспокоиться о блокировке файла и топании другого человека, который совершает и объединяет конфликты и т.д.... rebase откладывает вашу работу, применяет удаленные коммиты, а затем применяет вашу работу сверху.

Я думаю, что это просто требует переосмысления в вашем процессе и опирается на сильные стороны Git по сравнению с силовой установкой рабочего процесса Subversion поверх git. Возможно, вам понадобится еще и внешний вид модели "fork-clone". Чаще всего у каждого разработчика есть своя вилка, вы можете делиться репозиториями через пульты между командами, если хотите. Но вкладчики, имеющие одно и то же происхождение, создают некоторые плохие привычки.

Gitflow - очень популярный рабочий процесс Git и У Github есть несколько полезных советов и разделяет их рабочий процесс.

Ответ 2

Нет шансов, если файл не является слиянием, и вам нужно его заблокировать, используйте централизованное решение вместо GIT, то есть SVN или ClearCase.

Ответ 3

Git не предоставляет никаких функций блокировки, поскольку он децентрализован. Однако, если вы размещаете свой код на GitLab Enterprise Edition Premium, вы можете используйте веб-интерфейс для блокировки отдельных файлов или папок, добиваясь именно того, что вы хотите сделать.

Если вы не хотите размещать свой проект на чужом сервере (их веб-сайте), вы также можете загрузить GitLab и разместить его на своем веб-сервере.

Ответ 4

Нет способа сделать это в Git. Как говорили другие, если документ "слияния", вы можете попробовать переустановить, изменить способ действий. В нашем случае у нас есть соглашение: если вам действительно нужно заблокировать его, переименуйте его. Но мы делаем такие вещи только в офисных документах и ​​т.д.
Это составление не дает решения, это обходной трюк (но stackoverflow не позволяет мне добавить это как комментарий.