Gebruikershulpmiddelen

Site-hulpmiddelen


github

GitHub

🗂️ Terug naar start

GPT: A3D Repositorie Guide (nl)

Hier op deze pagina wat basis instructies m.b.t. GitHub
→ Hoe een repository aan te maken
→ Hoe veranderingen doorvoeren (commit) vanuit VS Code

GitHub
Public profile settings

Git-Commands
Git Reference

Access tokens:
Ga naar je GitHub-instellingen:
https://github.com/settings
Klik op “Developer settings”
Klik op “Personal access tokens”

GitHub Copilot

Wijzigingen synchroniseren

Elke keer dat je wijzigingen hebt en ze wilt synchroniseren:

git status
git add .
git commit -m "Beschrijving van je wijziging"
git push origin main

Repository Aanmaken op GitHub

🔸 Maak een repository aan op Github met README.md
🔸 Open consul in map waar projectmap in moet komen (in mijn geval de “a3d_ai” map)
🔸 Clone de repository in die map:

git clone https://github.com/jouw-gebruikersnaam/jouw-repository-naam.git

🔸 Ga in de nieuwe project map:

cd jouw-repository-naam

🔸 Maak een Virtuele omgeving aan

python -m venv venv

🔸 Activeer de Virtuele omgeving

.\venv\Scripts\Activate

🔸 Kopieer de map .streamlit en de bestanden .env en .gitignore van een eerder project in het nieuwe project

🔸 Open VS code

code .

🔸 Commit de aanpassingen en sync de aanpassingen


Een repository aanmaken met Opdrachtprompt

→ Een repository aanmaken in huidige map

git init

→ Een repository aanmaken in “mapnaam” Als de map niet bestaat wordt deze aangemaakt

git init mapnaam

→ Een bestaande repository clonen bv: URL = https://github.com/alejandro-ao/langchain-ask-pdf

git clone https://github.com/alejandro-ao/langchain-ask-pdf.git

.gitignore

Een .gitignore bestand is een tool in Git, het versiebeheersysteem, die u gebruikt om aan te geven welke bestanden of mappen Git moet negeren.
→ Een voorbeeld:

.env
.streamlit/secrets.toml
a3d/a3dcontrolerBackup.py
__pycache__/
venv/

Repository aanmaken

→ Initialiseer een lokale Git-repository:

  1. Open uw terminal of command prompt.
  2. Navigeer naar de root-map van uw project.
  3. Voer de volgende commando's uit om Git te initialiseren:
git init
git add .
git commit -m "Eerste commit (korte beschrijving)"

→ Maak een nieuwe repository op GitHub:

  1. Ga naar GitHub en log in op uw account.
  2. Klik op de “+” in de rechterbovenhoek en selecteer “New repository”.
  3. Voer een naam in voor uw repository, kies de zichtbaarheid (openbaar of privé), en klik op “Create repository”.

→ Terug in je lokale project:

git remote add origin https://github.com/uwgebruikersnaam/uwrepository.git
git branch -m main
git push -u origin main

→ Controleer uw GitHub-repository:

Ga terug naar GitHub en vernieuw de pagina van uw repository. U zou nu uw bestanden moeten zien.

:!: Let op: Als je bij het aanmaken van de repository op GitHub aangeeft dat het README.md bestand moet worden aangemaakt, moet deze eerst lokaal worden binnen gehaald voor “git branch -m main” anders volgd er een foutmelding:
Oplossing voor fout bij synchroniseren

→ Controleer op Niet-Getrackte Bestanden:

git ls-files --others --exclude-standard

Fout: "remote origin already exists"

Dit betekent dat uw lokale Git-repository al een remote genaamd 'origin' heeft. U kunt de huidige URL van deze remote controleren met:

git remote -v

Als deze URL niet overeenkomt met de URL van uw nieuwe GitHub repository, kunt u de oude verwijderen en de nieuwe toevoegen:

git remote remove origin
git remote add origin https://github.com/AdrieVanDijke/cat-va-app.git

Nadat u de conflicten heeft opgelost, voeg de gewijzigde bestanden toe en maak een nieuwe commit:

git add .
git commit -m "Merge conflicten opgelost"

Push Uw Wijzigingen:

git push origin main

FOUT BIJ AANMAKEN MET Synchroniseren

! [rejected]        main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/AdrieVanDijke/cat-va-app.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
ChatGPT: Deze foutmelding geeft aan dat de staat van uw lokale repository niet up-to-date is met de staat van uw repository op GitHub. Dit betekent dat er wijzigingen zijn in de GitHub-repository die u nog niet lokaal heeft. Voordat u uw wijzigingen kunt pushen, moet u deze remote wijzigingen eerst integreren in uw lokale repository.

:!: Opgelost met:

git pull origin main --allow-unrelated-histories
git add .
git commit -m "Conflicten opgelost"
git push origin main

Repository Gebruiken

  1. Stage de Wijzigingen:
    • Voer het volgende commando uit om de gewijzigde bestanden klaar te zetten voor de commit: git .
  2. Maak een Commit:
    • Commit uw wijzigingen met git commit -m “Uw bericht”. Zorg ervoor dat uw commit-berichten duidelijk en beschrijvend zijn.
  3. Push naar GitHub:
    • Gebruik git push origin main om uw lokale wijzigingen naar de GitHub-repository te pushen.
git add .

:!: let op de punt achter add

git commit -m "Uw bericht"
git push origin main

→ Controleer de Status van uw Lokale Repository:

git status

→ Bekijk de Commit Geschiedenis:

git log

→ Controleer Remote Configuratie:

git remote -v

Dit toont de URL's die verbonden zijn met uw lokale repository voor fetch en push operaties


Een nieuw bestand toevoegen

→ Voeg het Nieuwe Bestand toe aan de Staging Area:

git add nieuwbestand.ext
git commit -m "Nieuw bestand toegevoegd: nieuwbestand.ext"
git push origin main

Lokaal map verwijderd

De volgende acties uitvoeren vanuit de lokale werkmap als er een map is verwijderd uit de lokale werkomgeving.
→ Om te syncen met GitHub:

  • Verwijder de Map Lokaal:
    • Zorg ervoor dat u de map die u wilt verwijderen, daadwerkelijk heeft verwijderd uit uw lokale werkomgeving.
  • Voer Git Status Uit:
    • Open de terminal of command prompt.
    • Voer git status uit om de status van uw repository te bekijken. U zou moeten zien dat de verwijderde map wordt vermeld als een verandering die nog gecommit moet worden.
      • git status
  • Verwijder de Map in Git:
    • Om de map te verwijderen uit uw Git-repository, moet u Git expliciet vertellen om deze verwijdering te 'tracken'. Dit doet u met:
      • git rm -r mapnaam/
        • Vervang mapnaam/ met de naam van de map die u heeft verwijderd
  • Commit de Wijziging:
    • Maak een commit om deze wijziging vast te leggen:
      • git commit -m "Map verwijderd: mapnaam"
        • Vervang “Map verwijderd: mapnaam” met een beschrijvend bericht over wat u heeft gedaan.
  • Push naar GitHub:
    • Push uw wijzigingen naar de GitHub repository:
      • git push origin main
        • Dit zal de wijzigingen (inclusief het verwijderen van de map) uploaden naar uw GitHub repository.

:!: Na bovenstaande acties uitgevoerd te hebben kreeg ik de volgende foutmelding:

! [rejected]        main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/AdrieVanDijke/cat-va-app.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
ChatGPT: Deze foutmelding geeft aan dat de staat van uw lokale repository niet up-to-date is met de staat van uw repository op GitHub. Dit betekent dat er wijzigingen zijn in de GitHub-repository die u nog niet lokaal heeft. Voordat u uw wijzigingen kunt pushen, moet u deze remote wijzigingen eerst integreren in uw lokale repository.

:!: Opgelost met:

git pull origin main --allow-unrelated-histories
git add .
git commit -m "Conflicten opgelost"
git push origin main

Bestand verwijderderen

→ De zelfde procedure volgen om bv het bestand bestandsnaam.py uit de map a3d te verwijderen

git rm a3d/bestandsnaam.py

etc.


🤖 AI output m.b.t. GitHub en synchronisatie

Stappenplan: Controleren, Ophalen en Pushen

1. Naar je projectmap gaan

Open PowerShell of Git Bash en navigeer naar je map:

cd pad\naar\jouw\projectmap

Controleer op welke branch je zit:

git branch

Of uitgebreider:

git status

2. Controleer eerst jouw lokale wijzigingen

git status

Mogelijke uitkomsten

  • Geen lokale wijzigingen: Dan zie je ongeveer nothing to commit, working tree clean. Je kunt dan direct veilig controleren of GitHub nieuwe wijzigingen heeft (Stap 3).
  • Wel lokale wijzigingen: Dan zie je gewijzigde bestanden. Die moet je eerst committen voordat je verder gaat:
git add .
git commit -m "Mijn aanpassingen"

3. Haal informatie van GitHub op zonder je bestanden te wijzigen

Gebruik hiervoor:

git fetch origin

git fetch haalt de nieuwste informatie van GitHub op, maar past jouw lokale bestanden nog niet aan. Dit is dus volkomen veilig om eerst te controleren. (Fetch haalt alleen gegevens op zonder te integreren; pull doet fetch plus integratie).

4. Controleer of GitHub voorloopt op jouw lokale versie

git status

Als je collega iets heeft gepusht, zie je bijvoorbeeld: Your branch is behind 'origin/main' by 2 commits Dat betekent: GitHub heeft wijzigingen die jij nog niet lokaal hebt.

Je kunt ook exact zien welke commits op GitHub staan en nog niet bij jou:

git log --oneline HEAD..origin/main

5. Situatie A: GitHub heeft géén nieuwe wijzigingen

Als git status zegt dat je branch up-to-date is, dan kun je jouw wijzigingen direct pushen:

git push origin main

Of korter (als de tracking goed staat):

git push

6. Situatie B: GitHub heeft wél nieuwe wijzigingen

Dan moet je eerst de wijzigingen van GitHub binnenhalen. De veiligste en netste methode hiervoor is:

git pull --rebase origin main

Dit haalt de wijzigingen van GitHub binnen en zet jouw eigen lokale commits daar netjes bovenop. Daarna kun je jouw werk pushen:

git push origin main

7. Als er conflicten ontstaan

Soms hebben jullie allebei hetzelfde bestand of exact dezelfde regels aangepast. Dan krijg je een conflict.

Controleer welke bestanden conflicten hebben:

git status

Open de conflicterende bestanden in een editor (zoals VS Code of Kladblok). Je ziet dan stukken zoals:

<<<<<<< HEAD
jouw versie
=======
versie van GitHub
>>>>>>> origin/main

Pas het bestand handmatig aan zodat alleen de juiste, definitieve code overblijft (en verwijder de conflict-markers). Daarna voer je uit:

git add .
git rebase --continue

Als alles succesvol is afgerond:

git push origin main

Wil je de rebase onverwacht afbreken en terug naar de situatie vóór het binnenhalen?

git rebase --abort

Praktische Spiekbriefjes

Standaard snelle routine

Dit kun je bijna altijd achter elkaar gebruiken als vaste routine:

git status
git add .
git commit -m "Mijn aanpassingen"
git fetch origin
git status
git pull --rebase origin main
git push origin main

i> Let op: Als git status vóór git add . laat zien dat er bestanden gewijzigd zijn die je absoluut niet wilt meenemen, gebruik dan niet blind git add ..

Extra veilige variant

Deze variant laat eerst exact zien wat er op GitHub is gewijzigd voordat je gaat pullen:

git status
git fetch origin
git log --oneline HEAD..origin/main

Als daar commits tussen staan, kun je eventueel de inhoudelijke verschillen bekijken met:

git diff HEAD..origin/main

Daarna pas:

git pull --rebase origin main
git push origin main

Verschil tussen fetch en pull

Commando Wat doet het?
git fetch origin Haalt info van GitHub op, maar wijzigt jouw bestanden niet
git pull origin main Haalt info op én probeert die direct lineair samen te voegen
git pull –rebase origin main Haalt info op en zet jouw lokale commits bovenop de nieuwste GitHub-versie
git push origin main Zet jouw lokale commits definitief op GitHub

Mijn advies voor jullie samenwerking

Voordat je begint met werken:

git pull --rebase origin main

Hiermee start je de dag altijd direct met de allernieuwste versie van je collega.

Voordat je jouw werk naar GitHub zet:

git status
git add .
git commit -m "Beschrijving van mijn wijziging"
git fetch origin
git pull --rebase origin main
git push origin main

Voor kleinere projecten waarbij jullie allebei direct op main werken is dit een prima en uiterst veilige workflow. Voor grotere of complexere projecten is het op termijn veiliger om per ontwikkelaar met aparte *branches* en *pull requests* te werken, maar voor jouw huidige situatie is dit de meest praktische oplossing!

github.txt · Laatst gewijzigd: door a3dijke