Hvordan bruke git -krafttrekk

Hvordan bruke git -krafttrekk
Git -filer og mapper i et hvilket som helst GIT -prosjekt kan deles av flere Git -brukere som jobber med et team. Når flere brukere prøver å jobbe med den samme filen eller mappen, oppstår det konflikt. Anta at når de to brukerne jobber med den samme filen til et depot, og hvis en bruker endrer filen etter modifiseringen som er gjort av en annen bruker, vil modifiseringen gjort av den første brukeren gå tapt av den siste oppdateringen. Dette problemet kan løses manuelt. Brukeren må gi kraft for å overskrive endringene i det lokale depotet uten å påvirke endringene som er gjort i det lokale depotet som ikke blir presset. 'git pull' Kommandoen er ikke i stand til å løse dette problemet. Måten å bruke Git Force Pull By 'git hente' og 'Git tilbakestilling' Kommandoer har vist i denne opplæringen.

Forutsetninger:

Installer GitHub Desktop

GitHub Desktop hjelper Git-brukeren med å utføre GIT-relaterte oppgaver grafisk. Du kan enkelt laste ned det siste installasjonsprogrammet av denne applikasjonen for Ubuntu fra GitHub.com. Du må installere og konfigurere dette programmet etter nedlasting for å bruke den. Du kan også sjekke opplæringen for å installere GitHub Desktop på Ubuntu for å kjenne installasjonsprosessen riktig.

Opprett en GitHub -konto

Du må opprette en GitHub -konto for å sjekke kommandoene som er brukt i denne opplæringen.

Lag et lokalt og eksternt depot

Du må opprette et lokalt depot og publisere depotet i den eksterne serveren for å teste kommandoene som ble brukt i denne opplæringen.

Overskriv lokale endringer for å tvinge Git Pull:

De 'git hente -all Kommando laster ned alt innholdet i det eksterne depotet til det lokale depotet, men slår ikke sammen innholdet med det lokale depotet. Etter å ha utført hentekommandoen, hvis 'Git tilbakestilling' Kommandoen blir utført med -hard Alternativ, da vil alle matchende filer og mapper i det lokale depotet bli overskrevet av innholdet i det eksterne depotet. Alle de uenede og begikk lokale endringer som ikke blir presset, vil bli slettet for -Hardt alternativ. Dette problemet er beskrevet i denne delen av opplæringen ved å bruke et lokalt depot som heter Python publisert før i den eksterne serveren.

Åpne Grunnleggende.py fil fra det eksterne depotet for å sjekke innholdet i filen. Følgende bilde viser at filen inneholder fire skriptlinjer for å legge til to tall.

Forta git -trekk for uplagte endringer:

Nå, åpne grunnleggende.PY -fil av det lokale depotet i en hvilken som helst tekstredigerer og endrer filen med følgende innhold. Lagre filen og avslutt fra redaktøren.

Print (“Legge til tre tall”)
a = 10
B = 20
C = 30
Print (A+B+C)

Kjør følgende kommandoer for å legge til den endrede Grunnleggende.py fil i det lokale depotet og sjekk depotstatusen.

$ git Legg til grunnleggende.py
$ git status

Følgende utgang vises etter å ha utført kommandoen. Utgangen viser at oppgaven ikke er begått ennå.

Kjør følgende kommandoer for å sjekke innholdet i Grunnleggende.py fil før du trekker innholdet i det eksterne depotet og sjekk innholdet i Grunnleggende.py Etter å ha trukket kraftig.

$ katt grunnleggende.py
$ git hente -alt
$ git reset -hard opprinnelse/hoved
$ katt grunnleggende.py

Følgende utgang viser at innholdet i Grunnleggende.py filen er overskrevet av innholdet i Grunnleggende.py filen til den eksterne serveren, og det modifiserte innholdet har gått tapt.

Force git pull for engasjerte endringer:

Igjen, åpne Grunnleggende.py Fil av det lokale depotet i en hvilken som helst tekstredigerer og endrer filen med følgende innhold. Lagre filen og avslutt fra redaktøren.

trykk (“Trekk to tall”)
a = 50
B = 20
trykk (a - b)

Kjør følgende kommandoer for å legge til den endrede Grunnleggende.py Fil i det lokale depotet, forplikte oppgaven og sjekk depotstatusen.

$ git Legg til grunnleggende.py
$ git forpliktelse -m "grunnleggende.Py har oppdatert "
$ git status

Følgende utgang viser at den endrede Grunnleggende.py Filen legges til og forpliktet med en forpliktelsesmelding. Det nåværende arbeidstreet er rent nå.

Kjør de tidligere kommandoene igjen for å sjekke hvordan 'Git tilbakestilling' Kommandoen fungerer for den engasjerte oppgaven.

$ katt grunnleggende.py
$ git hente -alt
$ git reset -hard opprinnelse/hoved
$ katt grunnleggende.py

Følgende utdata viser at innholdet i den eksterne filen har overskrevet innholdet i den lokale filen igjen. Så 'Git tilbakestilling' Kommandoen fungerer det samme for både engasjerte og uplagte oppgaver.

Lagre lokale endringer før du tvinger Git Pull:

Overskrivingsproblemet kan løses ved å lage en ny gren. Begå alle endringer i depotet før du kjører trekkkommandoene. Igjen, åpne Grunnleggende.py Fil av det lokale depotet i en hvilken som helst tekstredigerer og endrer filen med følgende innhold. Lagre filen og avslutt fra redaktøren.

trykk (“Multipliser to tall”)
a = 10
B = 20
trykk (a * b)

Kjør følgende kommandoer for å sjekke filiallisten, bytte til en ny gren og sjekke innholdet i Grunnleggende.py fil etter å ha utført trekkkommandoene.

$ git gren
$ git -kassen -b new -branch
$ git hent -all
$ git reset -hard opprinnelse/hoved
$ katt grunnleggende.py

Følgende utgang viser at innholdet i Grunnleggende.py Filen har overskrevet for den nye grenen.

Kjør nå følgende kommandoer for å sjekke innholdet i Grunnleggende.py fil etter å ha byttet til hoved- gren.

$ git Checkout Main
$ katt grunnleggende.py

Følgende utgang viser at innholdet i Grunnleggende.py har holdt seg uendret.

Konklusjon:

Problemet med å trekke Git -depotet kraftig og hvordan du løser dette problemet er blitt forklart i denne opplæringen ved å bruke et lokalt og eksternt demo -depot. Men denne løsningen vil ikke fungere for de ugivelige endringene av det lokale depotet. Så du må begå alle endringer eller kjøre 'git stash' kommando før du trekker Git -depotet kraftig.