Git pentru începători absolut

Dacă sunteți nou în lumea programării, atunci învățarea Git ar trebui să fie ceva în topul listei de priorități.

Git este un astfel de instrument pe care îl veți întâlni zi de zi ca parte a jobului dvs.

La ce vă puteți aștepta în această postare

În această postare, voi oferi o prezentare generală a Git și cum să începeți cu aceasta.

  • Ce este Git?
  • Terminologiile asociate cu Git
  • Interacțiunea cu Git folosind linia de comandă

Promit să explic subiectele în modul cel mai simplificat pe care îl pot.

Deci, să începem prin a înțelege, ce este Git?

Git este un sistem de control al versiunilor.

Acum, ce naiba este un sistem de control al versiunilor (VCS)?

Un VCS monitorizează și ține evidența tuturor modificărilor aduse fișierelor care sunt monitorizate de acesta.

De asemenea, permite mai multor dezvoltatori să partajeze și să lucreze în colaborare la același set de fișiere, fără a intra în conflict unul cu celălalt.

Nu numai că ține evidența fișierelor care au fost modificate, ci și urmărește

  • Ce schimbări s-au făcut?
  • Cine a făcut aceste schimbări?
  • Când s-au făcut aceste schimbări.

Pentru a partaja și a lucra în colaborare cu alți dezvoltatori, aveți nevoie de acces la un serviciu găzduit bazat pe Git.

Unii dintre cei mai cunoscuți furnizori de servicii găzduite de Git sunt:

  • GitHub
  • Bitbucket
  • Servicii Microsoft Visual Studio Team

Toate acestea oferă un tip similar de funcționalitate.

Ce este un depozit în Git?

Un depozit este un folder al cărui conținut este urmărit de Git. Este cunoscut și ca repo , în termeni simpli.

Un repo poate avea mai multe fișiere și subdosare prezente în interiorul acestuia. De obicei, fișierele care sunt prezente în depozit conțin cod sursă.

În fiecare repo, există un folder .git . Acest folder conține toate fișierele și folderele necesare de Git pentru a urmări toate modificările aduse fișierelor din această repo.

Dacă ștergem acest folder .git, Git nu va identifica acest folder ca repo și nici nu va urmări conținutul acestuia.

Depozitul prezent pe computerul local este denumit depozit local , iar depozitul situat pe o platformă Git găzduită este denumit depozit la distanță .

Descărcați și instalați Git

Descărcarea și instalarea Git este un proces destul de simplu.

Puteți descărca Git de aici.

După ce Git a fost descărcat, puteți consulta acest ghid despre cum să îl instalați.

Inițializarea unui depozit Git

Înainte de a continua și a începe urmărirea fișierelor noastre folosind Git, trebuie să inițializăm Git pentru folderul pe care dorim să îl monitorizeze Git.

În termeni simpli, Git convertește un folder într-un depozit, astfel încât conținutul acestuia să poată fi urmărit de acesta.

Pentru a inițializa un folder într-un depozit Git:

Pe un sistem bazat pe Windows, trebuie să facem clic dreapta pe folder (am dori să fim urmăriți de Git), apoi să facem clic pe „Git Bash Here”. Aceasta deschide un prompt de comandă, ca o fereastră, care ne permite să interacționăm cu Git folosind comenzile Git.

Notă: Ori de câte ori am dori să interacționăm cu Git, vom interacționa folosind comenzile Git prin această fereastră Git Bash. De asemenea, rețineți că comenzile Git nu diferă pentru sistemele bazate pe Windows și Unix.

În fereastra Git Bash, trebuie să tastăm comanda:

git init

Această comandă inițializează folderul. Practic, convertește acest folder într-un depozit Git.

Ca parte a acestui proces de inițializare, creează și un folder .git (care este un folder ascuns) în cadrul acestui depozit. Acesta conține toate fișierele solicitate de Git pentru a urmări toate modificările aduse acestui depozit.

Dar acesta este doar un dosar normal ca și alte dosare pe care le avem în sistem. În terminologia Git, ne referim în continuare la acest lucru ca un depozit sau un depozit local, pentru a fi mai precis.

Pe un sistem bazat pe Unix, navigăm doar în director (pe care doriți să fie urmărit de Git) și rulăm comanda git init , asta este. Aceasta convertește acest director într-un depozit Git.

Stare depozit

În orice moment, dacă vrem să vedem ce este urmărit de Git într-un depozit, putem face acest lucru tastând comanda de mai jos:

git status

Vom analiza această comandă mai detaliat la un moment dat mai târziu în postare.

Deocamdată nu uitați, dacă vrem să vedem ce este urmărit într-un depozit de Git, putem face asta folosind comanda respectivă.

Urmărirea unui depozit

Chiar dacă am inițializat folderul ca depozit Git, conținutul acestuia nu va fi urmărit automat. Trebuie să instruim Git să monitorizeze conținutul acestuia.

Pentru a face acest lucru, folosim comanda git add . Sintaxa acestei comenzi este așa cum se arată mai jos:

git add file [file] [file..]
Notă: orice este inclus în paranteze pătrate [] este opțional. Acest lucru se aplică tuturor comenzilor Git enumerate în această postare.

Putem specifica fie un singur fișier, fie mai multe fișiere care să fie urmărite de Git.

Dacă vrem ca Git să monitorizeze anumite fișiere prezente cu depozitul, putem face acest lucru specificând numele fișierului individual al fiecărui fișier pe care am dori să îl urmărim.

În cazul în care dorim să urmărim fișierele care aparțin unui anumit tip de fișier, putem face acest lucru specificând extensia acestuia, așa cum se arată mai jos. Aceasta urmărește toate fișierele care se termină cu extensia .txt.

$ git add *.txt

Dacă dorim ca Git să urmărească toate fișierele prezente cu repozitorul, sintaxa este așa cum se arată mai jos.

$ git add .

Let’s say we have the following files present within our repository:

As you can see even the .git folder has been created as part of the initialization process. Originally this folder was hidden — I had to change the folder properties to make it visible (just to show it to you all).

This is how a .git folder looks, immediately after the git init command is executed.

This is how the contents of the .git folder look after a few transactions have been done to the repository.

To check what all files are currently being tracked by Git, we can make use of the git status command:

$ git status On branch master No commits yet Untracked files: (use “git add …” to include in what will be committed) HelloWorld.html Notes.txt README.md nothing added to commit but untracked files present (use “git add” to track)

Looking at the output of the git status command, it indicates that none of the files are currently being tracked by Git.

Let’s go ahead and add these files so that they get tracked by Git.

The command for adding these files is as shown below:

$ git add HelloWorld.html Notes.txt

Now, let’s execute the git status command and check its output.

$ git status On branch master No commits yet Changes to be committed: (use “git rm — cached …” to unstage) new file: HelloWorld.html new file: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md

As we can see, we have the HelloWorld.txt and the Notes.txt files present within the staging area that are waiting to be committed.

The README.md file isn’t being tracked at all, as we didn’t include this file within the git add command which we executed earlier.

When we executed the git add command, Git staged all the files which were specified as part of the input to this command.

Until we commit these files, Git won’t start tracking these files.

Committing Staged Files

Let’s commit these staged files by typing the command shown below.

$ git commit -m ‘Initial Commit’

git commit is the command which is used to commit any staged files, -m is used to specify the comments for this commit operation.

If we would like to view all the commit operations that have been performed, we can do it by typing the git log command, as shown below.

$ git log commit 8525b32ffcb92c731f5d04de7fe285a2d0ebe901 (HEAD -> master) Author: shahzan  Date: Sun Apr 28 01:12:20 2019 +0100 Initial Commit

Whenever any change is done to a file which is being tracked by Git, we need to re-stage those files and re-commit them again. Until those files are not re-staged and re-committed, they will be tracked by Git.

I have done some minor changes to the Notes.txt file, let’s see what Git has got to say about these changes by executing the git status command.

$ git status On branch master Changes not staged for commit: (use “git add …” to update what will be committed) (use “git checkout — …” to discard changes in working directory) modified: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md no changes added to commit (use “git add” and/or “git commit -a”)

Looking at the above output block, it is clear that the file Notes.txt has been modified and the changes are not staged for commit.

We make use of the same git add command to re-stage the file.

$ git add Notes.txt [email protected] MINGW64 /d/Medium Post Pics/Git/Source Code (master) $ git status On branch master Changes to be committed: (use “git reset HEAD …” to unstage) modified: Notes.txt Untracked files: (use “git add …” to include in what will be committed) README.md

As you can notice from the above output block, the file has been staged and is waiting to be committed.

Again, we make use of the same git commit command to re-commit the staged file.

$ git commit -m ‘Notes.txt file updated’ [master 184fcad] Notes.txt file updated 1 file changed, 3 insertions(+), 1 deletion(-)

Let’s execute the git log command and see if the commit has been successful.

$ git log commit 184fcad4185296103cd9dba0da83520399a11383 (HEAD -> master) Author: shahzans  Date: Sun Apr 28 01:15:38 2019 +0100 Notes.txt file updated commit 8525b32ffcb92c731f5d04de7fe285a2d0ebe901 Author: shahzans  Date: Sun Apr 28 01:12:20 2019 +0100 Initial Commit

As you may notice in the above output block, both the commit operations are being displayed.

Ignoring Files

Within the repository, there may be files that hold sensitive data or log data, which we don’t want to be tracked by Git under any circumstances.

.gitignore is the file within which we can specify all the files we don’t want Git to keep track of.

$ touch .gitignore

The syntax to create this file is as shown above.

Let’s say that I do not want Git to track any file ending with the .md extension.

Before adding *.md to the .gitignore file, have a look at the output of the git status command as shown in the output block below.

$ git status On branch master Untracked files: (use “git add …” to include in what will be committed) .gitignore README.md nothing added to commit but untracked files present (use “git add” to track)

As you may notice, we have .gitignore and README.md being shown as untracked files.

After adding *.md to the .gitignore file, the git status is as shown in the output block below.

As you may notice, we now just have .gitignore being shown as an untracked file.

$ git status On branch master Untracked files: (use “git add …” to include in what will be committed) .gitignore nothing added to commit but untracked files present (use “git add” to track)

You can either specify an individual filename or a wildcard entry within the .gitignore file.

The Wrap-Up

Git is a very powerful tool and there is a lot more you could do with it, such as branching, merging, pull and push request and much more.

Just in case you’re interested in learning more about Git, here is a course that I would recommend you to enroll (affiliate link).

Before you say goodbye…

Let’s keep in touch, click here to enter your email address (Use this link if the above widget doesn’t show up on your screen).

Thank you so much for taking your precious time to read this post.