Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 22-03-2015, 01:54   #1
Alessio465
Junior Member
 
Iscritto dal: Jul 2014
Messaggi: 7
[Git] Rebase

Ciao!

Non ho ben capito quale sia la differenza tra "rebase" e "merge". Grazie in anticipo!

Ultima modifica di Alessio465 : 22-03-2015 alle 13:13.
Alessio465 è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2015, 14:45   #2
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Merge è un operazione non distruttiva. Ti permette di unire i commit di due branch lasciando gli originali inalterati. Rebase è un operazione simile ma riscrive la storia del progetto modificando tutti i commit del branch sorgente per spostarli in quello di destinazione.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2015, 16:31   #3
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12900
Discussione interessante, direi di tenerla aperta e ne approfitto per chiedere ai più esperti una questione.

Supponiamo di avere due branch, uno master "stabile" e uno experimental (più sperimentale).

Inizialmente sono uguali, dopodiché man mano vengono aggiunte modifiche all'experimental.

A questo punto però si rende necessario un intervento correttivo sul master.

Qual è il modo migliore di importare le modifiche da master su experimental (che adesso è più avanti), ammesso naturalmente che questo abbia senso?
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2015, 18:40   #4
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Forse non ho capito bene come è la situazione. Però se experimental è l'unico su cui si è lavorato allora ha poco senso fare un merge da master ad experimental. Non ci sarebbe niente di cambiato.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2015, 19:11   #5
Alessio465
Junior Member
 
Iscritto dal: Jul 2014
Messaggi: 7
Attualmente nel master è stato caricato un branch A. Io lavoro in locale su un branch B che ho poi inviato al remoto con vari comandi per tracciare i files e infine "commit" e "push". Se compio delle modifiche a files che ho già caricato devo aggiornare il branch locale con "pull". Ora dovrei unire il mio branch al master, in modo da non sovrascrivere quello del mio amico che è già stato caricato.

Per prova, ho creato un mio repository e due branches. Ma quando faccio le operazioni come quelle precedenti, i files vengono sovrascritti. Quindi mi viene il dubbio di dover usare altri comandi tra cui rebase e merge oppure scaricare l'intero master in locale, aggiungere i file del mio branch e rinviare tutto il pacchetto.

Ultima modifica di Alessio465 : 22-03-2015 alle 19:14.
Alessio465 è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2015, 20:16   #6
OoZic
Senior Member
 
L'Avatar di OoZic
 
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
Per progetti complessi vi consiglio di leggere:
http://nvie.com/posts/a-successful-git-branching-model/

Per progetti semplici in genere la strategia che vedo piu' adottata e' tenere branch master che corrisponde al codice che c'e' in produzione, branch develop che corrisponde al codice che c'e' sullo staging e poi ogni qual volta si vuole cambiare qualcosa si ragiona in termine di feature/ticket (agile)/issue e si crea un branch nuovo a partire da develop.

Ad esempio in questa situazione
master <- develop

Codice:
git checkout develop
, e si va nel branch develop.

poi si fa un branch per la nuova feature, ad esempio per un nuovo sistema mail

Codice:
git checkout -b new-mail-system
si lavora, si fa commit, push, pull quel che va fatto e poi quando si e' finito di lavorare a questa feature si torna in develop
Codice:
git checkout develop
si fa il merge, risolvendo eventuali problemi
Codice:
git merge new-mail-system
poi eventualmente push a github e in questo momento develop contiene la feature aggiunta new-mail-system

il passo successivo e' dare un occhiata a continuous integration / deployment
__________________
> This is me <
When you gaze long into an abyss the abyss also gazes into you.
OoZic è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 00:36   #7
Alessio465
Junior Member
 
Iscritto dal: Jul 2014
Messaggi: 7
Grazie! Ho letto attentamente la guida. I passi descritti sono esattamente gli stessi che ho seguito, eppure non fa quel desidero... Farò altre prove..

Ultima modifica di Alessio465 : 23-03-2015 alle 01:01.
Alessio465 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 01:15   #8
OoZic
Senior Member
 
L'Avatar di OoZic
 
Iscritto dal: Nov 2010
Città: Londra
Messaggi: 620
Se quel che hai scritto e' corretto, NON stai facendo come ho spiegato

Cerco di risponderti punto per punto

Quote:
Originariamente inviato da Alessio465 Guarda i messaggi
Attualmente nel master è stato caricato un branch A.
Non capisco il senso. Il branch principale dovrebbe chiamarsi "master".
Se lo chiami in un altro modo fai confusione.
Lascia il branch principale "master" e crea altri branch per fare le feature come ti ho detto.

Quote:
Originariamente inviato da Alessio465 Guarda i messaggi
Io lavoro in locale su un branch B che ho poi inviato al remoto con vari comandi per tracciare i files
Se lavori in locale su un branch chiamato per ipotesi "branch-b" e lo invii al remoto non sovrascrivi nulla di master.

Se per te "branch B" significa che tu stai lavorando sul tuo master e il tuo amico sta lavorando sul suo master, allora non state usando branch ma siete di fatto tutti e due su master quindi le vostre modifiche vengono sovrascritte l uno dall'altro.

Quote:
Originariamente inviato da Alessio465 Guarda i messaggi
e infine "commit" e "push".
vedi sopra, se fai commit e push del branch "master" stai probabilmente sovrascrivendo le modifiche del tuo amico.

Quote:
Originariamente inviato da Alessio465 Guarda i messaggi
Se compio delle modifiche a files che ho già caricato devo aggiornare il branch locale con "pull". Ora dovrei unire il mio branch al master, in modo da non sovrascrivere quello del mio amico che è già stato caricato.
per fare questo tu lavori sul tuo "branch-b" locale, fai commit e push a remoto di quel branch.
Una volta che hai finito torni su "master' con "git checkout master" (meglio avere un branch intermedio chiamato develop come ti ho detto cmq)

una volta che sei dentro master ti assicuri di avere l'ultima versione quindi fai "git pull"

una volta che sei a pari col remoto puoi fare il merge delle tue modifiche con "git merge branch-b" e se non ci sono file che sono stati toccati dal tuo amico il merge e' immediato altrimenti dovresti risolvere i conflitti.

e' scontato che se tutti e due avete il permesso di fare push al repository avete lo stesso potere di sovrascrivere i file quindi mettetevi d'accordo nel caso tra di voi se devi sovrascrivergli qualcosa.

lui automaticamente la volta dopo deve fare "git pull" per aggiornare il suo master e poi fare merge delle sue modifiche e cosi via per te lo stesso sara' successivamente.

il modo per "decidere" generalmente a parte mandarsi un messaggio in chat puo' essere una cosa piu' formale come aprire una pull request e discutere li delle modifiche fatte e del possibile merge, che puo' essere poi fatto da entrambi sostanzialmente.

altrimenti uno dei due mantiene la possibilita' di fare push e l'altro fa solo pull request che devono essere approvate e mergiate da chi detiene il potere.
__________________
> This is me <
When you gaze long into an abyss the abyss also gazes into you.
OoZic è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 01:50   #9
Alessio465
Junior Member
 
Iscritto dal: Jul 2014
Messaggi: 7
Sì, quasi sicuramente sbaglio in qualche punto

Mi sono espresso male. Nel mio caso il branch principale (il trunk in SVN) è sempre il master, che inizialmente è vuoto. In un secondo tempo sono stati creati due branch (branchA e branchB). Il branchA è del mio collaboratore, sul branchB lavoro io.

Il branchA (file1 e file2) è in locale sul PC1 , il branchB (file3 e file4) è in locale sul PC2. Infine, tutto il contenuto del branchA è stato inviato al master.

Ora vorrei inviare al master il contenuto del mio ramo branchB, senza sovrascrivere il contenuto del primo, in modo che il master contenga tutti e quattro i file.

Codice:
git checkout -b branchB
git ... (aggiunge files, ecc..)
git checkout master
git pull
git merge branchB
I files contenuti nel master (provenienti dal branchA) vengono persi, mentre al loro posto trovo i miei...

Facendo git pull dal master, non mi viene scaricato tutto il suo contenuto... solo una parte (?)

Ultima modifica di Alessio465 : 23-03-2015 alle 02:14.
Alessio465 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 09:40   #10
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Quello che hai scritto sembra giusto. Ho provato in due minuti a ricreare quello che hai descritto e funziona senza problemi. Alla fine ho ho file1, file2, file3 e file4 nella cartella.

State probabilmente sbagliando qualche comando ma senza la sequenza esatta dei comandi che sono stati dati è difficile capire dove commettete l'errore.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 12:49   #11
Alessio465
Junior Member
 
Iscritto dal: Jul 2014
Messaggi: 7
1) Ho creato il repository Prova (nel master c'è un file README.md)

2) Sul Desktop ho creato una cartella "prova" in cui ho clonato il repository

3) Ho creato un nuovo branch (ramoA), ho cancellato il file README.md in locale e ho inserito una cartella "ramoA" con dentro un file "testoA.txt"

4) Ho aggiunto i file al ramoA, infine li ho inviati al server remoto. Fin qui ok.

5) Ripasso al master, faccio il pull, e unisco il ramoA... invio al remoto e... sul master trovo la cartella ramoA con dentro testoA.txt, ma il README.md è scomparso. (?)

Ultima modifica di Alessio465 : 23-03-2015 alle 17:42.
Alessio465 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 14:05   #12
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Ma è normale che non ci sia più README.md. Lo hai cancellato quando eri in ramoA ed hai fatto il commit di quella modifica. Se subito dopo fai il merge in master giustamente lo cancella anche li.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 14:28   #13
Alessio465
Junior Member
 
Iscritto dal: Jul 2014
Messaggi: 7
Ok, il punto è questo. Nel mio branch non ho i file del master... voglio solo unirlo a quest'ultimo senza un ulteriore commit con messaggio.

Cosa devo fare, passo per passo?
Alessio465 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 16:06   #14
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Ok. Allora spostati in master e dai git pull così sei sicuro di avere l'ultima versione disponibile sul server. Torna nel tuo branch con git checkout ramoA. Ora dai git merge master così prendi le modifiche fatte in master che non ci sono nel tuo branch.
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2015, 17:41   #15
Alessio465
Junior Member
 
Iscritto dal: Jul 2014
Messaggi: 7
Grazie mille! Risolto
Alessio465 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Tory Bruno ha lasciato la società...
L'immagine di Natale del telescopio spaz...
STMicroelectronics e SpaceX proseguono l...
Numeri da record, Xiaomi distribuisce ol...
BitLocker accelerato via hardware: Micro...
Blue Origin prosegue lo sviluppo dei lan...
Moore Threads: nuove GPU 15 volte pi&ugr...
Steam diventa esclusivamente 64-bit: Val...
La Corte Suprema restituisce a Elon Musk...
X lancia Creator Studio su mobile: nuovi...
Dieci anni fa SpaceX fece atterrare per ...
POCO M8 e M8 Pro arriveranno nel 2026: e...
Caos Formula 1: il motore Mercedes &egra...
Tariffe nazionali per le chiamate e gli ...
Tassa chilometrica non solo per elettric...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 00:03.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v