2016-02-10 2 views
0

У меня очень часто есть клон разработки git-репозитория на моем ноутбуке, на котором я создаю ветки функций и такие, чтобы реализовать функции. Когда я на полпути работаю над функцией, но мне нужно работать над чем-то другим в том же репозитории, я делаю git stash и проверяю новую ветку для этой функции.Определите, можно ли удалить локальный репозиторий git

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

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

Есть ли команда git, которая может рассказать мне, какие новые файлы и изменения, а какие ветви функций доступны на моем ноутбуке, но не на origin, чтобы я мог определить, безопасно ли это или нет, удалить репозиторий git мой ноутбук?

Было бы хорошо, если команда будет:

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

  • для каждого состояния ветви, есть ли локальные изменения, еще не зафиксированные или только спрятанные.

  • другие ямы, о которых я должен знать.

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

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

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

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

ответ

1

Первый (и очень хорошо) шаг смотрит на выходе

git push origin --all --dry-run 

Это показывает, какие ветви бы следует нажать на пульт дистанционного управления. Если выходной файл пуст (или «обновлен» или STH.), Локальные ветви могут быть удалены безопасно.

Другая команда помощи является

git fetch origin 
git cherry -v master origin/master 

Это показывает, совершающие общую для вашего местного мастера и происхождения/мастеров. То, что с префиксом - знак уже начальный/начальный, те, что префикс a + знак нет, т. Е. Если все зафиксированные показания префиксны с -, безопасно удалить локальную ветвь. Если некоторые из них имеют префикс +, то мастер и источник/мастер отличаются этими коммитами.

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

0

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

Мне кажется, что

git clean -nxd 

отвечает на этот вопрос.

Смежные вопросы