Avanceret Git: Monorepoer, undermoduler og arbejdsgange · Lektion

Automatisering af Git-opgaver med scripts

Skriv brugerdefinerede scripts, der automatiserer gentagne Git-operationer, øger effektiviteten og reducerer manuelle fejl.

Lektion 2 af 411 trin

Automatisering af Git-opgaver med scripts er en gratis Avanceret Git: Monorepoer, undermoduler og arbejdsgange-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Avanceret Git: Monorepoer, undermoduler og arbejdsgange, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Avanceret Git: Monorepoer, undermoduler og arbejdsgange-kurset indeholder 4 lektioner i alt.

Hvorfor automatisere Git-opgaver?

Det kan være gentagende og fejlbehæftet at udføre Git-kommandoer manuelt, især i komplekse arbejdsgange.

Ved at automatisere disse opgaver med scripts sikrer du større ensartethed, sparer tid og mindsker risikoen for fejl i hele teamet.

  • Ensartethed: Håndhæv teamets standarder for commits, grene osv.
  • Effektivitet: Udfør flere Git-operationer med én kommando.
  • Pålidelighed: Reducer fejl på grund af manuelt input.

Dit første Git-script

Shell-scripts er simple tekstfiler, der indeholder kommandoer, som shellen (f.eks. Bash) kan udføre. Vi starter med et grundlæggende script, der kører git status.

For at gøre et script eksekverbart skal du bruge chmod +x your_script.sh.

#!/bin/bash

# This is a comment
echo "--- Running Git Status ---"
git status
echo "-------------------------"

Automatisering af ændringer til staging

En almindelig Git-opgave er at sætte alle ændrede eller ikke-sporede filer i staging før et commit. I stedet for at skrive git add . hver gang kan du placere kommandoen i et script.

Dette script sætter automatisk alle ændringer i den aktuelle mappe i staging.

#!/bin/bash

echo "Staging all changes..."
git add .
echo "All changes staged!"

Hjælpeværktøj til tilpassede commit-meddelelser

Det er afgørende for projektets historik at bevare ensartede commit-meddelelser. Du kan oprette et script, der beder om bestemte dele af en commit-meddelelse, så alle følger det samme format.

Dette eksempel opretter et commit med et tidsstempel.

#!/bin/bash

TIMESTAMP=$(date +"%Y-%m-%d %H:%M:%S")

git add .
git commit -m "Automated save: $TIMESTAMP"
echo "Changes committed with timestamp!"

Scripts med argumenter

Du kan gøre dine scripts mere fleksible ved at sende argumenter til dem. Disse argumenter kan tilgås i scriptet ved hjælp af særlige variabler som $1 for det første argument, $2 for det andet og så videre.

Dette script tjekker den gren ud, der er angivet som et argument.

#!/bin/bash

BRANCH_NAME="$1"

if [ -z "$BRANCH_NAME" ]; then
  echo "Usage: ./checkout_branch.sh <branch_name>"
  exit 1
fi

git checkout "$BRANCH_NAME"
echo "Switched to branch: $BRANCH_NAME"

Automatisk oprydning af flettede grene

Efter fletning af funktionsgrene bliver de ofte liggende lokalt. Et script kan hjælpe dig med automatisk at hente de nyeste ændringer, rydde op i grene, der sporer fjernlagre, og vise lokale grene, der er blevet flettet ind i din aktuelle gren (f.eks. main eller master).

Advarsel: Gennemgå de viste grene, før du sletter dem!

#!/bin/bash

echo "Fetching latest and pruning..."
git fetch --prune

CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD)

echo "Looking for branches merged into '$CURRENT_BRANCH' (excluding main/master)..."
MERGED_BRANCHES=$(git branch --merged | grep -v \* | grep -v main | grep -v master)

if [ -z "$MERGED_BRANCHES" ]; then
  echo "No merged branches to delete."
else
  echo "Found these merged branches:
$MERGED_BRANCHES"
  echo "To delete them, run: echo \"$MERGED_BRANCHES\" | xargs git branch -d"
fi

Betinget logik med Git-status

Du kan bruge outputtet fra Git-kommandoer til at træffe beslutninger i dine scripts. git status --porcelain giver et maskinlæsbart format, der er velegnet til scripting.

Dette script tjekker, om din arbejdsmappe er ren, før det fortsætter.

#!/bin/bash

STATUS=$(git status --porcelain)

if [ -z "$STATUS" ]; then
  echo "Working directory is clean. You're good to go!"
else
  echo "Warning: Uncommitted changes detected."
  echo "$STATUS"
  # You might add an 'exit 1' here to stop the script
fi

Integration af scripts med Git-aliaser

Git-aliaser giver dig mulighed for at oprette genveje til Git-kommandoer. Du kan også bruge dem til at køre dine egne scripts, så de fungerer som indbyggede Git-kommandoer.

Føj disse til din ~/.gitconfig-fil:

  • [alias]
  • clean = "!/path/to/your/cleanup_script.sh"
  • # The '!' tells Git to execute the command in a shell

Nu kan du bare skrive git clean for at køre dit script!

[alias]
  st = status -sb
  co = checkout
  cm = commit -m
  # Run a custom script:
  my-auto-commit = "!/path/to/your/auto_commit_script.sh"

Script til intelligent håndtering af grene

Ved at kombinere betinget logik med Git-kommandoer kan du opnå mere intelligent automatisering. Et script kan f.eks. kontrollere, om en gren allerede findes, før det forsøger at oprette den eller skifte til den.

Det forhindrer fejl og gør din arbejdsgang med grene mere enkel.

#!/bin/bash

TARGET_BRANCH="feature/new-dashboard"

# Check if the branch exists locally
if git show-ref --verify --quiet refs/heads/$TARGET_BRANCH; then
  echo "Branch '$TARGET_BRANCH' exists. Checking it out."
  git checkout $TARGET_BRANCH
else
  echo "Branch '$TARGET_BRANCH' does not exist. Creating it."
  git checkout -b $TARGET_BRANCH
fi

Test din viden

Test din forståelse af automatisering af Git-opgaver.

Opsummering: Automatisér for større effektivitet

I denne lektion lærte du, hvordan du kan bruge shell-scripting til at automatisere forskellige Git-opgaver. Ved at skrive tilpassede scripts kan du:

  • Øge effektiviteten ved at reducere manuelt arbejde.
  • Forbedre ensartetheden i hele teamets brug af Git.
  • Reducere fejl forbundet med gentagen indtastning af kommandoer.
  • Oprette tilpassede arbejdsgange tilpasset dit projekts behov.

Begynd at identificere gentagende Git-opgaver i din dagligdag, og omdan dem til effektive scripts!

Gratis at komme i gang

Lær Avanceret Git: Monorepoer, undermoduler og arbejdsgange med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
12
Lektioner
48

Ofte stillede spørgsmål

Er lektionen “Automatisering af Git-opgaver med scripts” gratis?

Ja — hele teksten til “Automatisering af Git-opgaver med scripts” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Avanceret Git: Monorepoer, undermoduler og arbejdsgange-kurset, skal du opgradere til CoddyKit PRO. Avanceret Git: Monorepoer, undermoduler og arbejdsgange-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Automatisering af Git-opgaver med scripts”?

Skriv brugerdefinerede scripts, der automatiserer gentagne Git-operationer, øger effektiviteten og reducerer manuelle fejl. Du øver dig i Avanceret Git: Monorepoer, undermoduler og arbejdsgange med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Avanceret Git: Monorepoer, undermoduler og arbejdsgange?

Der kræves ingen tidligere erfaring. Avanceret Git: Monorepoer, undermoduler og arbejdsgange på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Automatisering af Git-opgaver med scripts”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Avanceret Git: Monorepoer, undermoduler og arbejdsgange-lektion?

Ja. Alle Avanceret Git: Monorepoer, undermoduler og arbejdsgange-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Principper og implementering af GitOps
  2. Automatisering af Git-opgaver med scripts
  3. Integration af Git med CI/CD
  4. Sikring af Git i DevOps: secrets, signing og hooks
← Tilbage til Avanceret Git: Monorepoer, undermoduler og arbejdsgange