Самый эффективный способ разрешить множество простых конфликтов git - PullRequest
0 голосов
/ 22 октября 2018

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

И мой вопрос: какой самый эффективный способ сделать это?Создать 22 ветви и поручить одному человеку объединить эти ветви или определить порядок записи в файл между студентами?Или, может быть, вы знаете лучший способ сделать это.

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Мне кажется, ты слишком обдумываешь это.Что произойдет, если вы вообще ничего не сделаете для координации?То есть, предположим, что у вас есть все, кто клонирует репо, отредактирует файл и отправит свой результат, не беспокоясь о том, что делает кто-то еще ...

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

Наихудший случай - это то, что несколько человек разрешают конфликты одновременно, и поэтому все, кроме одного, должны будут повторно разрешить конфликт;что, конечно, может раздражать, если все пытаются завершить это одновременно.Но при условии, что у вас есть разумное временное окно, в которое это произойдет, вполне вероятно, что это не будет большой проблемой.И на самом деле это более или менее важно для git - большое количество людей может работать над одним и тем же файлом (файлами) одновременно без надуманной координации.

Теперь некоторые люди утверждают, что итоговая история такова:по их мнению, «грязный», потому что всякий раз, когда кому-то приходится тянуть, а затем нажимать, создается коммит слияния.В худшем случае это все равно не хуже, чем то, на что бы выглядело, если бы все добавили свое имя в отдельную ветку.И даже этого можно избежать (например, используя 'get pull --rebase' при запросе pull перед нажатием).

0 голосов
/ 22 октября 2018

Предполагая, что это текстовый файл, самый простой способ обеспечить наименьшее количество возможных конфликтов - это чтобы каждый учащийся знал свой ранг в алфавитном (или некотором другом) порядке;первый студент, который создал файл с 22 пустыми строками;и для каждого студента поместить свое имя в соответствующую строку.(РЕДАКТИРОВАТЬ: если подумать, было бы безопаснее сделать это 43 пустыми строками, так что вы можете иметь пустую строку между каждой парой имен; затем последний раз удалить пустые строки.)

Secondтехнически проще всего использовать этот порядок для составления расписания, хотя с 22 студентами было бы кошмаром.Стадить кошек легко в теории, ужасно на практике.

Третий самый простой способ (и гораздо более простой на практике) для всех - просто отредактировать файл, добавить себя, зафиксировать и нажать как можно быстрее, сслучайное время - особенно первая пара людей, чтобы обеспечить контекст для работы с diff.

...