Git Handledning
Komma igång med Git
Sök…
Anmärkningar
Git är ett gratis, distribuerat versionskontrollsystem som gör det möjligt för programmerare att hålla reda på kodändringar, via "snapshots" (åtaganden), i sitt nuvarande tillstånd. Genom att använda commits kan programmerare testa, felsöka och skapa nya funktioner i samarbete. Alla åtaganden lagras på det som kallas ett "Git-arkiv" som kan vara värd på din dator, privata servrar eller öppen källkodsajter, till exempel på Github.
Git tillåter också användare att skapa nya "grenar" av koden, vilket gör att olika versioner av koden kan leva bredvid varandra. Detta möjliggör scenarier där en gren innehåller den senaste stabila versionen, en annan gren innehåller en uppsättning nya funktioner som utvecklas och en ännu en gren innehåller en annan uppsättning funktioner. Git gör processen att skapa dessa grenar och sedan sammanfoga dem igen, nästan smärtfri.
Git har 3 olika "områden" för din kod:
- Arbetsregister : Det område som du kommer att göra allt ditt arbete i (skapa, redigera, ta bort och organisera filer)
- Sceneringsområde : Området där du listar de ändringar du gjort i arbetskatalogen
- Förvar : där Git permanent lagrar de ändringar du har gjort som olika versioner av projektet
Git skapades ursprungligen för att hantera Linux-källkällan. Genom att göra dem enklare uppmuntrar det små åtaganden, förfalskning av projekt och sammanslagning mellan gafflar och att ha massor av kortlivade grenar.
Den största förändringen för personer som är vana vid CVS eller Subversion är att varje kassa inte bara innehåller källträdet utan också hela projektets historia. Vanliga operationer som skillnad i revisioner, kolla in äldre revisioner, begå (till din lokala historia), skapa en gren, kolla in en annan gren, slå samman grenar eller patchfiler kan alla göras lokalt utan att behöva kommunicera med en central server. Således tas den största källan till latens och opålitlighet bort. Kommunikation med "uppströms" -förvaret behövs bara för att få de senaste ändringarna och för att publicera dina lokala ändringar till andra utvecklare. Detta förvandlar det som tidigare var en teknisk begränsning (den som har förvaret äger projektet) till ett organisatoriskt val (din "uppströms" är den du väljer att synkronisera med).
versioner
Version | Utgivningsdatum |
---|---|
2,13 | 2017/05/10 |
2,12 | 2017/02/24 |
2.11.1 | 2017/02/02 |
2,11 | 2016/11/29 |
2.10.2 | 2016/10/28 |
2,10 | 2016/09/02 |
2,9 | 2016/06/13 |
2,8 | 2016/03/28 |
2,7 | 2015/10/04 |
2,6 | 2015/09/28 |
2,5 | 2015/07/27 |
2,4 | 2015/04/30 |
2,3 | 2015/02/05 |
2,2 | 2014/11/26 |
2,1 | 2014/08/16 |
2,0 | 2014/05/28 |
1,9 | 2014/02/14 |
1.8.3 | 2013/05/24 |
1,8 | 2012-10-21 |
1.7.10 | 2012-04-06 |
1,7 | 2010-02-13 |
1.6.5 | 2009-10-10 |
1.6.3 | 2009-05-07 |
1,6 | 2008-08-17 |
1.5.3 | 2007-09-02 |
1,5 | 2007-02-14 |
1,4 | 2006-06-10 |
1,3 | 2006-04-18 |
1,2 | 2006-02-12 |
1,1 | 2006-01-08 |
1,0 | 2005-12-21 |
0,99 | 2005-07-11 |
Skapa ditt första arkiv, lägg sedan till och begå filer
Kontrollera först att du har installerat Git på kommandoraden:
På alla operativsystem:
git --version
På UNIX-liknande operativsystem:
which git
Om ingenting returneras eller kommandot inte identifieras kan du behöva installera Git på ditt system genom att ladda ner och köra installationsprogrammet. Se Git-hemsidan för exceptionellt tydliga och enkla installationsinstruktioner.
När du har installerat Git konfigurerar du ditt användarnamn och din e-postadress . Gör detta innan du gör ett åtagande.
När Git är installerat, navigerar du till katalogen du vill placera under versionskontroll och skapa ett tomt Git-arkiv:
git init
Detta skapar en dold mapp, .git
, som innehåller VVS som krävs för att Git ska fungera.
Nästa, kolla vilka filer Git lägger till i ditt nya arkiv; detta steg är värt särskild vård:
git status
Granska den resulterande listan med filer; du kan berätta för Git vilken av filerna som ska placeras i versionskontroll (undvik att lägga till filer med konfidentiell information som lösenord eller filer som bara rör på repo):
git add <file/directory name #1> <file/directory name #2> < ... >
Om alla filer i listan ska delas med alla som har tillgång till förvaret kommer ett enda kommando att lägga till allt i din nuvarande katalog och dess underkataloger:
git add .
Detta kommer att "scenera" alla filer som ska läggas till i versionskontrollen och förbereda dem för att begå i ditt första åtagande.
För filer som du aldrig vill ha under versionskontroll ska du skapa och fylla en fil med namnet .gitignore
innan du add
kommandot add
.
Kommunicera alla filer som har lagts till, tillsammans med ett meddelande om åtagande:
git commit -m "Initial commit"
Detta skapar ett nytt engagemang med det givna meddelandet. En åtagande är som en spara eller snapshot av hela projektet. Du kan nu trycka på eller ladda upp det till ett fjärrlager, och senare kan du hoppa tillbaka till det vid behov.
Om du utelämnar -m
parametern öppnas din standardredigerare och du kan redigera och spara åtagandemeddelandet där.
Lägga till en fjärrkontroll
För att lägga till en ny fjärrkontroll använder du kommandot git remote add
på terminalen, i den katalog ditt arkiv lagras på.
git remote add
tar två argument:
- Ett fjärrnamn, till exempel,
origin
- En fjärr-URL, till exempel
https://<your-git-service-address>/user/repo.git
git remote add origin https://<your-git-service-address>/owner/repository.git
OBS! Innan du lägger till fjärrkontrollen måste du skapa det nödvändiga lagret i din git-tjänst. Du kommer att kunna trycka / dra kommit efter att du har lagt till fjärrkontrollen.
Klona ett arkiv
git clone
kommandot används för att kopiera ett befintligt Git-arkiv från en server till den lokala maskinen.
Till exempel för att klona ett GitHub-projekt:
cd <path where you'd like the clone to create a directory>
git clone https://github.com/username/projectname.git
För att klona ett BitBucket-projekt:
cd <path where you'd like the clone to create a directory>
git clone https://[email protected]/username/projectname.git
Detta skapar en katalog som heter projectname
på den lokala maskinen som innehåller alla filerna i fjärrkontrollen Git. Detta inkluderar källfiler för projektet samt en .git
underkatalog som innehåller hela historiken och konfigurationen för projektet.
Så här anger du ett annat MyFolder
, t.ex. MyFolder
:
git clone https://github.com/username/projectname.git MyFolder
Eller för att klona i den aktuella katalogen:
git clone https://github.com/username/projectname.git .
Notera:
När kloning till en specificerad katalog måste katalogen vara tom eller obefintlig.
Du kan också använda
ssh
versionen av kommandot:git clone [email protected]:username/projectname.git
https
versionen och ssh
versionen är likvärdiga. Vissa värdtjänster som GitHub rekommenderar dock att du använder https
snarare än ssh
.
Ställa in uppströms fjärrkontrollen
Om du har klonat en gaffel (t.ex. ett open source-projekt på Github) kanske du inte har pushåtkomst till uppströmsförvaret, så du behöver både din gaffel men kunna hämta uppströmsförvaret.
Kontrollera först fjärrnamnen:
$ git remote -v
origin https://github.com/myusername/repo.git (fetch)
origin https://github.com/myusername/repo.git (push)
upstream # this line may or may not be here
Om upstream
redan finns (det är i vissa Git-versioner) måste du ange URL: n (för närvarande är den tom):
$ git remote set-url upstream https://github.com/projectusername/repo.git
Om uppströmmen inte är där, eller om du också vill lägga till en vän / kollegas gaffel (för närvarande finns de inte):
$ git remote add upstream https://github.com/projectusername/repo.git
$ git remote add dave https://github.com/dave/repo.git
Delningskod
För att dela din kod skapar du ett arkiv på en fjärrserver som du kopierar ditt lokala arkiv till.
För att minimera användningen av utrymme på fjärrservern skapar du ett naket arkiv: ett som bara har .git
objekten och inte skapar en fungerande kopia i filsystemet. Som en bonus ställer du in den här fjärrkontrollen som en uppströmsserver för att enkelt dela uppdateringar med andra programmerare.
På fjärrservern:
git init --bare /path/to/repo.git
På den lokala maskinen:
git remote add origin ssh://username@server:/path/to/repo.git
(Observera att ssh:
bara är ett möjligt sätt att få åtkomst till fjärrförvaret.)
Kopiera nu ditt lokala arkiv till fjärrkontrollen:
git push --set-upstream origin master
Lägga till - --set-upstream
(eller -u
) skapade en uppströms (spårningsreferens) som används av argumentlösa Git-kommandon, t.ex. git pull
.
Ställa in ditt användarnamn och e-postadress
You need to set who you are *before* creating any commit. That will allow commits to have the right author name and email associated to them.
Det har inget att göra med autentisering när du trycker till ett fjärrlager (t.ex. när du trycker till ett fjärrlager med ditt GitHub-, BitBucket- eller GitLab-konto)
För att förklara den identiteten för alla förvar använder du git config --global
Detta lagrar inställningen i din användares .gitconfig
fil: t.ex. $HOME/.gitconfig
eller för Windows, %USERPROFILE%\.gitconfig
.
git config --global user.name "Your Name"
git config --global user.email [email protected]
För att förklara en identitet för ett enda förvar använder du git config
i en repo.
Detta lagrar inställningen i det enskilda lagret i filen $GIT_DIR/config
. t.ex. /path/to/your/repo/.git/config
.
cd /path/to/my/repo
git config user.name "Your Login At Work"
git config user.email [email protected]
Inställningar lagrade i ett arkivs konfigurationsfil kommer att ha företräde framför den globala konfigurationen när du använder det förvaret.
Tips: om du har olika identiteter (ett för open source-projekt, en på jobbet, en för privata repor, ...), och du inte vill glömma att ställa in rätt för varje olika repor du arbetar med :
Ta bort en global identitet
git config --global --remove-section user.name git config --global --remove-section user.email
För att tvinga git att bara leta efter din identitet inom ett förvarets inställningar, inte i den globala konfigurationen:
git config --global user.useConfigOnly true
På det sättet, om du glömmer att ställa in ditt user.name
och user.email
för ett givet arkiv och försöka göra ett åtagande, ser du:
no name was given and auto-detection is disabled
no email was given and auto-detection is disabled
Lär dig om ett kommando
För att få mer information om alla git kommando - det vill säga uppgifter om vad kommandot gör, tillgängliga alternativ och annan dokumentation - använd --help
alternativet eller help
kommando.
För att få all tillgänglig information om kommandot git diff
använder du till exempel:
git diff --help
git help diff
På samma sätt, för att få all tillgänglig information om status
, använd:
git status --help
git help status
Om du bara vill ha en snabb hjälp med att visa betydelsen av de mest använda kommandoradsflaggorna, använd -h
:
git checkout -h
Ställ in SSH för Git
Om du använder Windows öppnar du Git Bash . Om du använder Mac eller Linux, öppna din terminal.
Innan du genererar en SSH-nyckel kan du kontrollera om du har några befintliga SSH-nycklar.
Lista innehållet i din ~/.ssh
katalog:
$ ls -al ~/.ssh
# Lists all the files in your ~/.ssh directory
Kontrollera kataloglistan för att se om du redan har en offentlig SSH-nyckel. Som standard är filnamnen på de offentliga nycklarna ett av följande:
id_dsa.pub
id_ecdsa.pub
id_ed25519.pub
id_rsa.pub
Om du ser ett befintligt offentligt och privat nyckelpar som du vill använda på ditt Bitbucket, GitHub-konto (eller liknande) kan du kopiera innehållet i id_*.pub
Pubfilen.
Om inte kan du skapa ett nytt offentligt och privat nyckelpar med följande kommando:
$ ssh-keygen
Tryck på Enter eller Return för att acceptera standardplatsen. Ange och ange en lösenfras när du uppmanas eller lämna den tom.
Se till att din SSH-nyckel läggs till i ssh-agenten. Starta ssh-agenten i bakgrunden om den inte redan körs:
$ eval "$(ssh-agent -s)"
Lägg till din SSH-nyckel till ssh-agenten. Lägg märke till att du behöver ersätta id_rsa
i kommandot med namnet på din privata nyckelfil :
$ ssh-add ~/.ssh/id_rsa
Om du vill ändra uppströms för ett befintligt arkiv från HTTPS till SSH kan du köra följande kommando:
$ git remote set-url origin ssh://[email protected]:7999/projects/your_project.git
För att klona ett nytt arkiv över SSH kan du köra följande kommando:
$ git clone ssh://[email protected]:7999/projects/your_project.git
Git Installation
Låt oss använda oss av lite Git. Första saker först - du måste installera det. Du kan få det på ett antal sätt; de två huvudsakliga är att installera det från källan eller att installera ett befintligt paket för din plattform.
Installera från källan
Om du kan är det generellt användbart att installera Git från källan, eftersom du får den senaste versionen. Varje version av Git tenderar att inkludera användbara förbättringar av användargränssnittet, så att få den senaste versionen är ofta den bästa vägen om du känner dig bekväm att sammanställa programvara från källan. Det är också så att många Linux-distributioner innehåller mycket gamla paket; så om du inte är på en mycket aktuell distro eller använder backports kan det vara bäst att installera från källan.
För att installera Git måste du ha följande bibliotek som Git beror på: curl, zlib, openssl, expat och libiconv. Om du till exempel använder ett system som har yum (som Fedora) eller apt-get (t.ex. ett Debian-baserat system) kan du använda ett av dessa kommandon för att installera alla beroenden:
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
$ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
När du har alla nödvändiga beroenden kan du gå vidare och ta tag i den senaste ögonblicksbilden från Git-webbplatsen:
http://git-scm.com/download , sedan kompilera och installera:
$ tar -zxf git-1.7.2.2.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install
När detta är gjort kan du också få Git via Git själv för uppdateringar:
$ git clone git://git.kernel.org/pub/scm/git/git.git
Installera på Linux
Om du vill installera Git på Linux via ett binärt installationsprogram kan du i allmänhet göra det genom det grundläggande pakethanteringsverktyget som kommer med din distribution. Om du är på Fedora kan du använda yum:
$ yum install git
Eller om du är på en Debian-baserad distribution som Ubuntu, prova apt-get:
$ apt-get install git
Installera på Mac
Det finns tre enkla sätt att installera Git på en Mac. Det enklaste är att använda det grafiska Git-installationsprogrammet, som du kan ladda ner från SourceForge-sidan.
http://sourceforge.net/projects/git-osx-installer/
Figur 1-7. Git OS X-installationsprogram. Det andra stora sättet är att installera Git via MacPorts ( http://www.macports.org) . Om du har MacPorts installerat installerar du Git via
$ sudo port install git +svn +doc +bash_completion +gitweb
Du behöver inte lägga till alla extra, men du kommer förmodligen att ta med + svn om du någonsin måste använda Git med Subversion-arkiv (se kapitel 8).
Homebrew ( http://brew.sh/) är ett annat alternativ att installera Git. Om du har Homebrew installerat, installera Git via
$ brew install git
Installera på Windows
Att installera Git på Windows är mycket enkelt. MsysGit-projektet har en av de enklare installationsprocedurerna. Ladda bara ner exe-filen från installationsprogrammet från GitHub-sidan och kör den:
http://msysgit.github.io
När den har installerats har du både en kommandoradversion (inklusive en SSH-klient som kommer att komma till hands senare) och standard GUI.
Obs om Windows-användning: du bör använda Git med det medföljande msysGit-skalet (Unix-stil), det gör det möjligt att använda de komplexa kommandoraderna som anges i den här boken. Om du av någon anledning behöver använda den ursprungliga Windows-skal / kommandoradskonsolen måste du använda dubbla citat istället för enstaka citat (för parametrar med mellanslag i dem) och du måste citera parametrarna som slutar med circumflex-accenten (^ ) om de är sist på linjen, eftersom det är en fortsättningssymbol i Windows.