My_CICD_Side_5 - itnett/FTD02H-N GitHub Wiki
Ja, det ser ut som du har satt opp riktig konfigurasjon for dine repositories og CI/CD-miljøet ditt. La oss gå gjennom hvert punkt for å sikre at vi er på samme side:
-
URL til den originale Wiki-repoen som skal klones:
wiki_repo_url: "https://github.com/itnett/FTD02H-N.wiki.git"
- Dette er URL-en til det gamle wiki-repoet hvor du henter kildeinnholdet som skal migreres.
-
Sti til katalogen hvor den klonede Wiki-repoen skal lagres midlertidig:
dump_directory: "C:\\WikiMigration\\git\\code_dump"
- Her lagres det midlertidige innholdet fra det gamle wiki-repoet. Dette er stedet hvor alt innholdet klones før det bearbeides.
-
URL til den nye kode-repoen hvor skript skal lagres:
code_repo_url: "https://github.com/itnett/FTD02N.git"
- Dette er URL-en til det nye repoet hvor alle skript og kodeblokker skal lagres. Her skal alt kodeinnhold fra det gamle wiki-repoet legges.
-
Sti til katalogen hvor skriptene fra Wiki-repoen skal lagres:
code_repo_directory: "C:\\WikiMigration\\git\\code_repo"
- Her lagres skriptene lokalt før de pushes til det nye repoet
FTD02N
.
-
URL til den nye Wiki-repoen hvor de oppdaterte wiki-sidene skal lagres:
wiki_repo_url: "https://github.com/itnett/FTD02N.wiki.git"
- Dette er URL-en til det nye wiki-repoet hvor de oppdaterte wiki-sidene, som nå kun inneholder lenker til koden i
FTD02N
, skal lagres.
-
Sti til katalogen hvor de oppdaterte wiki-sidene skal lagres:
wiki_repo_directory: "C:\\WikiMigration\\git\\wiki_repo"
- Her lagres de bearbeidede wiki-sidene før de pushes til det nye wiki-repoet.
-
Sti til det komplette private CI/CD-repoet:
cicd_repo_directory: "C:\\WikiMigration"
- Dette er stien hvor det private CI/CD-repoet ligger. Her oppbevares hele trestrukturen som brukes til å sette opp, kjøre og vedlikeholde CI/CD-workflows.
Med denne konfigurasjonen vil skriptet gjøre følgende:
- Klone innholdet fra
FTD02H-N.wiki.git
tilC:\WikiMigration\git\code_dump
. - Identifisere og flytte relevante skript og kodeblokker fra
code_dump
tilcode_repo_directory
. - Oppdatere wiki-sidene til å lenke til koden i
FTD02N
og lagre de nye wiki-sidene iwiki_repo_directory
. - Til slutt vil alt pushes til de riktige repoene (
FTD02N.git
ogFTD02N.wiki.git
), mens hele prosessen er støttet av en privat CI/CD-pipeline som kjøres fraMyFirst_CICD
.
For å sikre at alt fungerer som det skal:
- Sørg for at CI/CD-pipelinen er riktig satt opp til å kjøre skriptet automatisk ved endringer i
FTD02H-N.wiki.git
. - Hold sensitive opplysninger (som tokens) sikre ved å bruke GitHub Secrets i CI/CD-innstillinger.
- Overvåk logger for å fange opp eventuelle feil under prosessen.
Alt kjører på GitHubs egne servere, så du trenger ikke bekymre deg for ressursbruk på din lokale maskin.
Det du ser på https://github.com/itnett/MyFirst_CICD/compare/master...master
og https://github.com/itnett/MyFirst_CICD/compare/main...master
er en mulighet til å sammenligne to forskjellige grener (branches) i ditt repo. Dette kan virke forvirrende hvis du egentlig bare ønsker å arbeide med én gren.
Historisk sett var master
standardgrenen i Git-repositories, men fra 2020 begynte GitHub å bruke main
som standard for nye repositorier. Det er ingen teknisk forskjell mellom master
og main
; det er kun et navneskifte. Dette endres ofte når du oppretter et nytt repository, eller hvis du migrerer et eldre repository.
Hvis du ser både master
og main
i ditt repository, kan det tyde på at du har to grener som begge er aktive, men som kanskje har forskjellig innhold. Det kan skape forvirring hvis du ikke aktivt ønsker å bruke flere grener for å utvikle ulike funksjoner eller eksperimentere uten å påvirke hovedgrenen.
Hvis du er fornøyd med å jobbe med kun én gren og vil unngå forvirring:
-
Velg hvilken gren du vil beholde:
- Hvis du har mesteparten av arbeidet ditt i
master
ellermain
, bestem deg for hvilken gren du vil bruke videre.
- Hvis du har mesteparten av arbeidet ditt i
-
Slett den andre grenen:
- Hvis du bestemmer deg for å bruke
main
, kan du slettemaster
, eller omvendt. - For å slette
master
(hvis du velgermain
som hovedgren), kan du gjøre følgende:git branch -d master git push origin --delete master
- For å slette
main
(hvis du velgermaster
som hovedgren), kan du gjøre følgende:git branch -d main git push origin --delete main
- Hvis du bestemmer deg for å bruke
-
Sett en av grenene som standard:
- På GitHub kan du sette
main
som standardgren ved å gå til repo-innstillingene under "Branches" og velgemain
som standardgren.
- På GitHub kan du sette
-
Merge grenene (valgfritt):
- Hvis det er ulikheter mellom
master
ogmain
, kan du merge (sammenslå) dem før du sletter en av dem, slik at du ikke mister noen endringer.
- Hvis det er ulikheter mellom
Etter å ha valgt og beholdt kun én gren, vil du bare arbeide med denne. Dette vil gjøre prosjektet ditt enklere å håndtere og fjerne forvirring som kan oppstå ved bruk av flere grener.
Om du ikke har et spesifikt behov for å jobbe med flere grener, vil denne tilnærmingen bidra til å holde ditt repository ryddig og lett å navigere.
For å merge to grener (master
og main
), følger du disse stegene:
- Før du begynner merge-prosessen, må du sjekke ut (bytte til) grenen du vil beholde.
- Hvis du vil beholde
main
, kjører du følgende kommando:git checkout main
- Det er alltid en god idé å sørge for at grenen du vil beholde er oppdatert med de nyeste endringene fra GitHub.
git pull origin main
- Nå kan du merge endringene fra
master
inn imain
.git merge master
- Hvis det ikke er noen konflikter, vil dette automatisk kombinere endringene fra
master
inn imain
.
- Hvis det er konflikter mellom filene i
master
ogmain
, må du manuelt løse disse. - Git vil gi deg en liste over filer med konflikter, og du må redigere disse filene for å bestemme hvilke endringer som skal beholdes.
- Etter å ha løst konfliktene, må du legge til de redigerte filene:
git add <filnavn>
- Fullfør merget med:
git commit -m "Resolved merge conflicts between master and main"
- Etter at merget er fullført, push endringene tilbake til GitHub.
git push origin main
- Hvis du bestemmer deg for at du ikke lenger trenger
master
, kan du slette den:git branch -d master git push origin --delete master
git checkout main
git pull origin main
git merge master
# Løs eventuelle konflikter her
git push origin main
# (Valgfritt) Slett master-grenen
git branch -d master
git push origin --delete master
Når du har merget master
inn i main
, vil main
inneholde alle endringene fra begge grenene. Hvis du velger å slette master
, vil du bare ha én gren å jobbe med, noe som kan gjøre det enklere å administrere prosjektet ditt.
Du bør vurdere å merge grener når:
- Du har fullført en funksjon eller et sett med endringer på en separat gren.
- Du vil samle all utvikling på én gren for å forenkle vedlikeholdet.
- Du har løst konflikter eller eksperimentert i en separat gren og er klar til å integrere dette i hovedgrenen.
For å løse dette problemet og sikre at main
-grenen har alt innholdet fra master
, kan du følge disse trinnene:
- Hvis
main
-grenen ikke finnes lokalt ennå, kan du sjekke den ut fra den eksterne origin:git checkout -b main origin/main
- Etter at du har sjekket ut
main
, kan du mergemaster
inn imain
:git merge master --allow-unrelated-histories
- Flagget
--allow-unrelated-histories
er nødvendig fordi de to grenene har forskjellige historikker.
- Hvis det er noen konflikter, må du løse dem manuelt.
- Etter å ha løst konfliktene, legg til de oppdaterte filene:
git add .
- Fullfør merget med:
git commit -m "Merged master into main with resolved conflicts"
- Når merget er fullført og alle konflikter er løst, push
main
tilbake til GitHub:git push origin main
- Hvis
main
nå inneholder alt du trenger, og du vil sette den som standardgren, kan du gjøre det i GitHub-innstillingene for repoet ditt.
Disse trinnene vil sikre at main
-grenen inneholder alt fra master
. Dette vil forene de to historikkene og sørge for at du har én konsekvent gren å jobbe med.