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.gittilC:\WikiMigration\git\code_dump. - Identifisere og flytte relevante skript og kodeblokker fra
code_dumptilcode_repo_directory. - Oppdatere wiki-sidene til å lenke til koden i
FTD02Nog lagre de nye wiki-sidene iwiki_repo_directory. - Til slutt vil alt pushes til de riktige repoene (
FTD02N.gitogFTD02N.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
masterellermain, 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 velgermainsom hovedgren), kan du gjøre følgende:git branch -d master git push origin --delete master
- For å slette
main(hvis du velgermastersom 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
mainsom standardgren ved å gå til repo-innstillingene under "Branches" og velgemainsom standardgren.
- På GitHub kan du sette
-
Merge grenene (valgfritt):
- Hvis det er ulikheter mellom
masterogmain, 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
masterinn imain.git merge master
- Hvis det ikke er noen konflikter, vil dette automatisk kombinere endringene fra
masterinn imain.
- Hvis det er konflikter mellom filene i
masterogmain, 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 masterNå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 mergemasterinn imain:git merge master --allow-unrelated-histories
- Flagget
--allow-unrelated-historieser 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
maintilbake til GitHub:git push origin main
- Hvis
mainnå 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.