LINUX.ORG.RU

Коммит без working directory

 


0

1

Достался мне код. После многочисленных правок его нужно вернуть на родину, в bare репозиторий. По недоразумению код мне достался без '.git'. Как с наименьшим извратом закоммитить его туда? Правильной ли будет цепочка

git clone bla gitcode
find mycode -name "*.c" -o -name "*.h" -exec cp {} gitcode/ \;
cd gitcode
git commit
...



Последнее исправление: float (всего исправлений: 2)

//много написал, всё стер
пока писал - придумал

в твоем коде без гит:
git init
git remote add origin your_bare_git_url

# предположим, что твои местные изменения оказались на ветке master локального репа

git checkout -b mergebranch origin/remoteBranch
git merge master
//тут борьба с мёржконфликтами, если будут
git push origin mergebranch:remoteBranch

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 2)
Ответ на: комментарий от s9gf4ult

да

ой-ли?

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

aol ★★★★★
()
Ответ на: комментарий от aol

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

Узнаешь что за коммит, делаешь ветку на его базе, туда копируешь, комитишь, сливаешь ветку с мастером.

s9gf4ult ★★
()
Ответ на: комментарий от aol

у него снапшот, предположим, двухнедельной давности

Забыл упомянуть. К счастью, у меня случай проще, и в репозиторий со времени снапшота коммитов не было.

float
() автор топика
Ответ на: комментарий от float

хорошее дополнение.

если уверен, что не было, то делай, как предложил в ОП.

aol ★★★★★
()
Ответ на: комментарий от qnikst

Будучи лидером 2 проектов в генте - правлю страницы проектов(выкладываю логи собраний и т.д.), так что не так уж и часто конечно, но приходится :-)

Pinkbyte ★★★★★
()

примерно так (детали типа git status|pull и т.п. опущены):

- делаешь из master ветку A

- туда копируешь все из «баре-каталога»

- делаешь коммит в ветке A

- для предосторожности делаешь из master еще B

- переходишь на B

- делаешь там git merge A

- проверяешь, устраняешь конфликты, коммит если надо

далее делаешь git merge master

если все ок то: git checkout master git merge B ... git push ...

сделай tag или запомни коммит, если пойдет что-то не так чтобы вернуться по checkout.

swwwfactory ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.