1

Немного открытый вопрос относительно лучших практик, я могу найти множество функциональных руководств для git, но не так много информации о стандартном порядке операций и т. Д .:

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

  1. клон репо
  2. создать новую локальную ветвь руководителя
  3. вносить изменения локально и фиксировать в локальную ветку
  4. ...

2 ответа2

3

Вот как я это делаю. Я обычно работаю над удаленным репозиторием самостоятельно, поэтому приветствуются комментарии, особенно от людей, которые используют аналогичный рабочий процесс совместно.

На локальном компьютере: клонировать удаленный репозиторий.

git clone ssh://user@master:path/my_rep
cd my_rep

Клонированный репозиторий автоматически создает исходную ссылку на мастер. Перед началом работы рекомендуется вытащить последние изменения и создать локальную ветку:

git pull origin --rebase
git checkout -b local_mybranch
(... work ...)
git commit -a
(... work ...)
git commit -a

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

git checkout master
git pull --rebase
git checkout local_mychanges
git rebase -i master

Затем отправьте изменения на удаленный компьютер: git push origin local_mybranch: mybranch_on_remote

На удаленном репозитории. Вы (или кто-то еще) можете объединить изменения в основной ветке.

git checkout master    
git merge mybranch_on_remote
0

Поскольку мои проекты обычно представляют собой веб-приложения, которые я хочу разрабатывать локально и тестировать на удаленном сервере, я почти всегда обновляю копии всех веток на удаленном сервере. Единственное исключение было бы, если бы я проводил очень расплывчатый тест для проверки концепции.

Итак, если репо, из которого вы тянете, называется origin, а ветка, которую вы создаете локально, называется mybranch, мой рабочий процесс:

1) Клонировать репо из оригинала

2) Оформить заказ на новую ветку

3) Нажмите на ветку в origin и установите ее для рассмотрения восходящей версии с помощью:

git push -u origin/mybranch

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

Вы можете легко увидеть историю версий на моем сайте хостинга кода, и вы можете перенести тестовую ветку с удаленного на промежуточный сервер, чтобы протестировать ее там.

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

Если вы уже выдвинули свою ветку на сервер, но не настроили ее для того, чтобы считать эту удаленную копию восходящей, используйте это:

git branch --set-upstream-to=origin/mybranch

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .