В настоящий момент нет официального способа сделать это, но вы можете использовать небольшой трюк, чтобы достичь этого! Помните, что это экспериментально, и у него есть некоторые ограничения ... (проверьте эту ссылку , если вы беспокоитесь о совместимости с навигатором)
Что вы можете сделать, это использовать селектор CSS3: псевдо classe nth-child()
#list>* {
display: inline-block;
padding: 20px 28px;
margin-right: 5px;
border: 1px solid #bbb;
background: #ddd;
color: #444;
margin: 0.4em 0;
}
#list :nth-child(-n+4) {
color: #600b90;
border: 1px dashed red;
background: orange;
}
The oranges elements are the previous sibling li selected using li:nth-child(-n+4)
1
2
3
4
5
6
7
8
9
Вы не всегда можете сделать ветку или вытащить существующую ветку и вернуться к ней, потому что вы не зарегистрированы как соавтор для этого конкретного проекта.
Викинг - это не что иное, как клон на GitHub на стороне сервера:
Вы сохраняете вилку в синхронизации с исходным проектом с помощью:
Ребаза позволяет вам убедиться, что ваши изменения просты (конфликт слияния не обрабатывается ), что делает ваш запрос на вытягивание более легким, если вы хотите, чтобы сопровождающий оригинального проекта включил ваши патчи в свой проект.
Цель - действительно разрешить сотрудничество, хотя участие direct не всегда возможно.
Тот факт, что вы клонируете на стороне GitHub, означает у вас теперь есть два «центрального» репозитория («центральный» как «видимый от нескольких соавторов»). Если вы можете добавить их непосредственно в качестве соавторов для проекта one , вы не
Опыт слияния будет примерно одинаковым, но с дополнительным уровнем косвенности (нажмите сначала вилка, затем попросите вытащить, с риском развития на исходном репо, чтобы ваши быстрые слияния не ускорялись вперед). Это означает, что правильный рабочий процесс - git pull --rebase upstream
(rebase ваша работа поверх новых коммитов от восходящего потока), а затем git push --force origin
, чтобы переписать историю таким образом, ваши собственные фиксации всегда находятся поверх коммитов исходного (восходящего) репо.
См. также:
Это связано с общим рабочим процессом Git. Вероятно, вы вряд ли сможете напрямую перейти в основной репозиторий проекта. Я не уверен, что в репозитории проекта GitHub поддерживается управление доступом на основе ветвей, поскольку вы не хотели бы предоставлять кому-либо разрешение на то, чтобы нажать на главную ветку, например.
Общий шаблон выглядит следующим образом:
Без этого для публичных проектов довольно необычно позволять кому-либо прямо нажимать свои собственные коммиты.
Forking создает совершенно новый репозиторий из существующего репозитория (просто делает git clone на gitHub / bitbucket)
Форкс лучше всего использовать: когда целью «split» является создание логически независимый проект, который никогда не может воссоединиться со своим родителем.
blockquote>Стратегия филиала создает новую ветвь по существующему / работающему репозиторию
Филиалы лучше всего использовать: когда они создаются как временные места для работы через функцию с намерением объединить ветвь с источником.
blockquote>Подробнее: - в проектах с открытым исходным кодом это владелец репозитория, который решает, кто может нажать на репозиторий. Однако идея открытого источника заключается в том, что каждый может внести свой вклад в проект.
Эта проблема решается вилками: в любое время, когда разработчик хочет что-то изменить в проекте с открытым исходным кодом, они не клонируют официальный репозиторий. Вместо этого они развивают его, чтобы создать копию. Когда работа завершена, они делают запрос на перенос, чтобы владелец репозитория мог просмотреть изменения и решить, объединить ли их с его проектом.
В своем ядре forking похож на ветвление функции, но вместо создания ветвей создается вилка репозитория, и вместо выполнения запроса слияния вы создаете запрос на перенос.
Ниже ссылки дают разницу в хорошо объясненном виде:
https://blog.gitprime.com/the-definitive-guide-to-forks-and-branches-in-git/