Bruk av Git

Bruk av Git


Git er et versjonskontrollsystem som er utviklet av Linus Torvalds i 2005. Git er et distribuert versjonskontrollsystem, noe som betyr at hver utvikler har en kopi av hele historikken til prosjektet på sin lokale maskin.

Fra nå kommer jeg til å endre fokus mer mot bruk av Ansible Navigator
Først oppretter jeg et nytt repository i GitHub. Jeg kaller det "ansible_navigator".
Jeg kommer til å installere Ansible Navigator på en egen CentOS Stream 9 server.
Jeg bruker remote - ssh extentions i Visual Studio Code for å koble meg til serveren.

Konfigurasjon av Git
Først må jeg konfigurere brukernavn og e-post for å kunne ta i bruk Git.

git config --global user.name = autom8
git config --global user.email = kontakt@autom8.no
                


git clone
Jeg lager en mappe som heter git_ansible_navigator og laster ned en kopi av et eksisterende repository fra github.com til min lokale maskin.

mkdir git_ansible_navigator && cd git_ansible_navigator
git clone https://github.com/autom8no/ansible_naviagtor.git                

                

git status
Vi kan se hvilke filer som blir tracket av git med kommandoen git status.

Vi gjør en endring på README.md filen og lagrer den.
Så kjører jeg en git status
[autom8@localhost ansible_naviagtor]$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")
                 

git diff
For ¨se hvilke endringer som er gjort i filen kan vi bruke git diff.
[autom8@localhost ansible_naviagtor]$ git diff README.md
diff --git a/README.md b/README.md
index 8ad771e..8c7d88f 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,5 @@
 -# ansible_naviagtor
 No newline at end of file
+# ansible_naviagtor
+
+# GIT
+
+git clone https://github.com/autom8no/ansible_naviagtor.git
                  


git add
For å legge til endringene i staging area bruker vi git add.

git add README.md
                    


git commit
For å lagre endringene i repository bruker vi git commit.

git commit -m "Oppdater README.md"
                        


git push
For å laste opp endringene til GitHub bruker vi git push.

 
[autom8@localhost ansible_naviagtor]$ git push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 2 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 300 bytes | 300.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/autom8no/ansible_naviagtor.git
   c93e2fc..d669767  main -> main
                    


Branch
Vi kan lage en ny branch med navn nagigator ved å kjøre kommandoen:
git checkout -b navigator.

 
[autom8@localhost ansible_naviagtor]$ git checkout -b navigator
Switched to a new branch 'navigator'
                    

For å se hvilken branch du er i kan du kjøre kommandoen git branch.

[autom8@localhost ansible_naviagtor]$ git branch
  main
* navigator
                   

Bytt til en annen bracnh med å kjøre kommandoen git switch main.

[autom8@localhost ansible_naviagtor]$ git switch main
Switched to branch 'main'
                    

I dette eksempelet så har jeg byttet tilbake til navigator branchen.
Jeg har installert Ansible Navigator ( som jeg kommer til å gå gjennom i neste bloggpost).
Installasjonen av Ansible Navigator har gjort at jeg har fått en .log fil som jeg ikke ønsker å tracke.
Du kan se at filen er tracket ved å kjøre git status.

 
[autom8@localhost ansible_naviagtor]$ git status
On branch navigator
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        modified:   README.md

Untracked files:
  (use "git add ..." to include in what will be committed)
        ansible-navigator.log

no changes added to commit (use "git add" and/or "git commit -a")
                    

Jeg legger til filen i .gitignore filen.

echo "**.log" >> .gitignore
                     

Jeg har ** foran .log for å ignorere alle filer som slutter på .log. i alle mapper.
En enkel * foran .log vil ignorere alle filer som slutter på .log i samme mappe.

Nå kan jeg se at filen ikke blir tracket av git.

[autom8@localhost ansible_naviagtor]$ git status
On branch navigator
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        modified:   README.md

Untracked files:
  (use "git add ..." to include in what will be committed)
        .gitignore

no changes added to commit (use "git add" and/or "git commit -a")
                     

For å tracke .gitignore filen kjører jeg kommandoen git add .
Dette legger til alle filer som ikke er tracket av git.

[autom8@localhost ansible_naviagtor]$ git add .
[autom8@localhost ansible_naviagtor]$ git status
On branch navigator
Changes to be committed:
  (use "git restore --staged ..." to unstage)
        new file:   .gitignore
        modified:   README.md
                      

Jeg oppretter en mappe struktur for group_vars med en undermapper og en fil
Jeg legger til at filene skal trackes ved å kjøre git add .
Jeg ser at de er lagt til ved å kjøre git status.
Hvis du ønsker å fjerne en fil fra tracking kan du kjøre git add -u .

Jeg gjør en commit, merger endringene fra navigator branch inn i main og pusher endringene til GitHub.

[autom8@localhost ansible_naviagtor]$ git commit -a -m "lagt til dokumentasjon"
[navigator 59220ce] lagt til dokumentasjon
 1 file changed, 3 insertions(+)
[autom8@localhost ansible_naviagtor]$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
[autom8@localhost ansible_naviagtor]$ git merge navigator
Updating d669767..59220ce
Fast-forward
 .gitignore |  1 +
 README.md  | 14  ++++++++++++++
 2 files changed, 15 insertions(+)
 create mode 100644 .gitignore
[autom8@localhost ansible_naviagtor]$ git push