Inhoud
GitHub
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
→ Access tokens:
Ga naar je GitHub-instellingen:
https://github.com/settings
Klik op “Developer settings”
Klik op “Personal access tokens”
GitHub Copilot
Github Copilot (features)
YouTube: How to Use GitHub Copilot for Data Science (Python + VS Code)
→ INFO: GitHub Copilot - Github Copilot Labs - Copilot-X
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:
- Open uw terminal of command prompt.
- Navigeer naar de root-map van uw project.
- 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:
- Ga naar GitHub en log in op uw account.
- Klik op de “+” in de rechterbovenhoek en selecteer “New repository”.
- 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
- Stage de Wijzigingen:
- Voer het volgende commando uit om de gewijzigde bestanden klaar te zetten voor de commit: git .
- Maak een Commit:
- Commit uw wijzigingen met git commit -m “Uw bericht”. Zorg ervoor dat uw commit-berichten duidelijk en beschrijvend zijn.
- 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!
