Введение¶
Git (произн. «гит») — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux. На сегодняшний день поддерживается Джунио Хамано.
Система спроектирована как набор программ, специально разработанных с учётом их использования в скриптах. Это позволяет удобно создавать специализированные системы контроля версий на базе Git или пользовательские интерфейсы. Например, Cogito является именно таким примером фронтенда к репозиториям Git, а StGit использует Git для управления коллекцией патчей.
Git поддерживает быстрое разделение и слияние версий, включает инструменты для визуализации и навигации по нелинейной истории разработки. Как и Darcs, BitKeeper, Mercurial, SVK, Bazaar и Monotone, Git предоставляет каждому разработчику локальную копию всей истории разработки; изменения копируются из одного репозитория в другой.
Удалённый доступ к репозиториям Git обеспечивается git-daemon, gitosis, SSH- или HTTP-сервером. TCP-сервис git-daemon входит в дистрибутив Git и является наряду с SSH наиболее распространённым и надёжным методом доступа. Метод доступа по HTTP, несмотря на ряд ограничений, очень популярен в контролируемых сетях, потому что позволяет использовать существующие конфигурации сетевых фильтров.
Удаление и переименование удалённых репозиториев
Для переименования удалённого репозитория можно выполнить . Например, если вы хотите переименовать в , вы можете это сделать при помощи :
Стоит упомянуть, что это также изменит имена удалённых веток в вашем репозитории. То, к чему вы обращались как , теперь стало .
Если по какой-то причине вы хотите удалить удаленный репозиторий (вы сменили сервер или больше не используете определённое зеркало, или кто-то перестал вносить изменения), можете использовать или :
При удалении ссылки на удалённый репозиторий все отслеживаемые ветки и настройки, связанные с этим репозиторием, так же будут удалены.
Настройка нескольких remote
На самом деле использовать git таким способом довольно просто. Вы добавляете remote так же, как и существующую папку, за исключением того, что вместо добавления «исходного» remote вы даёте ему другое имя.
git remote add <ИМЯ> <URL>
Затем, когда вы хотите push на второй remote, добавьте удалённое имя и ветвь к своей команде push:
git push second master
Или переключите remote по умолчанию с помощью —set-upstream:
git push --set-upstream second master
Это простейшая настройка, однако она требует, чтобы вы либо передавали имя remote в качестве аргумента, либо каждый раз переключали remote.
На самом деле, если вы используете два remote, вам, вероятно, понадобится лучший способ управления отправкой кода на второй remote. Лучший способ справиться с этим в git — создать ещё одну ветвь для кода, отправленного во второй восходящий поток, например развёртывания в AWS CodeCommit.
Вы можете создать ветку с помощью checkout -b:
git checkout -b deployment
Затем добавьте развёртывание remote:
git remote add deployment <URL>
и загрузите основную ветку:
git fetch deployment master
Затем вы можете настроить восходящий поток для текущей ветки, запустив:
git branch --set-upstream-to=deployment/master
Вы можете повторить этот процесс для любого количества ветвей, что делает его отличным методом отслеживания нескольких remote. Однако помните, что это только локальная настройка, поэтому, если вы отправите эту ветку в свой основной репозиторий, у других не будет своих копий ветки развёртывания, настроенных на автоматическое использование второго remote.
Было бы идеально, если бы вторая ветвь была только односторонней, то есть вы только push (отправлять) код, а не pull (скачивать) новый код, иначе вы можете столкнуться с неожиданными конфликтами. Помимо этого, git отлично работает с несколькими remote.
Удаление файлов из git репозитория и из stage
Удаление файла из stage
Вначале разберемся со stage. Создадим ещё один файл.
> touch main.c
“Отправим” файл main.c в stage.
> git add main.c
Внесем изменения в README.md.
> echo "# README" > README.md
Информацию об этом также отправим в stage.
> git add README.md
Посмотрим на состояние stage.
> git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: README.md new file: main.c
Если нам необходимо убрать из stage, какой-то из этих файлов (main.c или README.md), то для этого можно воспользоваться командой git –rm cashed <filename>, сделаем это для файла main.c.
> git rm --cached main.c rm 'main.c'
Теперь посмотрим на состояние рабочей директории и stage.
> git status On branch master Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: README.md Untracked files: (use "git add <file>..." to include in what will be committed) main.c
Видно, что изменения в файле README.md готовы для коммита, а вот файл main.c перешел в состояние – неотслеживаемый. Отправим main.c в stage и, после этого, сделаем коммит в репозиторий.
> git add main.c > git commit -m "add main.c and do some changes in README.md" add main.c and do some changes in README.md 2 files changed, 1 insertion(+) create mode 100644 main.c
Удаление файлов из git репозитория
Удалить файл из репозитория можно двумя способами: первый – удалить его из рабочей директории и уведомить об этом git; второй – воспользоваться средствами git. Начнем с первого способа. Для начала посмотрим, какие файлы у нас хранятся в репозитории.
> git ls-tree master 100644 blob 7e59600739c96546163833214c36459e324bad0a README.md 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 main.c
Удалим файл main.c из рабочей директории.
> rm main.c > ls README.md
Уведомим об этом систему git.
> git rm main.c rm 'main.c'
Вместо команды git rm можно использовать git add, но само слово add в данном случае будет звучать несколько неоднозначно, поэтому лучше использовать rm. На данном этапе еще можно вернуть все назад с помощью команды git checkout — <filename>, в результате, в нашу рабочую директорию будет скопирован файл из репозитория. Создадим коммит, фиксирующий удаление файла.
> git commit -m "remove main.c" remove main.c 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 main.c
Теперь в репозитории остался только один файл README.md.
> git ls-tree master 100644 blob 7e59600739c96546163833214c36459e324bad0a README.md
Второй способ – это сразу использовать команду git rm без предварительного удаления файла из директории. Вновь создадим файл main.c и добавим его в репозиторий.
> touch main.c > git add main.c > git commit -m "add main.c file" add main.c file 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 main.c > git ls-tree master 100644 blob 7e59600739c96546163833214c36459e324bad0a README.md 100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 main.c
Удалим файл из репозитория.
> git rm main.c rm 'main.c' > git commit -m "deleted: main.c file" deleted: main.c file 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 main.c
Файла main.c больше нет в репозитории.
> git ls-tree master 100644 blob 7e59600739c96546163833214c36459e324bad0a README.md
Его также нет и в рабочем каталоге.
> ls README.md
Удалите файл README.md из репозитория самостоятельно.
14 ответов
Лучший ответ
Как уже упоминалось в Че ответе о добавлении удаленной части, которую, я считаю, вам все еще не хватает.
Что касается вашего редактирования для добавления удаленного на ваш локальный USB-накопитель. Прежде всего, у вас должен быть «чистый репозиторий», если вы хотите, чтобы ваш репозиторий был общим репозиторием, т.е. чтобы иметь возможность нажимать / извлекать / извлекать / объединять и т. Д.
Чтобы создать открытый / общий репозиторий, перейдите в желаемое место. В твоем случае:
См. здесь для получения дополнительной информации о создание голого репозитория
После того, как у вас есть чистый репозиторий, настроенный в желаемом месте, вы можете теперь добавить его в свою рабочую копию в качестве удаленного.
И теперь вы можете отправить свои изменения в свой репозиторий.
71
Community
23 Май 2017 в 10:31
Видите ли, это проблема, которую мы получаем, потому что либо ваше репо недоступно из интерфейса командной строки, либо у вас нет прав на это Второй случай прост: вы просто запрашиваете доступ, тогда вы сможете это сделать. для 1-го случая, если не работает, он предоставит решение в самом интерфейсе командной строки Просто выполните всего один шаг:
- . введите здесь описание изображения Доступ к можно получить с помощью пользовательского интерфейса Gitlab / Github -> clone -> copy https. ссылка на сайт а потом
- Теперь поднимите 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 репозиторий
Добавление файлов в репозиторий – это достаточно простая операция, мало чем отличающаяся от отправки изменений в отслеживаемых файлах в репозиторий. Мы уже не раз выполняли эту операцию в предыдущих уроках, но сделаем это ещё раз. Создадим новый репозиторий, для этого перейдите в каталог, в котором вы хотите его расположить и введите команду git init.
> git init
Создайте в каталоге файл README.md любым удобным для вас способом, мы сделаем это с помощью команды touch.
> touch README.md
Теперь проверим состояние отслеживаемой директории.
> git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) README.md nothing added to commit but untracked files present (use "git add" to track)
Как вы можете видеть: в рабочей директории есть один неотслеживаемый файл README.md. Git нам подсказывает, что нужно сделать для того, чтобы начать отслеживать изменения в файле README.md: необходимо выполнить команду git add, сделаем это.
> git add README.md
Посмотрим ещё раз на состояние.
> git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: README.md
Видно, что информация о появлении нового файла попала в stage. Для того чтобы это изменение зафиксировалось в репозитории необходимо выполнить команду git commit.
> git commit -m "add README.md file" add README.md file 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 README.md
Теперь в рабочей директории и в stage нет объектов, информацию об изменении которых необходимо внести в репозиторий.
> git status On branch master nothing to commit, working tree clean
В репозиторий был сделан один коммит.
> git log --oneline 0bb6c94 add README.md file
Получение изменений из удалённого репозитория (fetch и pull)
Как вы только что узнали, для получения данных из удалённых проектов, следует выполнить:
Данная команда связывается с указанным удалённым проектом и забирает все те данные, которых у вас ещё нет. После того как вы выполнили эту команду, у вас должны появиться ссылки на все ветки из этого удалённого проекта, которые вы можете просмотреть или слить в любой момент.
Когда вы клонируете репозиторий, команда автоматически добавляет этот удалённый репозиторий под именем «origin». Таким образом, извлекает все наработки, отправленные на этот сервер после того, как вы его клонировали (или получили изменения с помощью )
Важно отметить, что команда забирает данные в ваш локальный репозиторий, но не сливает их с какими-либо вашими наработками и не модифицирует то, над чем вы работаете в данный момент. Вам необходимо вручную слить эти данные с вашими, когда будете готовы
Если ветка настроена на отслеживание удалённой ветки (для получения дополнительной информации смотрите следующий раздел и главу «Ветвление в Git»), то вы можете использовать команду , чтобы автоматически получить изменения из удалённой ветки и слить их со своей текущей. Этот способ может оказаться более простым или более удобным. К тому же, по умолчанию команда автоматически настраивает вашу локальную ветку на отслеживание удалённой ветки на сервере, с которого вы клонировали репозиторий. Название веток может быть другим и зависит от ветки по умолчанию на сервере. Выполнение , как правило, извлекает (fetch) данные с сервера, с которого вы изначально клонировали, и автоматически пытается слить (merge) их с кодом, над которым вы в данный момент работаете.
Примечание
Начиная с версии 2.27, команда выдаёт предупреждение, если настройка не установлена. Git будет выводить это предупреждение каждый раз пока настройка не будет установлена.
Если хотите использовать поведение Git по умолчанию (простое смещение вперёд, если возможно, – иначе создание коммита слияния): .
Если хотите использовать перебазирование при получении изменений: .
git-filter-branch
Начать пожалуй стоит с , так как эта утилита является частью git и не требует установки.
Переходим в директорию с нужным проектом:
cd {GIT_PROJECT_LOCATION}
Первое что нужно сделать — это убедится, что у нас самая последняя версия репозитория и нет никаких локальных изменений.
bash:~$ git status On branch master nothing to commit, working directory clean bash:~$ git pull origin master From bitbucket.org:bosha/test-repo * branch master -> FETCH_HEAD Already up-to-date. bash:~$
Предположим, что мы случайно закомитили в репозиторий файл в котором у нас храниться пароль к базе данных. Проект в активной разработке и испольуется тестовая база данных, но по привычке пароль использовали такой же какой для входа в систему или ещё куда либо. Знакомая ситуация?
После того, как мы убедились что у нас последняя версия и отсутствуют локальные изменений, можно удалять файл:
bash:~$ git filter-branch --force --index-filter \ 'git rm --cached --ignore-unmatch .environment' \ --prune-empty --tag-name-filter cat -- --all Rewrite d402133542d0f0f1578e916b8a350842cc955870 (4/4) (0 seconds passed, remaining 0 predicted) rm '.environment' Ref 'refs/heads/master' was rewritten Ref 'refs/remotes/origin/master' was rewritten
В результате выполнения этой команды, в каждом коммите репозитория будет удален файл . Если необходимо удалить директорию, то к необходимо добавить ключ :
bash:~$ git filter-branch --force --index-filter \ 'git rm -f --cached --ignore-unmatch {DIRETORY_TO_REMOVE}/' \ --prune-empty --tag-name-filter cat -- --all
Если есть ещё файлы которые необходимо удалить — выполняете эту команду для каждого из них.
Важно: дабы избежать повторения этой неприятной ситуации, файл необходимо добавить в :
echo ".environment" >> .gitignore git add .gitignore git commit -m '.environment was added to .gitignore'
Теперь закомитим все наши изменения:
git push origin --force --all
Если использовали теги:
git push origin --force --tags
Как удалить локальный репозиторий 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-репозитория
Если с созданием и клонированием репозиториев все понятно, то как быть, когда папка с проектом уже существует, но в нее нужно поместить новые данные, удалив предыдущие, или когда Git-репозиторий на сервере больше не нужен. В таком случае осуществляется стандартное удаление.
В корне каталога с проектом необходимо избавиться от папки .git, о которой уже шла речь выше. Так вы удаляете только ту информацию, которая связана с Git, но сам проект остается. В Linux через Терминал вы должны перейти к каталогу с проектом и ввести следующую команду:
rm -rf .git
Еще один вариант – удаление .gitignore и .gitmodules в случае их наличия. Тогда команда меняет свой вид на:
rm -rf .git*
Остается только убедиться в отсутствии скрытой папки, которая может помешать инсталляции новой. Для этого существует простая команда ls -lah, выполнить которую необходимо с указанием того же каталога.
Только что мы разобрались с основами создания, клонирования и удаления Git-репозитория. Удачи!
Что происходит при удалении удаленного репозитория?
Удаление репозитория на GitHub похоже на полное удаление файла с вашего ПК. Однако при удалении удаленного репозитория следует учитывать следующее:
- Вы не можете получить удаленный репозиторий.
- Удаление удаленного репозитория не влияет на файлы проекта локально.
- Это также не влияет на ваш локальный репозиторий.
- Все комментарии, пакеты, рабочий процесс и администраторы удаляются вместе с ним.
- Удаленный репозиторий не может быть разветвлен.
Учитывая последствия удаления репозитория GitHub, вы можете передумать. Однако GitHub также позволяет вам архивировать репозитории вместо их удаления.
Вы можете получить доступ к этой опции, щелкнув Архивировать этот репозиторий в зоне опасности .
Зачем нужно удалять плохие репозитории GitHub
Вы же не хотите представлять грязный GitHub потенциальным работодателям во время поиска работы. Плохие репозитории, полные практического кода, или расплывчатые незавершенные проекты не дают хорошего представления о ваших способностях.
Кроме того, это может заставить потенциальных клиентов усомниться в вашей компетентности.
Эти проблемы могут не относиться к вам, если вы не используете GitHub профессионально. Но если вы планируете серьезно подойти к своим рабочим процессам и представить более профессиональный GitHub, вам следует очистить свои репозитории. Вы можете начать с удаления тех, которые не добавляют ценности вашим учетным данным GitHub.
8 ответов
Лучший ответ
Как говорит Дифур, ваша ситуация мало чем отличается от ситуации в Измените URI (URL) удаленного репозитория Git. Когда вы репозиторий, он добавляется как ваш под именем . Что вам нужно сделать сейчас (поскольку вы больше не используете старый источник), так это изменить URL-адрес :
Если исходный репозиторий будет часто обновляться, и вы хотите получать эти обновления время от времени, то вместо редактирования было бы лучше добавить новый :
Или, может быть, даже назовите старую :
Затем, когда вы захотите получить изменения из , вы можете:
Поскольку этот источник является образцом репозитория (кажется, своего рода шаблоном для начала), я не думаю, что его нужно хранить или разветвлять вообще — здесь я выберу первую альтернативу.
131
Community
23 Май 2017 в 11:54
GitHub: чужой репозиторий и ваш собственный репозиторий
Я буду называть чужой репозиторий другим репозиторием .
-
Создайте новый репозиторий на github.com. (это ваш репозиторий )
- Дайте ему то же имя, что и другой репозиторий .
- Не инициализируйте его с помощью README, .gitignore или лицензии.
-
Клонируйте другой репозиторий на свой локальный компьютер. (если вы еще этого не сделали)
git clone https://github.com/other-account/other-repository.git
-
Переименуйте текущий локальный репозиторий » origin » в » upstream «.
git remote rename origin upstream
-
Дайте локальному репозиторию » origin «, который указывает на ваш репозиторий .
git remote add origin https://github.com/your-account/your-repository.git
-
Переместите локальный репозиторий в ваш репозиторий на github.
Теперь ‘ origin ‘ указывает на ваш репозиторий , а ‘ upstream ‘ указывает на другой репозиторий .
- Создайте новую ветку для ваших изменений с .
- Вы можете как обычно в свой репозиторий .
- Используйте , чтобы перенести изменения из другого репозитория в вашу главную ветку.
64
Derek Soike
19 Мар 2018 в 16:52
Идея состоит в том, чтобы удалить и повторно инициализировать.
- перейдите в свою клонированную папку репо rm -rf .git
- повторно инициализируйте его, а затем добавьте свой пульт и сделайте первое нажатие.
13
MAOXU
14 Дек 2017 в 04:32
Вы можете сделать это, создав новый пульт из вашего локального репозитория (через командную строку).
Тогда вы можете позвонить:
Чтобы заменить установленный по умолчанию пульт «origin», вы можете запустить следующее:
8
bmorgan21
13 Авг 2013 в 03:50
Я думаю, что «самый вежливый способ» сделать это:
- Разветвите исходное репо в своей учетной записи GitHub
- Проверьте новую ветку для ваших изменений (на случай, если вы не сделали этого раньше)
- Добавьте новый пульт для вашего локального репозитория:
- Отправьте свою новую красивую ветку в репозиторий github:
Таким образом, у вас будет репо, разветвленное на исходное, а ваши изменения будут внесены в отдельную ветку. Это будет проще, если вы хотите отправить запрос на перенос в исходное репо.
7
llekn
3 Апр 2017 в 18:19
Взято из Git перемещает все в новое происхождение
В основном вам нужно связать новое репо с вашей папкой
1
Community
23 Май 2017 в 12:10
У меня была аналогичная ситуация, но в моем случае мне просто нужно было сделать, как предлагалось, но с https , например:
1
T J
25 Мар 2016 в 06:12
После клонирования скопируйте файлы из их папки в новую и начните заново с помощью git init,
У меня была аналогичная проблема, и мне пришлось изменить каталог папки, прежде чем я смог внести изменения в свое репо.
Или вы можете удалить текущий источник репозитория с помощью команды git remote remove origin.
1
F. X. Blankson
16 Авг 2020 в 17:23
Выводы
Несмотря на то, что файл и возможно удалить после случайного коммита, этого следует избегать. Есть несколько простых вещей которые стоит избегать, и наоборот использовать:
- Использовать программы с графическим интерфейсом для работы git. Они наглядно показывают какие файлы будут добавлены в коммит. Во всех средах разработки как правило есть либо дополнения, либо встроенные средства для работы с git которые помогают избежать таких ошибок. Если среда разработки которую вы используете не имеет средств работы с git, то есть графические интерефейсы. Я когда-то писал небольшой обзор графических интерфейсов для git;
- Избегать таких опасных команд как , и . Вместо них добавлять отдельные файлы с ;
- Использовать чтобы интерактивно просматривать и добавлять файлы;
- Перед добавлением файлов внимательно просматривать какие файлы были изменены и могут попасть в коммит .
Полезные ссылки: