Phonecat Tutorial App
Phonecat Tutorial App
Phonecat Tutorial App
A great way to get introduced to AngularJS is to work through this tutorial, which walks you
through the construction of an AngularJS web app. The app you will build is a catalog that
displays a list of Android devices, lets you filter the list to see only devices that interest you,
and then view details for any device.
Follow the tutorial to see how AngularJS makes browsers smarter — without the use of native
extensions or plug-ins:
The tutorial guides you through the entire process of building a simple application, including
writing and running unit and end-to-end tests. Experiments at the end of each step provide
suggestions for you to learn more about AngularJS and the application you are building.
You can go through the whole tutorial in a couple of hours or you may want to spend a
pleasant day really digging into it. If you're looking for a shorter introduction to AngularJS,
check out the Getting Started document.
Environment Setup
The rest of this page explains how you can set up your local machine for development. If you
just want to read the tutorial, you can go straight to the first step: Step 0 - Bootstrapping.
Install Git
You can download and install Git from https://git-scm.com/download. Once installed, you
should have access to the git command line tool. The main commands that you will need to
use are:
Download angular-phonecat
Clone the angular-phonecat repository located at GitHub by running the following command:
cd angular-phonecat
The tutorial instructions, from now on, assume you are running all commands from within
the angular-phonecat directory.
Install Node.js
In order to install dependencies (such as the test tools and AngularJS itself) and run the
preconfigured local web server, you will also need Node.js v6+.
You can download a Node.js installer for your operating system
from https://nodejs.org/en/download/.
Check the version of Node.js that you have installed by running the following command:
node --version
In Debian based distributions, there might be a name clash with another utility called node.
The suggested solution is to also install the nodejs-legacy apt package, which
renames node to nodejs.
If you need to run different versions of Node.js in your local environment, consider
installing Node Version Manager (nvm) or Node Version Manager (nvm) for Windows.
By installing Node.js, you also get npm, which is a command line executable for downloading
and managing Node.js packages. We use it to download the AngularJS framework as well as
development and testing tools.
Once you have Node.js installed on your machine, you can download these dependencies by
running:
npm install
Running npm install will also automatically copy the AngularJS framework and other
dependencies necessary for our app to work into the app/lib/ directory.
Note the angular-phonecat project is setup to install and run these utilities via npm scripts.
This means that you do not have to have any of these utilities installed globally on your
system to follow the tutorial. See Installing Helper Tools below for more information.
The project is preconfigured with a number of npm helper scripts to make it easy to run the
common tasks that you will need while developing:
http-server ./app
Running the Development Web Server
While AngularJS applications are purely client-side code, and it is possible to open them in a
web browser directly from the file system, it is better to serve them from an HTTP web
server. In particular, for security reasons, most modern browsers will not allow JavaScript to
make server requests if the page is loaded directly from the file system.
The angular-phonecat project is configured with a simple static web server for hosting the
application during development. Start the web server by running:
npm start
This will create a local web server that is listening to port 8000 on your local machine. You
can now browse to the application at http://localhost:8000/index.html.
To serve the web app on a different IP address or port, edit the "start" script
within package.json. You can use -a to set the address and -p to set the port. You also need to
update the baseUrl configuration property in e2e-test/protractor.conf.js.
npm test
This will start the Karma unit test runner. Karma will read the configuration
file karma.conf.js, located at the root of the project directory. This configuration file tells
Karma to:
It is good to leave this running all the time, in the background, as it will give you immediate
feedback about whether your changes pass the unit tests while you are working on the code.
You don't have to manually run this command. Our npm scripts are configured so that it will
be automatically executed as part of the command that runs the E2E tests.
Since Protractor works by interacting with a running application, we need to start our web
server:
npm start
Then, in a separate terminal/command line window, we can run the Protractor test scripts
against the application by running:
It is good to run the E2E tests whenever you make changes to the HTML views or want to
check that the application as a whole is executing correctly. It is very common to run E2E
tests before pushing a new commit of changes to a remote repository.
Each version of Protractor is compatible with specific browser versions. If you are reading
this some time in the future, it is possible that the specified Protractor version is no longer
compatible with the latest version of Chrome that you are using.
If that is the case, you can try upgrading Protractor to newer version. For instructions on how
to upgrade dependencies see Updating dependencies.
Updating dependencies
In order to avoid surprises, all dependencies listed in package.json are pinned to specific
versions (this is what the package-lock.json file is about). This ensures that the same version
of a dependency is installed every time.
Since all dependencies are acquired via npm, you can use the same tool to easily update them
as well (although you probably don't need to for the purpose of this tutorial). Simply run the
preconfigured script:
This will update all packages to the latest version that satisfy their version ranges (as specified
in package.json) and also copy the necessary files into app/lib/. For example,
if package.json contains "some-package": "1.2.x", it will be updated to the latest 1.2.x version
(e.g. 1.2.99), but not to 1.3.x (e.g. 1.3.0).
If you want to update a dependency to a version newer than what the specificed range would
permit, you can change the version range in package.json and then run npm run update-
deps as usual.
Common Issues
Protractor dependencies
Under the hood, Protractor uses the Selenium Standalone Server, which in turn requires
the Java Development Kit (JDK) to be installed on your local machine. Check this by
running java -version from the command line.
If JDK is not already installed, you can download it here.
Pre aktiviranja Git-a potrebno je sprečiti čuvanje i praćenje izmena nepotrebih fajlova.
Najčešće su to fajlovi koje koristi editor ili fajlovi koji nastaju kompajliranjem i sl. Fajlove ili
cele direktorijume koje ne želimo da pratimo definišemo u okviru .gitignore. .gitignore fajl
se smešta u okviru projektnog foldera.
Ovaj fajl se popunjava odgovarajućim naredbama uz čiju pomoć Git saznaje koje fajlove ne
treba da prati. Princip obeležavanja fajlova i foldera koje ne želimo da pratimo
unutar .gitignore je sledeći:
.swo .swp
ime_foldera
U slučaju da unutar foldera postoji fajl koji ipak treba da se prati upišemo:
!nekiFajl.txt
ime_foldera/ime_podfoldera
Pregled grana
ime_foldera/*
*.[oa]
Prekid praćenja
Veoma je bitno napraviti .gitignore file pre iniciranja Git-a jer ukoliko Git već započene
praćenje odredjenog fajla on neće prestati da ga prati čak i ako taj neželjeni fajl naknadno
ubacimo u .gitignore. U nastavku su opisane potrebne radnje za prekid prećenja nekog fajla.
a) Prekid praćenja bez fizičkog brisanja
Ukoliko su greškom commit-ovani neki nebitni fajlovi za projekat, čije promene ne želimo da
čuvamo, ali ne želimo ni da ih fizički obrišemo iz radnog direktorijuma, potrebno je da
naredimo git-u da prestane da ih prati (tj. da ih izbaci iz repozitorijuma) sa naredbom:
Nakon naredbe za prekid praćenja, fajl se nalazi u prostoru pripreme (index). Da bi sprečili da
fajlovi na sledećem commit-u ponovo ne udju u repozitorijum, potrebno je te fajlove
pre commit-ovanja, ubaciti u .gitignore fajl.
NAPOMENA:
Obratiti pažnju da ukoliko naziv fajla sadrži razmak izmedju reči, neophodno je staviti ga u
znake navoda, kao na sledećem primeru:
git rm "neki naziv fajla sa razmacima.ekstenzija"
1 git rm imeFajla
gde -r govori Git-u da stane da prati sve podirektorijume i fajlove unutar njega. Nakon
naredbe za brisanja fajlova je takodje neophodno uraditi commit (bez prethodnog slanja u
index).
Lokalni repozitorijum
Kada želimo da aktiviramo Git tj. da počnemo da pratimo izmene u projektu, potrebno je da
unutar projektnog folder-a iniciramo pravljenje “radnog git repozitorijuma” koji se vrši na
sledeći način:
1 cd projektni_folder
2 git init
Ova naredba unutar našeg projekta kreira novi folder .git (tzv. “repozitorijum”) i u njemu će
se nalaziti celokupna baza o našem projektu. Od tog trenutka Git prati projekat i radi
snapshot-ove stanja kad uradimo commit. Ukoliko želimo da Git više ne prati naš projekat
dovoljno je da obrišemo ovaj folder.
Udaljeni repozitorijum
Udaljeni repozitorijum kao što mu i sam naziv govori nije direktno vezan sa projektom na
kome radimo već se nalazi na nekom drugome mestu (najčešće na nekom serveru na internetu
npr. Github, Bitbucket…). Ovaj repozitorijum nije zamišljen da se njemu direktno šalju
izmene, već je neophodno da se izmene prvo sačuvaju u lokalu, a tek onda da se šalju na
udaljeni repozitorijum.
Na udaljeni repozitorijum može “(“push-ovati”)” izmene samo onaj koji ima ovlašćenja,
dok saradnici bez privilegija imaju opciju da pošalju izmene uz zahtev za prihvatanje njihovih
izmena (tzv. “pull request”).
NAPOMENA:
“origin” je alias za punu URL adresu online repozitorijuma (npr.
https://url_link_udaljenog_repozitorijuma). Ovakvo skraćeno predstavljanje URL-a nam
omogućava jednostavniji rad sa naredbama jer izbegavate da koriste ogroman URL svaki put
kada vam je u naredbi potreban. Koji tačno link predstavlja ovaj alias može se proveriti sa
naredbom:
1 git remote -v
Kada se u naredbama pominje neka grana na udaljenom repozitorijumu (npr. master) potrebno
je pored imena grane dodati i link do udaljenog repozitorijuma npr:
Znajući da je “origin” alias za ovaj link, sada se “master” grana na udaljenom repu može
označiti jednostavnije sa “origin master” (grana na slici pod nazivom “master”). Pa bi
komanda iz prethodnog primera izgledala ovako:
1 git push origin master
Kada imamo “bare repository” (lokalni ili na cloudu) potrebno da ga povežemo sa lokalnim, a
to radimo tako što ćemo lokalnom repozitorijumu dati do znanja koji je njegov udaljeni repo
sa sledećom naredbom:
1 git remote -v
Primer:
Napomena: na BitBucket-u ovu naredbu dobijate čim se napravi novi repo ukoliko se izabere
opcija “imam postojeći projekat”
Ovaj slučaj je jednostavniji i rešava se u dva koraka. Prvi korak je da u terminalu dodjemo do
foldera gde držimo sve projekte (npr. folder pod nazivom “projekti”):
1 cd projekti
3
7
Sa prethodnom komandom će biti u direktorijumu napravljen folder pod istim imenom kao
projekat koji klonirama. Ukoliko želim da se taj folder drugačije zove potrebno je na
prehodnu komandu dodati i novi naziv folder-a:
Primer
Ovaj slučaj je komplikovaniji jer neke stvari moramo dodatno da uradimo. Početak je isti,
startujemo naredbu za kloniranje:
1 cd klonirani_projekat
2 git branch
1 git branch -a
Kao rezultat prethodne naredbe se vidi lista svih origin/grana. Da bi se u i našem radnom
direktorijumu videle i druge grane, potrebno je (iako se one ne vide) prebaci na svaku od njih
i sa naredbom (napomena: bez korišćenja imena origin/….):
1 git branch
Git repozitorijum sadrži celu istoriju projekta, i ukoliko projekat dugo traje može biti prilično
veliki. Zato ako želimo skinuti projekat samo zato da bi pogledali njegov kod, a da nas ne
zanima nas cela istorija, moguće je klonirati samo nekoliko zadnjih commitova sa naredbom:
1 git status
Ako je stanje na radnoj verziji našeg projekta potpuno isto kao i u zadnjoj verziji git
repozitorijuma, onda će nas git obavestiti da nemamo ništa za commit-ovanje. U suprotnom,
će istaći koji fajlovi su izmenjeni.
diff
Ispisivanje svih razlika izmedju trenutnog stanja projekta na lokalu i zadnje verzije projekta
snimljene u repozitorijumu, se dobija sa naredbom:
1 git diff
Na sledećem primeru dobijamo razliku izmedju prethodnog komita i komita tri koraka
unazad.
1 git diff HEAD~3 HEAD~1
Kada želimo ispis svih razlika u projektu izmedju dva odredjena snimka stanja na različitim
granama, koristimo naredbu sa argumentima nazivi grana:
reflog
Sledeća naredba je veoma važna u radu sa promenom istorije, jer nam daje informacije o
radnjama koje su vršene sa git-om. Naredba izlistava sve promene praćene gitom kroz sve
grane:
1 git reflog
OBJAŠNJENJE:
Ova naredba nam omogućava da vidimo SVE promene pa čak i one koje se više ne vide zbog
prepravljanja istorije. Sa ovom naredbom dobijamo jasno opisan listing svih komita sa
odgovarajućim brojem pozicije HEAD (“HEAD@{broj}”), pa čak i onih koji se više ne vide
u log-u.
Primer
Pretraga
Pretraga komentara
Ukoliko vršimo pretragu neke reči (string) unutar fajlova koristimo naredbu:
1 git log -Sreč_po_kojoj_se_oretrazuje
Ukoliko rečenica koja se pretražuje ima razmake potrebno ju je staviti izmedju navodnika.
Primer
1 gitk 76cf8
Čuvanje izmena
Slanje promena u pripremni prostor
Slanje snapshot-a svih promenjenih fajlova odredjene ekstenzije iz root-a radnog foldera
Sledeća naredba će prebaciti u pripremni direktorijum sve fajlove koje nadje u glavnom
radnom direktorijumu sa .txt ekstenzijom, ali bez fajlova iz podfoldera.
Ukoliko treba da se nadju svi fajlovi sa istom ekstenzijom uključujući fajlove u podfoderima
onda se koristi naredba sa navodnicima:
Commit-ovanje
Poništavanje promena
Poništavanje nekomitovanih promena
Ukoliko smo greškom poslali fajlove na “staging area” tj. “index”, uklanjanje svih fajlova
iz “staging area” je sa naredbom:
Ukoliko još nismo commit-ovali izmene napravljen u odredjenom fajlu, a želimo da vratimo
verziju koja je sačuvana poslednim komitom, dovoljno je se prebaciti na taj fajl
sa “checkout” naredbom i promene će biti “zaboravljene” jer ih nismo komitovali.
Ako smo greškom izmenili fajl ali nismo ga još commit-ovali, možemo da vratimo verziju
tog fajla sa poslednjeg komita naredbom:
1 git checkout -- fajl.extenzija
NAPOMENA:
U slučaju da se fajl nalazi unutar nekog foldera, moramo podesiti da u komandnoj liniji
putanja pokazuje na taj folder, inače git neće naći traženi fajl.
Primer
1 cd probni_folder
Povratak stanja svih fajlova, koji još nisu komitovani, na stanje snimljeno sa poslefnim
komitom, vraćamo sa naredbom:
1 git checkout -- .
OBJAŠNJENJE:
Oznaka -- znači da se sve iza nje tretira kao filename (čak i da postoji neka naredba, neće se
izvršiti nego će se tretirati kao filename).
Nakon ove naredbe se otvara tekstualni fajl na čijem vrhu se nalazi poruka iz poslednjeg
komita, za promenu poruke je dovoljno u tom fajlu editovati poruku a zatim sačuvati i
zatvoriti fajl, nakon čega će biti “pregažen” poslednji commit sa istim snimkom stanja ali sa
drugačijom porukom.
Ako želimo da promenimo celu poruku bez editovanja stare poruke dovoljno je koristi sledeću
kombinaciju naredbi i flag-ova:
Ako imamo sitnije izmene koje bi smo želeli da su bile deo prethodnog commita, potrebno je
željene dodatne imene ubaciti na “stage” (index):
Nakon ove naredbe se takodje otvara tekstualni fajl na čijem vrhu se nalazi poruka iz
poslednjeg komita, za promenu poruke je dovoljno u tom fajlu editovati poruku a zatim
sačuvati i zatvoriti fajl.
NAPOMENA:
Ukoliko pri izmeni poslednjeg komita ne želimo da menjamo poruku dovoljno je da dodamo
flag --no-edit. Ako koristimo ovaj flag neće se otvarati fajl za editovanje poruke, već će se
odmah sačuvati promene.
1 git commit --amend --no-edit
Revert
Dakle ukoliko je poslednji commit u čvoru “f” i želimo da izbacimo promene nastale u njemu,
koristimo naredbu revert koja ga neće obrisati iz istorije komita, nego će napraviti
novi commit u čvoru “g” koji će biti isti kao u čvoru “e”.
ili jednostavnije:
OBJAŠNJENJE:
Ova naredba je sigurna jer ponovnim revert-om (tzv. Re-Revert-om) možemo da se vratimo
na prvobitno stanje.
Resetovanje
I naredba “reset” se koristi za poništavnje komitovanih promena, stim što ima tri moguća
podtipa:
a) Soft reset
Ukoliko bi smo odmah uradili komit svih fajlova na “stage” vratili bi se na početak.
b) Mixed reset
Sa naredbom “reset” i flag-om --mix takodje brišemo odgovarajuće komite sve do komita
odredjenog naredbom HEAD~broj. Stim što se u tom trenutku fajlovi sa izmenama (za sledeći
komit) nalaze u radnom direktorijumu.
Primer
U ovome primeru brišemo poslednji komit (glava se vraća na komit dalje tj. na predposledni),
ali sve izmene su nam sada u radnom repozitorijumu (i dalje nije ništa izgubljeno).
c) Hard reset
Sa naredbom “reset” i flag-om --hard brišemo odgovarajuće komite sve do komita
odredjenog naredbom HEAD~broj, dok je stanje fajlova je isto kao da smo upravo izvršili
komit.
Primer
U ovome primeru brišemo poslednji komit (glava se vraća na komit dalje tj. na predposledni),
trenutno nema promena za komitovanje i sve promene iz prošlog komita su nestale.
Ovaj primer prikazuje nepohodne akcije ako smo slučajno poslali izmene na master a trebali
smo ih poslati na novu granu:
3
6
Primer
U ovome primeru se vidi redosled akcija koje su potrebne u slučaju da smo komitovali na
pogrešnu granu:
1 # undo poslednjeg komita ali ostavljamo izmene u fajlovima
3 git stash
4
8
1 git fetch
Nakon ove naredbe novo stanje lokalne grane (“origin/master”) je ažurirano, i grana je sada
identična kopija “master” sa udaljenog repozitorijuma:
1 git merge
1 git pull
1 git fetch
Push
Kada na jednom projektu radi više saradnika na različitim problemima situacija tokom
vremena postaje komplikovanija. U slučaju da vlasnik repozitorijuma radi na svom
repozitorijumu i commit-ovao je svoja dva komita x i y, dok istovremeno saradnik radi u
lokalu na drugom problemu i commitovao je e i f čvorove, dijagram grana izgleda ovako:
Ukoliko koristimo kao u prethodnom primeru naredbu push, git je neće prihvatiti, jer
moramo prethodno da “sredimo” naš lokalni repozitorijum i ažuriramo našu
lokalnu origin/master granu sa naredbom git pull.
Tek nakon “sredjivanja” lokalnog repozitorijuma i ažuriranja lokalne grane “master” možemo
poslati naše commit-e na udaljeni repozitorijum i ažurirati udaljenu granu “master” sa
naredbom:
Pull request nije ništa drugo nego kratka poruka vlasniku nekog udaljenog repozitorijuma
koja sadrži adresu našeg repozitorijuma, opis izmena koje smo napravili i predlog da on te
izmene preuzme u svoj repozitorijum.
1 git request-pull
Ukoliko koristite Github za svoje projekte tamo postoji više potpuno automatizovanih načina
da se pošalju promene iz našeg repozitorijuma na GitHub-u na repozitorijum sa koga
smo “fork-ovali”. Najjednostavniji način je direktno preko dugmeta New pull request.
Nakon izbora grane sa koje želimo da pošaljemo promene i aktiviranja dugmeta se otvara
nova stranica Comparing changes gde se pregledno vidi šta su promene i na kojim fajlovima.
Kada nakon pregleda utvrdite da su to te promene koje želite da pošaljete, izberete
dugme Create pull request. Otvara se nova stranica gde treba da upišemo naslov i opcioni
prateći komentar, nakon čega definitivno šaljemo naše promene sa aktiviranjem
dugmeta Create pull request.
Osnove grananja Git-a
Pravljenje nove grane
Pregled grana
1 git branch
Pri izlistavanju u code-u sa * (zvezdicom) je obeležena grana u kojoj se trenutno nalazimo.
Nova grana je napravljena ali se trenutno nalazi samo kod nas u lokalu, da bi obelodanili
postojanje grane i na udaljenom repoztorijum potrebno je da pušujemo granu:
NAPOMENA:
Iako smo poslali sve izmene da udaljeni repozitorijum, kolege ne mogu da se prebace na ovu
granu sve dok ne povuku sve izmene na svoj lokal.
1 git fetch
Iako je sada nova grana napravljena, mi smo trenutno i dalje na istoj grani na kojoj smo i bili
(obično master), tako da je potrebno da se prebacimo na novu granu:
Nakon samog kreiranja grane a zatim i prebacivanja na nju, naš radni direktorijum će biti
kopija grane na kojoj smo bili kada smo napravili novu granu.
A to je:
Preimenovanje grane
Kada se napravi grana u njoj nema ni jednog čvora, novi čvorovi nastaju tek kad napravimo
neke izmene i komitujemo ih, što radimo na standardni način:
1 git add .
Ovaj deo je bitan jer postoji mogućnost da su u medjuvremenu napravljene neke izmene na
master grani .
Iako se “merge branch” prevodi kao “spajanje grana” to nije ispravan smisao ove naredbe,
jer standardno značenje rečenice “spajanje grane” bi napravilo samo jednu granu, što ovde
nije slučaj jer grane nastavljaju svoj život odvojeno. Jedino što se od tog trenutka sve nove
izmene nastale u jednoj grani preuzimaju u drugu granu.
Nakon izvršenog pripajanja bez konfilikta nije potrebno raditi commit jer je sama naredba
napravila novi čvor “h”, tako da je samo dovoljno da pušujemo te izmene na udaljeni
repozitorijum sa naredbom:
Za preuzimanje izmena iz druge grane potrebno je biti u grani kojoj želimo dodati izmene
iz druge grane. Stoga se moramo prebaciti na master granu:
1 git checkout master
Čim smo se prebacili na master granu potrebno je ponovo proveriti da neko u medjuvremenu
nije napravio dodatne izmene:
I tek sada možemo da koristimo naredbu koja će da prebaci sve promene iz sporedne grane u
master granu:
Nakon izvršenog pripajanja nije potrebno raditi commit jer je sama naredba napravila novi
čvor “h”. Za razliku od ostalih čvorova (komita) samo ovaj ima dva “roditelja” tj. dve strelice
vode do njega.
1 <<<<<<<< HEAD
2 ...
3 ...
4 ========
5 ...
6 ...
7 >>>>>>>> new_branch
Postoje više programa (tzv. merge tool) koji se koriste za vizuelni prikaz konflikta i lakše
rešavanje konflikata, pročitajte više o tome u članku: “My favorite tools to resolve git merge
conflicts”.
I na kraju se ceo krug završava slanjem ovih merge-ovanih izmena na masteru na njegov repo.
Naglašavam da nije potrebno raditi commit jer je čvor automatski dodat, pa je dovoljno samo
pušovati taj automatsko generisani commit:
1 git push origin master
Primer
Na sledaćoj slici je prikazno stanje projekta, gde pored master grane postoji i sporedna grana,
a u okviru nje par commit čvorova. Zadatak je da spojimo podatke iz master grane (plavi
krugovi) u sporednu.
Ukoliko koristimo naredbu merge, napravili bi smo novi commit (zeleni sa zvezdom) kojim bi
se dodale sve promene iz master grane, pa bi dijagram izgledao kao na sledećoj slici:
A ako to isto uradimo sa naredbom rebase, dijagram bi izgledao ovako:
Najveća prednost je jasnija istorija projekta čiji dijagram je linearan kao i eliminisanje
dodatnih čvorova koji se pravi pri korišćenju merge naredbe.
Postupak
U slučaju konflikta postupak je isti kao kada se javi konflikt pri korišćenju naredbe marge.
Brisanje grane
Ukoliko želimo obrisati granu koristimo naredbu:
NAPOMENA:
Biti prilično obazriv sa brisanjem grane jer u suprotnom mogu nastati ozbiljni problemi.
Forkovanje
Naredba fork ne postoji u okviru git-a, već je vezana za servis GitHub. Ova naredba nam
omogućava da neki postojeći projekat drugog korisnika GitHub-a kopiramo u naš Github
nalog, stim da naša kopija bude “svesna” da postoji roditeljski repozitorijum.
Nakon forkovanja projekta na naš gitHub nalog potrebno je da se napravi lokalna verzija
repozitorijuma kloniranjem. Ovaj lokalni repozitorijum je u vezi sa oba repozitorijuma na
GitHub-u. U komandnoj liniji namestimo putanju na naš lokalni repozitorijum a naredba
kojom lokalnom repozitorijumu dajemo do znanja da postoji početni repozitorijum na osnovu
koga je forkovan repozitorijum na naš giohub nalog je sledeća:
Po završetku rada na fajlovima u lokalu, možemo standardno poslati sve promene na naš
udaljeni repozitorijum origin sa naredbom push, nakon čega možemo na više načina da
pošaljemo na upstream pull request.
Po završetku rada na fajlovima u lokalu, možemo standardno poslati sve promene na naš
udaljeni repozitorijum origin sa naredbom push, nakon čega možemo na više načina da
pošaljemo na upstream pull request, ali više o ovome na delu GitHub Pull request.
Primer
1 git st
Ukoliko se naredba sastoji iz više reči onda je na Windows-u potrebno sve staviti izmeću
dvostrukih navodnika ” “, dok je na Unix-u dovoljno koristiti jednostruke navodnike.
Primer
1 git rso
zpping