Puncte:1

Folosind git și github pentru a partaja conținutul unui folder care trebuie actualizat zilnic

drapel ng

Am un folder pe care vreau să-l partajez public cu alții, conținutul folderului presupune să fie actualizat zilnic: unele fișiere vor fi schimbate, altele sunt șterse, altele sunt adăugate. Aș dori să folosesc GitHub pentru asta și creați un cronjob care presupune să se ocupe de actualizările depozitului. Ce fel de comenzile git trebuie să folosesc dacă vreau întotdeauna să am o copie exactă a folderului local din depozitul meu git.

Acesta este codul pe care intenționez să-l folosesc, dar am îndoieli cu privire la fișierele șterse local (dacă le acoperă sau nu)ââï¸:

cd ~/myfolder
git init
git add .
git commit -a -m "$data_actuală"

Mulțumesc.

Puncte:0
drapel jp

Acest cod este aproape corect pentru configurarea inițială a depozitului dvs., mai sunt câțiva pași pe care trebuie să îi adăugați la sfârșit:

git branch -M main
git remote add origin [email protected]:username/repository-name.git #Editați acest lucru pentru a se potrivi cu depozitul dvs. Github
git push -u origin main

Prima linie pe care am adăugat-o setează ramura pe git (ramura implicită Github este principal), a doua linie setează originea la distanță, iar linia finală împinge folderul în Github.

Scriptul pe care îl apelați din crontab ar trebui să arate astfel:

cd ~/myfolder
git add .
git commit -a -m "$data_actuală"
git push

Presupunând că l-ai numit upload-script.sh, aceasta este intrarea crontab, care va rula la fiecare minut (cel mai rapid interval permis crontab) fără ieșire:

* * * * * ~/upload-script.sh >>/dev/null 2>&1

Nu sunt sigur dacă puteți limita rata de Github pentru acest lucru, așa că ar putea fi necesar să reduceți viteza de împingere. Puteți genera intrări crontab folosind generator crontab daca acesta este cazul.

Și pentru referință, iată documentația Github despre cum să configurați un depozit la distanță (util pentru depanarea problemelor git): https://docs.github.com/en/get-started/using-git/pusshing-commits-to-a-remote-repository

Sper că acest lucru vă ajută :)

Ra Spirit avatar
drapel ng
Vă mulțumesc foarte mult pentru răspunsul dvs. general. Am observat că folderul .git este folosit mult spațiu. Făceam câteva cercetări și am găsit încă 2 comenzi pentru a reduce dimensiunea folderului, care este: `git fsck` `git prune` Întrebarea mea este să le folosesc? după cum am spus, nu am nevoie de niciun istoric al fișierelor. De asemenea, ar fi minunat dacă există o modalitate de a obține depozitul fără folderul .git sau cu o dimensiune minimă. Desigur, pot șterge folderul după, dar sunt îngrijorat de lățimea de bandă pe care aș dori să o salvez. Mulțumesc!
Ra Spirit avatar
drapel ng
Are sens să faci codul așa: `cd ~/myfolder; git fsck; git prune; git add .; git commit -a -m "$data_curentei"; git push`'
Pranav Sharma avatar
drapel jp
Sincer, dacă nu aveți nevoie de istoric, atunci există metode mai bune pentru a face acest lucru decât Git (de exemplu, stocare în cloud, servicii localexpose), dar modificările dvs. ar trebui să mențină dimensiunea .git la minim. De asemenea, Git nu încarcă întregul depozit de fiecare dată când împingeți, ci doar fișierele care s-au schimbat de la ultima împingere (consultați această întrebare pe SO: https://stackoverflow.com/questions/26005031/what-does-git -împinge-do-exact).
Pranav Sharma avatar
drapel jp
De asemenea, am observat că ești destul de nou în SE, așa că bine ai venit :) dacă răspunsul meu a îndeplinit ceea ce ai nevoie, te rog să-l accepți pentru ca alți oameni să vadă ce te-a ajutat.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.