Wpis z mikrobloga

poradniki do git to jakiś rak
nikt nie umie po ludzku napisać o co chodzi, tylko każdy kopiuje książki czy h wie co

mam serwer, w nim katalog:
/var/www/html/test/
w nim plik jude.htlr

robię sobie git init w tym katalogu.
Później git add .
git commit -m "1 test"

Teraz klonuję to gówno by mieć u siebie lokalnie
git clone IPSERVERA:/var/www/html/test /var/www/html/test

no i mam lokalnie.

A teraz edytuję lokalne pliki i chcę wwalić na serwer
git add .
git commit -m "xxx"
git push

i mam błędy
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 277 bytes | 277.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: is denied, because it will make the index and work tree inconsistent
remote: with what you pushed, and will require 'git reset --hard' to match
remote: the work tree to HEAD.
remote:
remote: You can set the 'receive.denyCurrentBranch' configuration variable
remote: to 'ignore' or 'warn' in the remote repository to allow pushing into
remote: its current branch; however, this is not recommended unless you
remote: arranged to update its work tree to match what you pushed in some
remote: other way.
remote:
remote: To squelch this message and still keep the default behaviour, set
remote: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

! [remote rejected] master -> master (branch is currently checked out)

blablabal

na stackoverflow każą wyjechać pliki, zostawić sam .git i zrobić bare coś tam.

nie działa. I ch wie jak zrobić by to działało bo nikt nie używa gita w ten sposób. Zero poradników

#webdev #naukaprogramowania #git
  • 7
git clone IPSERVERA:/var/www/html/test /var/www/html/test


@DoomsDayHellno: możliwe że klonując w ten sposób masz repozytorium "bare", w którym gdzie indziej jest katalog roboczy gita, a gdzie indziej trzymane są dane

"bare" jest trybem do "udostępnienia kodu" bez jednoczesnego "udostępnienia repozytorium"

wydaje mi się że jeśli zrobisz to tak jak robi 99% devów, którzy chcą coś commitować, czyli:

cd /var/www/html/test
git clone IPSERVERA:/var/www/html/test
to problem się rozwiąże. A jeśli nie to kombinuj z konfiguracją
@DoomsDayHellno: W skrócie: nie jest bezpieczną operacją wrzucać coś w taki sposób do repo, gdy masz zabrudzone drzewo, bo w ten sposób można byłoby sobie nadpisywać zmiany, czyli #!$%@?ący mógłby stwierdzić "a walić Twój local tree". Powyższa flaga pozwala Ci na zaktualizowanie wtedy, gdy working local tree jest czyste na remocie.

Całe bare repo i to #!$%@? służy do tego, że tworzysz sobie takie repo, w którym de facto nie ma
@SwordPL: ja #!$%@? wiecej #!$%@? sie niz to potrzebne juz lepiej robic sobie kopie na dysku i zrobic jakis gitopodobny program pokazujacy zmiany w pliku w postaci aplikacji