по мнению status никаких неотслеживаемых файлов нет, а по мнению pull есть неотслеживаемые файлы которые будут перезаписаны. Как так?
А вот кстати и коммит который пытаюсь спулить:
[htdocs]$ git status
Что может быть не так?
git add --all .
git commit -am "..."
git remote set-url origin git@gitlab.com:malashko/bla-bla-bla.git
git reset --hard
git restore --source=хеш_коммита --staged --worktree .
--source=хеш_коммита
, вы говорите Git использовать содержимое файлов из этого коммита.--staged
значит, что изменения будут сразу проиндексированы, как если бы вы их добавили с помощью git add
. Этот флаг особенно полезен, если вы хотите сбросить изменения, которые уже были добавлены в индекс, но ещё не закоммичены.--worktree
указывает Git восстановить файлы в рабочем каталоге до состояния указанного коммита. Это означает, что любые незакоммиченные изменения в рабочих файлах будут сброшены, и файлы будут восстановлены до состояния, соответствующего указанному коммиту.rm -r "~/.git"
~
)--mixed
— откатывает коммиты и индекс: оставляет изменения в рабочем каталоге, но очищает индекс. Это режим по умолчанию команды reset
без опций.--soft
, когда делается всё то же, что и выше, но индекс не трогается.revert
и он не годится для причесывания истории. Использвую GitHub DesktopЗачем вы его используете? Чего именно вам не хватает в Git-клиенте встроенном в Visual Studio?
git rm --cached "путь/к/файлу"
git commit
git checkout HEAD~1 -- "путь/к/файлу"
он просит ввести описание
ввожу несколько символов
и так зависает
Если переоткрыть командную строку и запустить опять он говорит что есть swap файл
говорит удалить его
# удалите папку .git, которая внутри каталога bitrix
rm -rf "bitrix/.git"
# скажите гиту, чтобы он забыл, что перед этим видел там вложенный репозиторий
git rm --cached "bitrix/"
Git удалил коммит
Как нормально переключаться, чтобы гит не удалял ничего?
вообще 1 лог остался изначальный
если созданы новые файлы или переименованы, и ты возвращаешься, то он их не удаляет
git checkout master
git pull origin
git checkout branch-b
git merge master
git pull origin master
git add .
git push origin
git merge --continue
git push # ну и отправить результат
git checkout --orphan second
git pull second second # во второй репе ветка называется second
git switch master
git merge second --allow-unrelated-histories
# решаю конфликты
git pull second second --allow-unrelated-histories
хочу указать у коммита 0f6a3f0 родительским коммитом d5c58d8
git fetch second # скачать все коммиты из второго репо
git switch second # перейти в ветку second
git rebase master # пересобрать ветку second с вершины ветки master
dropping 0f6a3f0 third, "two" -- patch contents already upstream
Successfully rebased and updated refs/heads/second.
git switch master # вернуться в master
git merge second --no-ff # влить second в master
git log --oneline --graph
* 13dddb5 (HEAD -> master) Merge branch 'second'
|\
| * 515f80e (second) fourth, "three"
|/
* d5c58d8 second, "two"
* fcc376b first, "one"
git log --oneline --graph
* 515f80e (HEAD -> master, second) fourth, "three"
* d5c58d8 second, "two"
* fcc376b first, "one"
если нажать pull или fetch all, то локальная версия изменений на сервере не видит.
git fetch # скачать обновления заранее, чтобы не ждать во время обновления файлов
git stash # временно спрятать локальные правки
git pull # применить обновления к сайту
git stash pop # вернуть локальные правки обратно
Это немного помогает избежать конфликтов между вашими локальными изменениями и изменениями из внешнего репозитория. Но лучше предварительно закоммитить изменения на сервере и перенести их на рабочий компьютер.