Nu kai iš lempos pradeda nepushint tai norisi mest nafig. ačiū, padėjo: (git config --bool core.bare true). On 2012.10.23 11:50, Laimis wrote: > VaidasB rašė: >> nu va kitas pavyzdys/problema. >> kažkas susifakapino kai perkėliau projektą į gilesnį folderį. Pushinant >> gaunu idiotiškus messagus apie bare repozitory ir pan. siūlo daryt >> branchą ir pan, kam man to reik? nu padariau aš tą branch, supushino >> kažkur. ir dabar neesu tikras ar mano kodas guli serveryje ar ne. vietoj >> to kad dirbčiau, kas reikia, turiu aškintis gito "privalumus". > > Konkretumas, tai kaip bobos už kampo: kažkas kažką kažkur kažkaip... :-) > Su tokiu konkretumu, tai turi dar mažiau šansų išsiaškinti svn > susifakup'inimo privalumus... > Konkrečiai kas susivėlė ir ką konkrečiai darant? Konkrečiai kokie > klaidos pranešimai? > > Bet šiaip jau veikiausiai pražiopsojai _tai_ darydamas git push: > -f, --force > Usually, the command refuses to update a remote ref that is not an > ancestor of the local ref used to overwrite it. This flag disables the > check. This can cause the remote repository to lose commits; use it > with care. > > Bet apie viską plačiau; pabandysiu paaiškini esmę: > git push atsisako push'inti, jei remote repozitorija yra su darbine > direktorija ir push'inamas branch'as buvo lokaliai checkout'intas. > Supaprastinus, tai tokiu būdu saugomasi, kad nupush'inus nebūtų > perrašyti remote repozitorijos darbinės direktorijos (ir indekso) > pakeitimai, kurie galbūt net nebuvo commit'inti. > Analogijai tiktų pavyzdys, jei svn'e išsicheckout'intum kokią > direktoriją, joje pridarytum pakeitimų ir paskui ant viršaus (pakeitimų > nenucommit'inus) norėtum vėl išsicheckout'inti kokią direktoriją. > Rizikuoji prarasti pakeitimus ir svn'as to neleistų (nebent nurodytum > --force). Logiška, kad ir git'as to neleidžia, ar ne? > > Jei žinai, ką darai ir esi tikras, kad remote repozitorijos darbinės > direktorijos (su išchekout'intu branch'u, kurį ir push'ini) niekas > nekeičia (ten lokaliai niekas nedirba), tai gali kaskart naudoti --force > raktą, tačiau nesiūlyčiau taip daryti ir prie to priprasti. > > Kitas variantai (jei remote'e kažkas dirba lokaliai): > - traukti pakeitimus iš tavęs remote pusėje: git pull; > - push'inti į atskirą branch'ą remote repozitorijoje; tas, kas dirba > pats susimerge'ins pakeitimus, kuriuos sustūmei. > > Variantai, kai remote niekas lokaliai nedirba (tai — centrinė/serverinė > repozitorija): > - susikurti dummy branch'ą ir į jį persijungti, t.y. jį > išsichek'outinti: git branch dummy; git checkout dummy (tada bus galima > push'inti į šią remote repozitoriją); > > - paversti tą remote repozitoriją bare repozitorija, kuri apskritai > neturi darbinės direktorijos. Tą buvo galima padaryti nuo pat pradžių: > git --bare init, o dabar paversti remote repozitoriją į bare galima: > 1) pašalinti visus failus (išskyrus .git katalogą), esančius joje; > 2) perkelti .git katalogo turinį į pačią repozitorijos direktoriją: > (mv .git/* .); > 3) (git config --bool core.bare true). > > > > > >