Синхронизация в git

14 ответов

Лучший ответ

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

Что касается вашего редактирования для добавления удаленного на ваш локальный USB-накопитель. Прежде всего, у вас должен быть «чистый репозиторий», если вы хотите, чтобы ваш репозиторий был общим репозиторием, т.е. чтобы иметь возможность нажимать / извлекать / извлекать / объединять и т. Д.

Чтобы создать открытый / общий репозиторий, перейдите в желаемое место. В твоем случае:

См. здесь для получения дополнительной информации о создание голого репозитория

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

И теперь вы можете отправить свои изменения в свой репозиторий.

71

Community
23 Май 2017 в 10:31

Видите ли, это проблема, которую мы получаем, потому что либо ваше репо недоступно из интерфейса командной строки, либо у вас нет прав на это Второй случай прост: вы просто запрашиваете доступ, тогда вы сможете это сделать. для 1-го случая, если не работает, он предоставит решение в самом интерфейсе командной строки Просто выполните всего один шаг:

  1. . введите здесь описание изображения Доступ к можно получить с помощью пользовательского интерфейса Gitlab / Github -> clone -> copy https. ссылка на сайт а потом
  2. Теперь поднимите MR. Обратитесь к изображению.

1

Pratham Singhal
16 Мар 2021 в 14:48

У меня сработала установка URL-адреса удаленного репозитория:

1

Swarnkar Rajesh
30 Ноя 2019 в 08:23

Вот как я решил эту проблему

Перейдите в удаленный репозиторий на Github и скопируйте URL-адрес репозитория проекта.

В git bash type: git remote add origin здесь указывается URL-адрес удаленного репозитория

1

Nicodemus Ngufuli
20 Окт 2019 в 12:44

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

Затем он говорит мне войти в систему. Введите свое имя пользователя и пароль. после этого

Закончили, вы отправили свой код в свой github

2

hui zhao
30 Ноя 2017 в 14:43

У меня была эта проблема, потому что у меня уже был локальный удаленный источник. Так что просто замените » origin » на другое имя:

git push -u originNew

Или вы можете удалить свое местное происхождение. чтобы проверить тип удаленного имени:

git remote

Для удаления удаленного — войдите в свой репозиторий клонов и введите:

git remote remove origin (в зависимости от имени вашего пульта)

2

Vasyl Gutnyk
12 Авг 2016 в 21:13

Если вы используете HTTPS, сделайте это —

3

Hitesh Roy
28 Ноя 2017 в 18:19

Мой случай был немного другим — я случайно сменил владельца репозитория git (каталог project.git в моем случае), помогла смена владельца на пользователя git

3

khd
18 Сен 2014 в 06:59

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

Кроме того, поскольку я использовал ключ SSH , я использовал следующую команду:

$ git удаленное добавление источника [email protected]: {ваше-имя-пользователя} / {ваша-удаленная-репо-ветка}

Например, это будет выглядеть так:

$ git удаленное добавление источника [email protected]: aniketrb-github / microservices.git

Если вы используете URL-адрес HTTPS, см. Ответ, предоставленный @ sunny-jim выше.

Поправьте меня, если я ошибаюсь. Спасибо.

4

Aniket
16 Фев 2020 в 22:33

Может быть, вы забыли запустить «» на пульте дистанционного управления? Это была моя проблема

5

user3353537
25 Фев 2014 в 23:04

Когда вы создаете репозиторий на bitbucket.org, он дает вам инструкции по настройке ваш локальный каталог. Скорее всего, вы просто забыли запустить код:

6

Roman
31 Июл 2014 в 09:41

Ваш конфигурационный файл не содержит ссылок на «origin» remote. Этот раздел выглядит так:

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

12

che
15 Мар 2013 в 18:44

Скорее всего, удаленного репозитория не существует или вы добавили не тот.

Вы должны сначала удалить начало координат и снова добавить его:

21

fredmaggiowski
5 Июл 2016 в 02:13

Вот инструкция с github:

Вот что действительно сработало:

После клонирования команда push завершается успешно, запрашивая имя пользователя и пароль.

26

Sunny Jim
16 Май 2013 в 17:17

Принудительная публикация

Git предотвращает перезапись истории центрального репозитория, отклоняя push-запросы, если нельзя выполнить их ускоренное слияние. Так, если история удаленного репозитория отличается от вашей истории, необходимо загрузить удаленную ветку командой pull и выполнить ее слияние с локальной веткой командой merge, а затем попробовать выполнить команду push еще раз. Это похоже на то, как в SVN необходимо синхронизироваться с центральным репозиторием с помощью команды перед тем, как сделать коммит набора изменений.

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

Одиночный разработчик, единственная ветвь

Даже если вы являетесь единственным разработчиком вашего проекта и (по крайней мере, пока), вы не планируете его менять, система управления версиями по-прежнему полезна. Это позволяет:

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

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

    Вы также хотели бы знать, что вы сделали, и то, над чем вы работали в последнее время. Это означает, что вы должны описывать каждый набор изменений (каждый фиксатор).

  • Аннотировать файл/просмотр истории. Если у вас нет идеальной памяти, иногда вам нужно знать, почему (и когда, и в случае, когда есть несколько разработчиков, и кто), вы написали заданный набор строк. Комментарии не всегда достаточно. Для этого вы можете использовать (если ваша система управления версиями предоставляет) линейные аннотации истории файлов ( или ) или другие аналогичные инструменты, такие как так называемый поиск “pickaxe” в Git, где вы выполняете поиск/просмотреть историю для коммитов, которые ввели или удалили заданную строку.

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

  • История поиска, чтобы найти ошибки. Современные системы управления версиями предлагают альтернативные (для вставки инструкций печати или отладчика) способ поиска ошибок… в некоторых случаях. Когда вы замечаете ошибку или получаете ошибку, и ошибка не является результатом последнего изменения, вы можете использовать систему управления версиями (), чтобы автоматически найти фиксацию, введшую ошибку (первая фиксация, которая дала ошибку), Система контроля версий находит такую ​​фиксацию, используя биссектную историю проекта, извлекая (проверяя) версии, которые вы отмечаете как хорошие (без ошибок) или плохие, пока не найдет коммиты, которые ввели ошибку.

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

Просмотр удалённых репозиториев

Для того, чтобы просмотреть список настроенных удалённых репозиториев, вы можете запустить команду . Она выведет названия доступных удалённых репозиториев. Если вы клонировали репозиторий, то увидите как минимум – имя по умолчанию, которое Git даёт серверу, с которого производилось клонирование:

Вы можете также указать ключ , чтобы просмотреть адреса для чтения и записи, привязанные к репозиторию:

Если у вас больше одного удалённого репозитория, команда выведет их все. Например, для репозитория с несколькими настроенными удалёнными репозиториями в случае совместной работы нескольких пользователей, вывод команды может выглядеть примерно так:

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

Обратите внимание на разнообразие протоколов, используемых при указании адреса удалённого репозитория; мы рассмотрим протоколы подробнее в разделе Установка «Git на сервер» главы 4

Зачем новичку учить Git

Git используется в большинстве компаний, где над проектом работает хотя бы два разработчика:

  • Новый человек приходит в компанию и клонирует репозиторий проекта на ПК.
  • Получает задачу, создаёт новую ветку и пишет код.
  • Когда всё готово — отправляет запрос на добавление кода в master-ветку.
  • Другие разработчики смотрят код, оставляют комментарии и указывают на ошибки.
  • Новичок дорабатывает код, обновляет master-ветку и переходит к следующей задаче.

Это общая схема того, как проходит командная работа в проекте. В ней не учтены правила использования Git, которые каждая команда пишет под себя. Например, у каждой команды свой порядок проверки кода и свои критерии его готовности для добавления в master-ветку.

Необходимость контроля версий

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

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

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

История Кодекс имеет важное значение, и без контроля версий не было бы ни одного

Совместная работа и обновление проектов

Не так уж много команд в Git требуют сетевого подключения для своей работы, практически все команды оперируют с локальной копией проекта.
Когда вы готовы поделиться своими наработками, всего несколько команд помогут вам работать с удалёнными репозиториями.

git fetch

Команда связывается с удалённым репозиторием и забирает из него все изменения, которых у вас пока нет и сохраняет их локально.

Мы познакомились с ней в разделе Получение изменений из удалённого репозитория — Fetch и Pull главы 2 и продолжили знакомство в разделе Удалённые ветки главы 3.

Мы использовали эту команду в нескольких примерах из раздела Участие в проекте.

Мы использовали её для скачивания запросов на слияние (pull request) из других репозиториев в разделе Ссылки на запрос слияния главы 6, также мы рассмотрели использование для работы с упакованными репозиториями в разделе Создание пакетов главы 7.

Мы рассмотрели тонкую настройку в главе и Спецификации ссылок.

git pull

Команда работает как комбинация команд и , т. е. Git вначале забирает изменения из указанного удалённого репозитория, а затем пытается слить их с текущей веткой.

Мы познакомились с ней в разделе Получение изменений из удалённого репозитория — Fetch и Pull главы 2 и показали как узнать, какие изменения будут приняты в случае применения в разделе Просмотр удаленного репозитория главы 2.

Мы также увидели как она может оказаться полезной для разрешения сложностей при перемещении веток в разделе Меняя базу, меняй основание главы 3.

Мы показали как можно использовать только URL удалённого репозитория без сохранения его в списке удалённых репозиториев в разделе Извлечение удалённых веток главы 5.

И наконец мы показали как проверять криптографические подписи полученных коммитов, используя опцию в разделе Подпись коммитов главы 7.

git push

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

Мы познакомились с этой командой в разделе Отправка изменений в удаленный репозиторий (Push) главы 2.
Там мы рассмотрели основы обновления веток в удалённом репозитории.
В разделе Отправка изменений главы 3 мы подробнее познакомились с этой командой, а в разделе Отслеживание веток главы 3 мы узнали как настроить отслеживание веток для автоматической передачи на удалённый репозиторий.
В разделе Удаление веток на удалённом сервере главы 3 мы использовали флаг для удаления веток на сервере, используя .

На протяжении раздела Участие в проекте мы показали несколько примеров использования для совместной работы в нескольких удалённых репозиториях одновременно.

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

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

Наконец, в разделе Спецификации ссылок для отправки данных на сервер главы 10 мы рассмотрели передачу данных с полным указанием передаваемых ссылок, вместо использования распространённых сокращений.
Это может быть полезным если вы хотите очень точно указать, какими изменениями хотите поделиться.

git remote

Команда служит для управления списком удалённых репозиториев.
Она позволяет сохранять длинные URL репозиториев в виде понятных коротких строк, например «origin», так что вам не придётся забивать голову всякой ерундой и набирать её каждый раз для связи с сервером.
Вы можете использовать несколько удалённых репозиториев для работы и поможет добавлять, изменять и удалять их.

Эта команда детально рассмотрена в разделе Работа с удалёнными репозиториями главы 2, включая вывод списка удалённых репозиториев, добавление новых, удаление или переименование существующих.

Она используется практически в каждой главе, но всегда в одном и том же виде: .

git archive

Команда используется для упаковки в архив указанных коммитов или всего репозитория.

Мы использовали для создания тарбола ( файла) всего проекта для передачи по сети в разделе Подготовка релиза главы 5.

git submodule

Команда используется для управления вложенными репозиториями.
Например, это могут быть библиотеки или другие, используемые не только в этом проекте ресурсы.
У команды есть несколько под-команд — , , и др. — для управления такими репозиториями.

Эта команда упомянута и полностью раскрыта в разделе Подмодули главы 7.

prev | next

9 ответов

Лучший ответ

Вы просто объединяете разработку с feature1:

Нет необходимости задействовать другую ветку, например master.

126

musiKk
1 Окт 2014 в 10:38

Сначала вам нужно обновить ветку develop , затем проверить свою функцию и объединить / переустановить ее.

Теперь вы можете выбрать между запуском:

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

В некоторых командах опция обязательна.

Когда вы будете готовы, вы можете нажать на свою ветку (например, для запроса на перенос)

47

Artur Carvalho
23 Янв 2020 в 10:20

Этот вариант использования очень полезен, чтобы постоянно обновлять вашу PR-ветку. Во-первых, я бы порекомендовал вам сначала получить ваши удаленные изменения, т.е. а затем слить или переустановить из , но из удаленного, например

Или

Таким образом вы обновите свою PR-ветку, не переходя между ветками.

6

EliuX
20 Фев 2020 в 17:40

ФИЛИАЛЫ:

DEV ====> разработка

Feature1 ====> работает

ШАГ 1 GIT ОТПРАВКА С САЙТА

Проверяет ветку, которую вы синхронизируете

Добавить файлы для фиксации

Совершает с описанием

Отправьте в ветку, которую вы синхронизируете

ШАГ 2 СИНХРОНИЗАЦИЯ ОБНОВЛЕННОЙ РАБОЧЕЙ ВЕТКИ С DEV (разработка) — синхронизирует рабочую ветку с веткой разработки (обновляет ветку разработки)

Синхронизировать с пультом и переключиться на ветку DEV

Запрос на объединение ветки, которую вы синхронизируете, с веткой feature1

Объединить текущую ветку с веткой feature1

ШАГ 3 GIT FINDING THE REMOTE — Обновите рабочую ветку из обновленной ветки разработки

Подключается к опорной ветке

Изменения в поиске

Синхронизируется с вашей рабочей веткой

Запрос на слияние ветки, которую вы синхронизируете с веткой DEV

Объединить текущую ветку с веткой DEV

1

Laudiocínio Carvalho
30 Янв 2020 в 15:16

Используйте извлечение без слияния для извлечения определенных файлов или извлечения из определенного коммита, я пробовал этот способ, и он работает!

Omar Al-Howeiti
5 Авг 2019 в 09:37

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

  1. Измените, чтобы развиваться, и убедитесь, что вы ввели последние изменения
  2. Создайте еще одну ветку из разработки,
  3. Объединить с
  4. Удалите, если хотите оригинальный

Поэтому, когда вы проводите PR в разработке, в нем будут только ваши новые изменения, а не вся история коммитов.

Если вы еще не нажали, ответ @stackdave — хороший ответ.

htafoya
13 Фев 2020 в 23:28

Vedha Peri
18 Фев 2020 в 20:50

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

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

Andrea
18 Фев 2021 в 09:03

  1. git checkout разработать
  2. мерзавец тянуть 3. git checkout localbranch

Затем запустите слияние или перебазирование в зависимости от ваших требований.

  1. git merge разработка
  2. git rebase develop

-1

Abhiraj CS
15 Фев 2021 в 21:10

Подмодули

Клонирование репозитория с подмодулями

При клонировании репозитория вам необходимо инициализировать и обновить подмодули:

Запуск данной команды эквивалентен запуску команды:

после обычного клонирования репозитория

Обновление подмодулей

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

Для получения состояния последнего коммита всех подмодулей необходимо выполнить
следующую команду:

или использовать аргументы по умолчанию команды git pull:

Эта команда просто обновляет локальную рабочую копию. При запуске команды git status
каталоги подмодулей будут показаны изменёнными. Чтобы обновить репозиторий необходимо
зафиксировать изменения:

Для получения состояние последнего коммита конкретного подмодуля необходимо использовать команду:

Добавление подмодулей

В текущий проект можно включить другой репозиторий Git в качестве папки, отслеживаемый Git:

После этого необходимо добавить и зафиксировать новый файл .gitmodules. В нём описано
какие подмодули следует клонировать при запуске команды git submodule update

5 ответов

Лучший ответ

Чтобы обновить локальный список удаленных веток:

Чтобы показать все локальные и удаленные ветки, о которых (локальный) Git знает

1369

Will Ediger
23 Ноя 2019 в 15:09

Если вы используете Eclipse,

  1. Откройте «Репозитории Git»
  2. Найдите свой репозиторий.
  3. Откройте «Филиалы», затем «Удаленное отслеживание».

Они все должны быть там. Щелкните правой кнопкой мыши и «оформить заказ».

-9

markthegrea
10 Ноя 2017 в 16:35

Я считаю, что если вы запустите из Bash, то список удаленных и локальных ветвей, который вы видите, будет отражать то, о чем ваш локальный Git «знает» на момент выполнения команды. Поскольку ваш Git всегда обновлен в отношении локальных веток в вашей системе, список локальных веток всегда будет точным.

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

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

Для получения дополнительной информации, «удаленные» ветки, которые появляются при запуске , на самом деле не являются удаленными; они на самом деле местные. Например, предположим, что на пульте дистанционного управления есть ветка под названием , которую вы хотя бы раз перенесли в свой локальный Git. Вы увидите в списке как ветку при запуске . Но эта ветка на самом деле является локальной веткой Git. Когда вы делаете , эта ветка отслеживания обновляется с учетом любых новых изменений с пульта дистанционного управления. Вот почему ваше локальное состояние может устареть, потому что могут появиться новые удаленные ветки или ваши ветки отслеживания могут стать устаревшими.

28

Peter Mortensen
24 Окт 2019 в 11:47

Используйте , чтобы получить все последние созданные ветки.

2

Oliver
22 Янв 2019 в 15:12

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

Итак, — вот что следует использовать.

Установка делает автоматическим. В этом случае просто также удалит устаревшие удаленные ветки из локальной копии. См. Также Автоматическое удаление с помощью Git fetch или pull .

Обратите внимание, что это не очищает локальные ветки, которые больше не отслеживают удаленную ветку. См

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

29

Peter Mortensen
24 Окт 2019 в 11:49

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: