Konfliktløsning

Det oppstår en konflikt når det gjøres endringer i samme element i både arbeidsområdet og det eksterne Git-repositoriet. Når det oppstår en konflikt, sier Git-statusen at Konflikt og utføring er deaktivert.

Screenshot of a report with a Git status that says conflict.

Viktig

Denne funksjonen er i forhåndsvisning.

Når du velger Oppdater når det er konflikter, varsler en melding deg om at du må løse konfliktene før du kan oppdatere.

Screenshot of error message from source control tab informing about conflicts.

Det finnes tre måter å løse en konflikt på:

Løs konflikt i brukergrensesnittet

Velg Oppdater alle for å se en liste over alle elementene som har konflikter. Deretter kan du velge hvilken versjon du vil beholde for hvert element. For hvert konfliktelement kan du velge å godta innkommende endringer fra Git-repositoriet eller beholde den gjeldende versjonen som er i arbeidsområdet.

Screenshot of UI to select which version of a conflicted item to keep.

  • Velg Godta innkommende endringer for å overstyre endringene i arbeidsområdet. Endringene i arbeidsområdet går tapt, og Git-statusen endres til synkronisert hvis importen lykkes.

  • Velg Behold gjeldende innhold for å beholde versjonen i arbeidsområdet. Når oppdateringen er fullført, blir Git-statusen uforpliktende endringer ettersom endringene i arbeidsområdet ennå ikke er forpliktet til grenen.

Gå tilbake til en tidligere tilstand

Du kan tilbakestille enten hele arbeidsområdet eller Git-grenen til siste synkroniserte tilstand. Hvis du tilbakestiller Git-grenen til en tidligere utføring, kan du fortsatt se endringene som er gjort i den usynkroniserte grenen. Hvis du tilbakestiller arbeidsområdet, mister du alle endringene som er gjort i arbeidsområdet siden forrige utføring.

Hvis du vil gå tilbake til den tidligere synkroniserte tilstanden, gjør du én av følgende handlinger:

  • Bruk Kommandoen Angre til å returnere motstridende elementer i arbeidsområdet til siste synkroniserte tilstand.
  • Gå tilbake til den siste synkroniserte tilstanden i Git ved hjelp av git revert kommandoen i Azure DevOps.

Du kan også løse konflikter ved å koble fra og koble til arbeidsområdet på nytt. Når du kobler til på nytt, velger du retningen du vil synkronisere. Vær imidlertid oppmerksom på at når du kobler til på nytt, overskriver det alle elementer i arbeidsområdet eller grenen, og ikke bare de motstridende. Det returnerer ikke arbeidsområdet eller grenen til den siste synkroniserte tilstanden. I stedet overskriver det alt innholdet på ett sted med innholdet i det andre.

Løs konflikt i git

Hvis du ikke er sikker på hvilke endringer som ble gjort og hvilken versjon du vil velge og ikke vil gå tilbake til en tidligere tilstand, kan du prøve å løse konflikten i Git-repositoriet ved å opprette en ny gren, løse konflikten i denne grenen og synkronisere den med gjeldende.

Merk

Bare en administrator for arbeidsområdet kan koble arbeidsområdet til den nye grenen på nytt.

  1. Sjekk ut en ny gren fra kildekontrollruten ved hjelp av den siste synkroniserte gren-ID-en som vises nederst på skjermen

    Screenshot showing how to check out a new branch from the source control pane by selecting the down arrow.

    Screenshot of branch ID information shown on bottom of the screen.

    Dette trinnet oppretter en ny gren fra den motstridende grenen ved hjelp av den siste synkroniserte Git-tilstanden, før det ble gjort endringer som er i konflikt med endringene. Du kan se endringene i kildekontrollruten , men det er ingenting å oppdatere fra Git-grenen. Utsjekkingsgrenen beholder gjeldende arbeidsområdetilstand, slik at uforpliktende endringer beholdes når du endrer grenen.

  2. Utfør endringene i den nye grenen. Denne nye grenen har nå endringene du har gjort i elementene som er koblet til en tidligere versjon av Git-grenen, som ikke er i konflikt med endringene.

  3. Løs konfliktene mellom den opprinnelige grenen og den nye grenen i git.

  4. Flett den nye grenen i den opprinnelige grenen i git

  5. Bytt arbeidsområdet tilbake til den opprinnelige grenen i Fabric.