Получение изменений из удалённого репозитория (fetch и pull)
Как вы только что узнали, для получения данных из удалённых проектов, следует выполнить:
Данная команда связывается с указанным удалённым проектом и забирает все те данные, которых у вас ещё нет. После того как вы выполнили эту команду, у вас должны появиться ссылки на все ветки из этого удалённого проекта, которые вы можете просмотреть или слить в любой момент.
Когда вы клонируете репозиторий, команда автоматически добавляет этот удалённый репозиторий под именем «origin». Таким образом, извлекает все наработки, отправленные на этот сервер после того, как вы его клонировали (или получили изменения с помощью )
Важно отметить, что команда забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками и не модифицирует то, над чем вы работаете в данный момент. Вам необходимо вручную слить эти данные с вашими, когда будете готовы
Если ветка настроена на отслеживание удалённой ветки (для получения дополнительной информации смотрите следующий раздел и главу «Ветвление в Git»), то вы можете использовать команду , чтобы автоматически получить изменения из удалённой ветки и слить их со своей текущей. Этот способ может оказаться более простым или более удобным. К тому же, по умолчанию команда автоматически настраивает вашу локальную ветку на отслеживание удалённой ветки на сервере, с которого вы клонировали репозиторий. Название веток может быть другим и зависит от ветки по умолчанию на сервере. Выполнение , как правило, извлекает (fetch) данные с сервера, с которого вы изначально клонировали, и автоматически пытается слить (merge) их с кодом, над которым вы в данный момент работаете.
Примечание
Начиная с версии 2.27, команда выдаёт предупреждение, если настройка не установлена. Git будет выводить это предупреждение каждый раз пока настройка не будет установлена.
Если хотите использовать поведение Git по умолчанию (простое смещение вперёд, если возможно, – иначе создание коммита слияния): .
Если хотите использовать перебазирование при получении изменений: .
Филиалы на вашей машине:
TLDR: на вашем локальном компьютере у вас есть три типа ветвей: локальные ветви без отслеживания, локальные ветви отслеживания и ветви удаленного отслеживания. На удаленной машине у вас только один тип ветки.
1. Местные отделения
Вы можете просмотреть список всех локальных филиалов на вашем компьютере, запустив :
Каждая локальная ветвь имеет файл под :
На вашем компьютере есть два типа локальных филиалов: не отслеживание локальных филиалов и отслеживание локальных филиалов.
1.2. Отслеживание местных филиалов
Отслеживающие локальные ветви связаны с другой ветвью, обычно веткой удаленного отслеживания. Вы создаете его, запустив .
Вы можете просмотреть, какие из ваших локальных филиалов отслеживают филиалы, используя :
Из вывода этой команды видно, что локальная ветвь отслеживает ветвь удаленного отслеживания , а локальная ветвь ничего не отслеживает.
Другой способ узнать, какие ветви отслеживают ветви, — взглянуть на .
Отслеживание местных филиалов полезно. Они позволяют вам запускать и , не указывая, какую ветку upstream использовать. Если ветвь не настроена для отслеживания другой ветки, вы получите ошибку, подобную этой:
2. Удаленное отслеживание веток (все еще на вашем компьютере)
Вы можете просмотреть список всех веток удаленного отслеживания на вашем компьютере, запустив :
Каждая ветка удаленного отслеживания имеет файл под :
Думайте о ваших ветвях удаленного отслеживания как о локальном кеше для того, что содержат удаленные машины Вы можете обновить свои ветви удаленного отслеживания, используя , который использует за кулисами.
Несмотря на то, что все данные для ветки удаленного отслеживания хранятся локально на вашем компьютере (например, в кеше), они все равно никогда не называются локальными ветвями. (По крайней мере, я бы так не назвал!) Это просто называется веткой удаленного отслеживания.
Что Такое Ветка Git?
Git — это распределённая система контроля версий (DVCS), в которой все члены команды имеют доступ к полной версии проекта. Её главная задача — помогать в управлении проектам, сделать процесс разработки эффективным, гибким и безопасным.
Ветки — это отдельные линии развития вашего проекта. Они позволяют работать параллельно с master веткой, при этом не влияя на неё. Когда же ваша часть кода готова, вы можете выполнить слияние, или мерж.
Ветвление Git позволяет создавать, удалять и смотреть другие ветки. Кроме того, ветка действует как указатель на моментальный снимок изменений (snapshot), которые вы внесли или хотите внести в файлы проекта. Это полезно в ситуациях, когда вы хотите добавить дополнительную функцию или устранить баг.
Ветка не только инкапсулирует изменения, но также гарантирует, что нестабильный код не попадёт к файлам основного проекта. Как только вы закончите обновлять код в ветке, вы сможете смержить изменения в ветку master.
Как удалить локальный репозиторий Git и удалить репозиторий удаленного репозитория Git на GitHub
http-equiv=»Content-Type» content=»text/html;charset=UTF-8″>style=»clear:both;»>
1. Удалите локальный склад Git.
Основной принцип удаления локального хранилища Git заключается в удалении скрытой папки «.git» в корневом каталоге «локального хранилища Git».
(1) Метод 1. Вручную удалите скрытую папку «.git» в корневом каталоге в «Git Local Warehouse» (как показано на рисунке выше).
(2) Метод 2: вызовите командную строку в каталоге локального хранилища, чтобы удалить папку .git в корневом каталоге, введите
(3) Проверьте, успешно ли удален локальный склад: введите каталог хранилища в Gitbash, если в конце каталога нет «(мастер)», это означает, что локальный склад был успешно удален.
2. Удалите удаленный репозиторий Git на GitHub.
(1) Введите «rm -rf + адрес хранилища github» в командной строке, например
Значение команды: удалить удаленный склад Git «LearningGit» из «индивидуального пользователя jedlee6» в сообществе Github
Подробная команда: rm полное имя: rm — это команда remove, -rf — это параметр рекурсивно и принудительно
Команда remove: удалить один или несколько файлов или каталогов в каталоге
Параметр рекурсивный: указание команде удаления рекурсивно удалить все каталоги и подкаталоги, указанные в параметрах.
Принудительный вариант: игнорировать файлы, которые не существуют, никогда не выдавать подсказку «файл не существует» (удалить файл, если файл не существует, появится сообщение «файл не существует»)
Option-rf: при использовании нескольких параметров команды ввод можно упростить. Например, команда ls -r -f сокращенно обозначается ls -rf. Таким образом, опция -rf представляет собой комбинацию опции -r и опции -f. Опция -rf function: удалить все файлы в текущем каталоге, эта команда очень опасна, и ее следует избегать
(2) Зайдите в Настройки на соответствующем складе github, проведите пальцем вниз по странице настроек, найдите последний подпункт «Зона опасности», удалите библиотеку
Интеллектуальная рекомендация
1. Для реальных сигналов (для понимания): A (ω) является соотношением амплитуды выходного сигнала и амплитуды входного сигнала, называемого частотой амплитуды. Φ (ω) — это разница межд…
Один. вести Многие люди задавали некоторые вопросы о создании проекта Flex + LCDS (FDS) в сообщениях и группах. Из-за операции ее трудно четко объяснить, поэтому я написал простой учебник (я обещал эт…
package com.example.phonehttp; import android.os.Bundle; import android.os.Handler; import android.app.Activity; import android.widget.ScrollView; import android.widget.TextView; public class MainActi…
Он предназначен для реализации подкласса того же родительского класса с родительским классом. Полиморфизм Один и тот же ссылочный тип использует разные экземпляры для выполнения разных операций; Идея …
тема: Объедините два упорядоченных слоя в новый заказанный список и возврат. Новый список состоит из всех узлов двух связанных списков, данных сплавным. Пример: Анализ: два связанных списка состоит в …
Вам также может понравиться
D. Самая ценная строка Пример ввода 2 2 aa aaa 2 b c Образец вывода aaa c На самом деле, будучи задетым этим вопросом, вы должны быть осторожны. После инвертирования строки, если две строки имеют один…
Given a 2D integer matrix M representing the gray scale of an image, you need to design a smoother to make the gray scale of each cell becomes the average gray scale (rounding down) of all the 8 surro…
calc () может быть очень незнакомым для всех, и трудно поверить, что calc () является частью CSS. Поскольку он выглядит как функция, почему он появляется в CSS, поскольку это функция? Этот момент такж…
Основываясь на дереве регрессии, сформированном CART, а также на предварительной и последующей обрезке дерева, код выглядит следующим образом:…
Откат Обновление в режиме онлайн с версии Centos (CentOS Linux версии 7.3.1611 (Core) до CentOS Linux версии 7.5.1804 (Core)) # ошибка соединения yum-ssh после обновления yexpected key exchange group …
Как Создать Новую Локальную Ветку Git?
Прежде чем создавать новую ветку, обратите внимание, что каждый репозиторий, о котором мы будем говорить дальше, содержит основную стабильную ветку (master branch), содержащую изменения, готовые для продакшена. Когда вы создаёте ветку, всё, что делает Git, это создаёт новый указатель
Мы можем создать новую локальную ветку, выполнив следующие шаги.
- Перейдите в корень вашей master branch:
cd nazvanije-repozitorija
- Вы можете создать ветку из главной ветки с помощью следующей команды:
git branch imia-novoj-vetki
Или же вы можете создать новую ветку и переключиться на неё:
git checkout -b imia-novoj-vetki
Вы также можете клонировать ветку и затем перейти на неё:
git checkout -b imia-novoj-vetki origin/imia-novoj-vetki
- Переключитесь на новую ветку:
git checkout imia-novoj-vetki
- Наконец, убедитесь, что вы находитесь в новой ветке:
git status
Инструмент 2: Pull Requests
Pull Requests — отличный способ внести свой вклад в репозиторий, сделав его форк. В конце дня, если мы хотим, мы можем отправить pull request владельцу репозитория, чтобы объединить наши изменения кода. Сам pull request может включать обсуждение качества кода, функций или даже общей стратегии.
Давайте теперь рассмотрим основные шаги для pull request.
Инициирование pull request
В Github есть две модели для pull request:
- Модель Fork & Pull — используется в общедоступном репозитории, на который у вас нет push-доступа
- Share Repository Model — используется в частном репозитории, на который у нас есть push-доступ. В этом случае форк не требуется.
Здесь мы видим рабочий процесс между двумя пользователями ( и ) для модели Fork and Pull:
- Определите репозиторий Github, в который вы хотите внести свой вклад, и нажмите кнопку «Fork», чтобы создать клон репозитория в вашей собственной учетной записи Github:
- Это создаст точную копию репозитория в вашем собственном аккаунте
- Выберите URL-адрес SSH, чтобы он запрашивал вашу парольную кодовую фразу SSH вместо имени пользователя и пароля каждый раз, когда вы делаете или . Затем мы будем клонировать этот репозиторий на наш локальный компьютер:
- Как правило, мы создадим новую ветку git для каждой новой задачи. Это хорошая практика, потому что в будущем, если мы продолжим обновление ветки после некоторых обсуждений, запрос на перенос будет автоматически обновляться. Давайте создадим новую ветку, чтобы внести очень простое изменение в файл :
- После внесения соответствующих дополнений для создания новых функций мы просто передадим новые изменения и проверку в ветку git master:
- На этом этапе мы запушим ветку в удаленный репозиторий. Для этого мы сначала перейдем на ветку с новой задачей, а так же на псевдоним для удаленного репозитория. Затем мы будем пушить изменения с помощью :
- На нашей развязанной странице Github репозитория мы перейдем к ветке с новой функцией, а затем нажмите кнопку «Pull Request».
- После отправки пул реквеста он напрямую приведет нас к странице запроса в исходном репозитории. Мы увидим наш запрос на pull.
- После обсуждения возможно, что владелец форкнутого репозитория может захотеть добавить изменения в новую функцию. В этом случае мы выберем одну и ту же ветку на нашей локальной машине, зафиксируем ее и запушим ее обратно на Github. Когда мы заходим на страницу запроса в оригинальном репозитории, он будет автоматически обновляться!
Слияние пул реквеста
Если вы являетесь владельцем оригинального репозитория, существует два способа слияния входящего пул реквеста:
- Слияние непосредственно на Github: если мы делаем слияние непосредственно на Github, то убедитесь, что нет конфликтов, и реквест готов к объединению в ведущую ветку. Владелец оригинального хранилища может просто щелкнуть зеленую кнопку «Слить запрос», чтобы сделать это:
- Слияние на наших локальных машинах: в других случаях могут возникнуть конфликты слияния, и после нажатия кнопки «Информация» у Github будут четкие инструкции о том, как мы можем объединить ветвь на нашей локальной машине, потянув за изменения из ветви контрибьютера:
Существуют различные модели создания веток, используемые для управления версиями в командах разработки программного обеспечения. Вот две популярные модели рабочего процесса git: (1) рабочий процесс Github, который имеет простую ветвящуюся модель и использует запросы на pull, и (2) Gitflow, который имеет более обширное разветвление. Модель, которая в конечном итоге будет выбрана, определенно будет меняться в зависимости от команды, проекта и ситуации.
Просмотр удалённых репозиториев
Для того, чтобы просмотреть список настроенных удалённых репозиториев, вы можете запустить команду . Она выведет названия доступных удалённых репозиториев. Если вы клонировали репозиторий, то увидите как минимум – имя по умолчанию, которое Git даёт серверу, с которого производилось клонирование:
Вы можете также указать ключ , чтобы просмотреть адреса для чтения и записи, привязанные к репозиторию:
Если у вас больше одного удалённого репозитория, команда выведет их все. Например, для репозитория с несколькими настроенными удалёнными репозиториями в случае совместной работы нескольких пользователей, вывод команды может выглядеть примерно так:
Это означает, что мы можем легко получить изменения от любого из этих пользователей. Возможно, что некоторые из репозиториев доступны для записи и в них можно отправлять свои изменения, хотя вывод команды не даёт никакой информации о правах доступа.
Обратите внимание на разнообразие протоколов, используемых при указании адреса удалённого репозитория; мы рассмотрим протоколы подробнее в разделе Установка «Git на сервер» главы 4
7 ответов
Лучший ответ
В обычном Git из командной строки удаленная ссылка создается автоматически, когда вы клонируете удаленный репозиторий с помощью (который по умолчанию вызывает удаленный ‘origin’).
Или вы можете добавить его вручную с помощью такой команды, как . Чтобы подтолкнуть ветку вверх, вы должны выполнить . (Более подробные примеры и объяснения см. здесь.)
Однако я вижу, что SmartGit немного отличается (я сам им не пользовался) и основан на графическом интерфейсе пользователя. Насколько я понимаю, упомянутые выше команды «Clone» и «Push» можно найти в меню «Remote» SmartGit. Если вы хотите добавить ссылку на удаленный репозиторий, есть ли опция «Добавить» в меню «Удаленный» ??
7
ewall
16 Авг 2010 в 13:15
У меня трюк Push Advanced не сработал. Единственный способ сделать это в SmartGit 3.0.6:
- Удаленный -> Управление пультами , затем нажмите Добавить и введите данные пульта, например ‘master’, ‘https://github.com/SomeCompany/SomeRepo’.
- Затем нажмите Потяните . Он скажет, что может обновлять только подмодули бла-бла, нажмите ОК. Fetch выдаст предупреждение «нет общего совершает «.
- Теперь перейдите в Филиал -> Менеджер филиала . Щелкните правой кнопкой мыши свой локальный ветвь и выберите Установить отслеживаемую ветку … затем выберите соответствующий удаленный филиал.
- Принеси снова. На этот раз как следует.
- Наконец, нажмите на пульт.
Сделать что-то менее интуитивно понятным для инструмента с графическим интерфейсом — настоящее достижение, но SmartGit отлично справляется с этим.
11
Jarrod Smith
20 Июн 2012 в 06:52
SmartGit не очень ясно объясняет это, но есть простой способ сделать это. Во-первых, я предполагаю, что вы знаете об отслеживании веток. Локальная ветка обычно отслеживает удаленную ветку (возможно, на сервере). Это позволяет вам отправлять и получать изменения в эту ветку и из нее.
Хитрость заключается в том, чтобы сбросить ветвь отслеживания, чтобы она ничего не отслеживала. Для этого перейдите в Branch »Branch Manager, щелкните правой кнопкой мыши локальный филиал и выберите« Reset Tracked Branch … »
Теперь, когда вы готовы отправить свои изменения в качестве новой удаленной ветки, выберите Remote »Push Advanced и убедитесь, что переключатель« Push current branch »выбран only .
Когда вы нажимаете кнопку, она спросит вас, хотите ли вы настроить отслеживание. Нажмите кнопку пропуска. Теперь у вас должна быть удаленная ветка.
Примечание. Назовите свою локальную ветку так, как вы хотите, чтобы она называлась удаленной ветвью перед ее нажатием.
4
c31983
31 Янв 2012 в 15:49
В SmartGit 4.5.2 это действительно просто. Просто перейдите в Удаленный> Добавить и введите URL-адрес удаленного
3
ajaybc
14 Май 2013 в 14:20
Начиная с SmartGit 6.5.9 (август 2015 г.):
- проверьте (дважды щелкните) ветку, на которой должна быть основана ваша новая ветка (скорее всего, вы уже это сделали)
-
щелкните правой кнопкой мыши (как описано) на вкладке «Ветви» в локальной ветке, на которой вы хотите создать новую ветку. Используйте (o) Custom Ref. Поле слишком короткое, что ошибочно заставляет меня думать, что это может быть только для коротких хэшей git, таких как или подобных, но на самом деле установка новых имен веток, таких как , работает должным образом: em>
-
дважды щелкните новую удаленную ветку на вкладке «Ветви» (исходная точка открыта). SmartGit, как обычно, предложит создать правильно названную и отслеживаемую локальную ветку.
2
Frank Nocke
7 Авг 2015 в 08:41
Текущая версия SmartGit (6.5.8) легко делает это с помощью команды .
- находится в контекстном меню на вкладке (не в меню уровня окна).
- Контекстное меню открывается щелчком правой кнопкой мыши по ветке, которую вы хотите нажать.
- Просто введите имя удаленной ветки, которую вы хотите создать, в диалоговом окне .
SmartGit создаст удаленную ветку, отправит в нее HEAD текущей ветки и установит удаленную ветку в качестве вашей ветки отслеживания.
(Все это предполагает, что вы хотите создать ветвь в своем стандартном репозитории отслеживания происхождения для текущего локального репо.)
1
user3546411
23 Май 2015 в 00:34
Шпаргалка:
Чтобы безопасно удалить локальное отделение, будь то отслеживание или отсутствие отслеживания:
Чтобы удалить локальную ветвь, будь то отслеживание или отсутствие отслеживания, принудительно:
Чтобы удалить ветку удаленного отслеживания:
Чтобы создать новую локальную не отслеживающую ветку:
Чтобы создать новую локальную ветвь отслеживания: (Обратите внимание, что если указан и является ветвью удаленного отслеживания, например , то флаг автоматически включается)
Пример:
Чтобы удалить ветку на удаленной машине:
Чтобы удалить все устаревшие ветви удаленного отслеживания, то есть там, где соответствующие ветви на удаленном компьютере больше не существуют:
Возможно, вы заметили, что в некоторых командах вы используете , а другие команды . Примеры: и .
Это может показаться произвольным, но есть простой способ запомнить, когда использовать косую черту, а когда использовать пробел. Когда вы используете косую черту, вы имеете в виду ветку удаленного отслеживания на своем компьютере, тогда как при использовании пробела вы фактически имеете дело с веткой на удаленном компьютере по сети.
Как Переименовать Локальную Ветку Git?
Прежде чем мы начнём, убедитесь, что вы выбрали ветку, которую хотите переименовать:
git checkout staroje-imia
Если вы хотите посмотреть все локальные ветки, используйте следующую команду:
git branch --list
Разобравшись с этим, выполните следующее действие:
- Чтобы переименовать текущую ветку Git, добавьте к команде опцию -m:
git branch -m novoje-imia
- Вы также можете переименовать локальную ветку, находясь на другой ветке, используя следующие две команды:
git checkout master git branch -m staroje-imia novoje-imia
- Наконец, эта команда выведет список всех, как локальных, так и удалённых веток. Убедитесь, что ветка с новым названием есть в этом списке.
git branch -a
Как переименовать ветку
Иногда оказывается, что первоначально созданное имя ветки не самое лучшее. Его можно изменить.
Локальную
Если еще не выполнена команда push, то достаточно переименовать локальную ветку.
Чтобы переименовать локальную ветку, выполним команду:
$ git branch -m <old-name> <new-name>
Например, переименуем ветку testing в ветку test:
$ git branch –m testing test
Чтобы переименовать текущую ветку, выполним команду:
$ git branch -m <new-name>
Например, текущая ветка у нас subbranch_of_testing. Переименуем ее в subbranch:
$ git branch –m subbranch
Удаленную
Переименовать удаленную ветку (ветку в удаленном репозитории) нельзя. Можно удалить ее и отправить в репозиторий локальную ветку с новым именем:
$ git push origin :old-name new-name
здесь origin — имя удаленного репозитория (обычно удаленный репозиторий так называется),old-name — имя ветки локальной ветки,new-name — новое имя ветки в удаленном репозитории.
Например, надо переименовать ветку testing в test:
$ git push origin :testing test
12 ответов
Лучший ответ
Если ветки только локальные, вы можете использовать -d , если ветка была объединена, например
Если ветка содержит код, который вы никогда не планируете объединять, используйте вместо него -D .
Если ветка находится в репозитории восходящего потока (на Bitbucket), вы можете удалить удаленную ссылку с помощью
Кроме того, если вы находитесь на веб-сайте Bitbucket, вы можете удалить созданные вами ветки, перейдя на вкладку Функциональные ветки в разделе Коммиты на сайте. Там вы найдете значок с многоточием. Нажмите на нее, а затем выберите Удалить ветку . Только убедитесь, что вы хотите сбросить туда все изменения!
247
steampowered
20 Мар 2016 в 17:18
Попробуйте эту команду, она очистит все ветки, которые были объединены с веткой .
1
Ehab Al-Hakawati
27 Мар 2019 в 11:51
Я написал этот небольшой скрипт, когда количество веток в моем репо перевалило за несколько сотен. Я не знал о других методах (с CLI), поэтому решил автоматизировать их с помощью селена. Он просто открывает веб-сайт Bitbucket, переходит в раздел «Филиалы», прокручивает страницу до конца и нажимает на каждое меню параметров ветки -> нажимает кнопку «Удалить» -> нажимает «Да». Его можно настроить, чтобы сохранить последние N (100 — по умолчанию) веток и пропустить ветки с определенными именами (master, develop — по умолчанию, может быть больше). Если это вам подходит, вы можете попробовать то же самое.
Все, что вам нужно, — это клонировать репозиторий, загрузить соответствующую версию Chrome-webdriver, ввести несколько констант, таких как URL-адрес, в ваш репозиторий и запустить скрипт.
Код достаточно прост для понимания. Если у вас есть вопросы, напишите комментарии / создайте проблему.
2
Dan
20 Июн 2019 в 17:22
Если вы используете среду разработки pycharm для разработки и уже добавили с ней Git. вы можете напрямую удалить удаленную ветку из pycharm. На панели инструментов VCS -> Git -> Ветви -> Выбрать ветку -> и удалить . Он удалит его с удаленного сервера git.
2
Jyoti Amage
17 Сен 2018 в 07:35
Шаг 1. Войдите в Bitbucket
Шаг 2: Выберите ваш репозиторий в списке репозиториев.
Шаг 3: Выберите ветви в меню слева.
Шаг 4: Курсор на ветке щелкните на трех точках (…) Выберите Удалить (см. Изображение внизу)
4
Nanhe Kumar
4 Авг 2018 в 07:55
В Bitbucket перейдите к веткам в меню слева.
- Выберите ветку, которую хотите удалить.
- Перейдите в столбец действий, нажмите на три точки (…) и выберите удалить.
9
Prashant Sharma
20 Сен 2017 в 06:03
Я мог удалить большую часть своих веток, но одна выглядела так, и я не мог ее удалить:
Оказалось, что кто-то установил под и оттуда снял флажок . Надеюсь, это может кому-то помочь.
Обновление : где находятся настройки из вопроса в комментарии. Войдите в репозиторий, который вы не хотите редактировать, чтобы открыть меню. Чтобы изменить это, вам могут потребоваться права администратора.
10
Ogglas
17 Янв 2018 в 09:49
В дополнение к ответу @Marcus теперь вы также можете удалить удаленную ветку с помощью:
23
philipvr
15 Сен 2017 в 20:33
Для удаления ветки из Bitbucket,
- Перейдите в Обзор (ваш репозиторий> ветки на левой боковой панели)
- Щелкните количество веток (это должно показать вам список веток)
- Нажмите на ветку, которую хотите удалить
- В правом верхнем углу нажмите на 3 точки (кроме кнопки «Объединить»).
- Есть опция «Удалить ветку», если у вас есть права.
45
lealceldeiro
25 Июл 2019 в 11:11
Чтобы получить , введите в командной строке
MJ Montes
28 Авг 2020 в 04:36
Если вам нравится веселье, вы можете просто перейти на страницу со списком ваших веток (например, объединенных) и просто запустить в консоли javascript:
КАК ЭТО УСТРОЕНО
Сначала нам нужна страница с токеном CSRF в источнике страницы, поэтому я выбираю:
Затем для каждой ветки (в списке веток) он получает токен CSRF и удаляет эту ветку.
Не забывайте предотвращать чувствительные ветки перед удалением в настройках репо.
Это НЕ удалит основную ветку.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ
Вы должны быть авторизованы.
Он удаляет только ветки, видимые на этой странице (поэтому, чтобы удалить остальные ветки, вам нужно перейти на следующую страницу).
turkus
3 Июл 2019 в 11:19
В Android Studio параметры в правом углу среды IDE:
- Изменить / оформить заказ в другом местном филиале
- Удалите ненужные локальные ветки (например, v0.0.1 …)
- Удалить нежелательные удаленные ветки (например, origin / v0.0.1 …) — на этом шаге будут удалены ветки в BitBucket, если удаление ветвей не запрещено и они не являются ГЛАВНЫМ ВЕТВОМ .
Tim Long
9 Ноя 2015 в 23:20
6 ответов
Лучший ответ
Я не знаю никакого способа сделать именно то, что вы просите (можно откатиться к первой фиксации, но не удалить всю историю, поскольку история будет, по крайней мере, содержать эту первоначальную фиксацию.)
На вашем месте я бы просто удалил удаленное репо и каталог локального репо и начал бы заново с .
Самое близкое, что я могу сделать к тому, о чем вы просите, — это откат всех, кроме первого коммита. Для этого сначала нужно найти SHA1 первого коммита, например:
… а затем запустите либо
…или
… в зависимости от того, хотите ли вы сохранить или отменить все изменения, сделанные с момента первоначальной фиксации. (Выше предполагается, что у вас есть только одна ветка. Если нет, вам также придется удалить любые другие ветки, которые у вас есть с .)
Наконец, вы бы сбежали
(Надеюсь, вы понимаете, что нельзя использовать всякий раз, когда вы нажимаете на репо, которым делятся с другими.)
К сожалению, как уже объяснялось, этот подход не удаляет всю историю.
Если вы хотите делать это часто, я бы рекомендовал сразу после запустить что-то вроде
Это поместит пустой коммит в корень вашей истории и пометит его тегом с именем ROOT. Тогда вы можете сделать что-то вроде
Или
Чтобы вернуть вас к первой пустой фиксации.
Чтобы лучше понять, что делает , я рекомендую прочитать это .
46
kjo
11 Май 2013 в 18:28
Касса к мастеру:
Показать журнал:
Сброс до первой фиксации:
Затем отправьте изменения на удаленный:
Alexey Slusar
20 Ноя 2019 в 13:28
Вы, конечно, можете удалить всю историю в текущей ветке, используя:
Где — это sha1 некоторой исторической фиксации.
Однако это редко требуется, если вы учитесь и хотите поэкспериментировать.
Вместо этого вы можете просто создать новую ветку для своих экспериментов, например:
По большей части это будет идентично первому варианту, но вы можете переключиться обратно, если хотите.
Вы также можете переименовывать ветви, чтобы ваши эксперименты имели оригинальные названия веток, например:
Если вы хотите уничтожить ветку , просто выполните:
1
mvp
11 Май 2013 в 20:57
Чтобы выполнить чистый сброс, вы хотите удалить журналы и любые изменения конфигурации и все такое, я бы сделал это, загрузив только главный корень в новое репо:
(т.е. в значительной степени то, что сказал VonC)
(добавлен для защиты от неверных меток времени)
4
Community
23 Май 2017 в 10:31
Вы можете вернуться к первой фиксации:
«Как показать первую фиксацию с помощью ‘git log’? «описывает, как найти первую фиксацию:
(работает, только если нет нескольких корневых веток)
Обратите внимание, что после сброса, чтобы действительно получить чистый лист, вы можете просто создать новое репо и скопировать содержимое вашей первой фиксации, которую вы только что сбросили (и добавить и зафиксировать в этом новое репо)
11
Community
23 Май 2017 в 12:02
Просто удалите каталог после проверки вашего первого коммита. Как таковой:
11
GoZoner
12 Май 2013 в 00:04
Добавление удалённых репозиториев
В предыдущих разделах мы уже упоминали и приводили примеры добавления удалённых репозиториев, сейчас рассмотрим эту операцию подробнее. Для того, чтобы добавить удалённый репозиторий и присвоить ему имя (shortname), просто выполните команду :
Теперь, вместо указания полного пути, вы можете использовать . Например, если вы хотите получить изменения, которые есть у Пола, но нету у вас, вы можете выполнить команду :
Ветка из репозитория Пола сейчас доступна вам под именем r. Вы можете слить её с одной из ваших веток или переключить на неё локальную ветку, чтобы просмотреть ее содержимое. Более подробно работа с ветками рассмотрена в главе «Ветвление в Git».
Прочие команды и необходимые возможности
Хэш — уникальная идентификация объектов
В git для идентификации любых объектов используется уникальный (то есть с
огромной вероятностью уникальный) хэш из 40 символов, который определяется
хэшируюшей функцией на основе содержимого объекта. Объекты — это все: коммиты,
файлы, тэги, деревья. Поскольку хэш уникален для содержимого, например, файла,
то и сравнивать такие файлы очень легко — достаточно просто сравнить две строки
в сорок символов.
Больше всего нас интересует тот факт, что хэши идентифицируют коммиты. В этом
смысле хэш — продвинутый аналог ревизий Subversion. Несколько примеров
использования хэшей в качестве способа адресации.
Ищет разницу текущего состояния проекта и коммита за номером… сами видите,
каким:
То же самое, но оставляем только шесть первых символов. Git поймет, о каком
коммите идет речь, если не существует другого коммита с таким началом хэша:
Иногда хватает и четырех символов:
Читает лог с коммита по коммит:
Разумеется, человеку пользоваться хэшами не так удобно, как машине, именно
поэтому были введены другие объекты — тэги.
git tag — тэги как способ пометить уникальный коммит
Тэг (tag) — это объект, связанный с коммитом; хранящий ссылку на сам коммит,
имя автора, собственное имя и некоторый комментарий. Кроме того, разработчик
может оставлять на таких тегах собственную цифровую подпись.
Кроме этого в git представленные так называемые «легковесные тэги» (lightweight
tags), состоящие только из имени и ссылки на коммит. Такие тэги, как правило,
используются для упрощения навигации по дереву истории; создать их очень легко.
Создаёт «легковесный» тэг, связанный с последним коммитом; если тэг уже есть,
то еще один создан не будет:
Помечает определенный коммит:
Удаляет тег:
Перечисляет тэги:
Создаёт тэг для последнего коммита, заменяет существующий, если таковой уже был:
После создания тэга его имя можно использовать вместо хэша в любых командах
вроде git diff, git log и так далее:
Обычные тэги имеет смысл использовать для приложения к коммиту какой-либо
информации, вроде номера версии и комментария к нему. Иными словами, если в
комментарии к коммиту пишешь «исправил такой-то баг», то в комментарии к тэгу по
имени «v1.0» будет что-то вроде «стабильная версия, готовая к использованию».
Создаёт обычный тэг для последнего коммита; будет вызван текстовый редактор для
составления комментария:
Создаёт обычный тэг, сразу указав в качестве аргумента комментарий:
Команды перечисления, удаления, перезаписи для обычных тэгов не отличаются от
команд для «легковесных» тэгов.
Относительная адресация
Вместо ревизий и тэгов в качестве имени коммита можно опираться на еще один
механизм — относительную адресацию. Например, можно обратиться прямо к предку
последнего коммита ветки master:
Если после «птички» поставить цифру, то можно адресоваться по нескольким предкам
коммитов слияния:
Ищет изменения по сравнению со вторым предком последнего коммита в master; HEAD
здесь — указатель на последний коммит активной ветки.
Аналогично, тильдой можно просто указывать, насколько глубоко в историю ветки
нужно погрузиться.
Что привнес «дедушка» нынешнего коммита:
То же самое:
Обозначения можно объединять, чтобы добраться до нужного коммита:
Файл .gitignore — объясняем git, какие файлы следует игнорировать
Иногда по директориям проекта встречаются файлы, которые не хочется постоянно
видеть в сводке git status. Например, вспомогательные файлы текстовых редакторов,
временные файлы и прочий мусор.
Заставить git status игнорировать определенные файлы можно, создав в корне или
глубже по дереву (если ограничения должны быть только в определенных директория)
файл .gitignore. В этих файлах можно описывать шаблоны игнорируемых файлов
определенного формата.
Пример содержимого такого файла:
Существуют и другие способы указания игнорируемых файлов, о которых можно узнать
из справки git help gitignore.
Серверные команды репозитория
Команда создания вспомогательных файлов для dumb-сервера в $GIT_DIR/info и
$GIT_OBJECT_DIRECTORY/info каталогах, чтобы помочь клиентам узнать, какие ссылки
и пакеты есть на сервере:
Проверяет сколько объектов будет потеряно и объём освобождаемого места при
перепаковке репозитория:
Переупаковывает локальный репозиторий: