-
1. Kom igång
- 1.1 Om versionshantering
- 1.2 En kort historik av Git
- 1.3 Vad är Git?
- 1.4 Kommandoraden
- 1.5 Installera Git
- 1.6 Använda Git för första gången
- 1.7 Få hjälp
- 1.8 Sammanfattning
-
2. Grunder i Git
- 2.1 Skaffa ett Git-förvar
- 2.2 Spara ändringar till förvaret
- 2.3 Visa historiken
- 2.4 Ångra saker
- 2.5 Jobba med fjärrförvar
- 2.6 Taggning
- 2.7 Git alias
- 2.8 Sammanfattning
-
3. Git förgreningar
- 3.1 Grenar i ett nötskal
- 3.2 Grundläggande förgrening och sammanslagning
- 3.3 Hantera grenar
- 3.4 Arbetsflöde med grenar
- 3.5 Fjärrgrenar
- 3.6 Grenflytt
- 3.7 Sammanfattning
-
4. Git på servern
- 4.1 Protokollen
- 4.2 Skaffa Git på en server
- 4.3 Generera din publika SSH-nyckel
- 4.4 Konvigurera servern
- 4.5 Git Daemonen
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Alternativ tillhandahållna av tredje part
- 4.10 Sammanfattning
-
5. Distributed Git
- 5.1 Distributed Workflows
- 5.2 Contributing to a Project
- 5.3 Maintaining a Project
- 5.4 Summary
-
6. GitHub
-
7. Git Tools
- 7.1 Revision Selection
- 7.2 Interactive Staging
- 7.3 Stashing and Cleaning
- 7.4 Signing Your Work
- 7.5 Searching
- 7.6 Rewriting History
- 7.7 Reset Demystified
- 7.8 Advanced Merging
- 7.9 Rerere
- 7.10 Debugging with Git
- 7.11 Submodules
- 7.12 Bundling
- 7.13 Replace
- 7.14 Credential Storage
- 7.15 Summary
-
8. Customizing Git
- 8.1 Git Configuration
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Summary
-
9. Git and Other Systems
- 9.1 Git as a Client
- 9.2 Migrating to Git
- 9.3 Summary
-
10. Git Internals
- 10.1 Plumbing and Porcelain
- 10.2 Git Objects
- 10.3 Git References
- 10.4 Packfiles
- 10.5 The Refspec
- 10.6 Transfer Protocols
- 10.7 Maintenance and Data Recovery
- 10.8 Environment Variables
- 10.9 Summary
-
A1. Bilaga A: Git in Other Environments
- A1.1 Graphical Interfaces
- A1.2 Git in Visual Studio
- A1.3 Git in Eclipse
- A1.4 Git in Bash
- A1.5 Git in Zsh
- A1.6 Git in PowerShell
- A1.7 Summary
-
A2. Bilaga B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Bilaga C: Git Commands
- A3.1 Setup and Config
- A3.2 Getting and Creating Projects
- A3.3 Basic Snapshotting
- A3.4 Branching and Merging
- A3.5 Sharing and Updating Projects
- A3.6 Inspection and Comparison
- A3.7 Debugging
- A3.8 Patching
- A3.9 Email
- A3.10 External Systems
- A3.11 Administration
- A3.12 Plumbing Commands
2.1 Grunder i Git - Skaffa ett Git-förvar
Om du bara har möjlighet att läsa ett kapitel för att komma igång med Git, så är detta rätt kapitel. Detta kapitel täcker de grundläggande kommandon i Git du behöver för att utföra majoriteten av de saker som du kommer stöta på. Efter att ha läst kapitlet, skall du kunna konfigurera och initiera ett förvar, lägga till och ta bort revisionshantering av filer, samt preparera och spara versioner. Vi kommer också att visa dig hur du konfigurerar Git att ignorera vissa filer och vissa filmönster, hur du lätt och snabbt gör misstag ogjorda, hur man kollar i historiken för ditt projekt, visar ändringar mellan sparade versioner, samt hur man hämtar information från fjärrförvar.
Skaffa ett Git-förvar
Vanligtvis skaffar du ett Git-förvar på något av dessa två sätt:
-
Du tar en lokal mapp som för närvarande inte är versionskontrollerat, och gör den till ett Git-förvar, eller
-
Du kan klona ett existerande förvar från någonstans.
Vilket du än väljer, så har du i slutändan ett lokalt förvar på din dator, redo att arbeta med.
Initialisera ett förvar i en befintlig mapp
Om du har en projektmapp som för närvarande inte är versionskontrollerat och du vill börja hantera det med Git ställer du dig först i katalogen i fråga. Det ser lite olika ut beroende på vilket operativsystem du använder:
i Linux:
$ cd /home/user/my_project
på Mac:
$ cd /Users/user/my_project
i Windows:
$ cd /c/user/my_project
och skriv:
$ git init
Detta skapar en ny underkatalog som heter .git
som innehåller alla nödvändiga filer — ett skelett för Git-förvaret.
Ännu så länge är inget i ditt projekt spårat.
(Se Git Internals för mer information om exakt vilka filer som finns i .git
katalogen du nyss skapade.)
Om du vill börja versionshantera existerande filer (till skillnad från en tom mapp), skall du förmodligen spåra filerna och göra en första version.
Du kan åstadkomma det med ett fåtal git add
kommandon som specificerar de filer du vill spåra, följt av kommandot git commit
:
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial projektversion'
Vi kommer gå igenom vad dessa kommandon inom kort. Nu har du ett Git-förvar med spårade filer och en första version (commit).
Klona ett existerande förvar
Om du vill ha en kopia av ett existerande Git-förvar — till exempel för ett projekt som du gärna vill bidra till — så behöver du kommandot git clone
.
Om du känner till andra versionshanteringssystem som t.ex. Subversion, kommer du notera att kommandot är "clone" och inte "checkout".
Det finns en viktig distinktion — istället av att få en arbetskopia, får Git en fullständig kopia av i princip all data som servern har.
Varje version av filen för hela projektets historia hämtas normalt när du kör git clone
.
Ifall serverns disk blir korrupt kan du i själva verket ofta använda nästan vilken klon som helst på någon klient för att återskapa all information som servern hade då förvaret klonades (man kan förlora några krokar på serversidan och liknande, men all versionshanterad data kommer att finnas — se Skaffa Git på en server för mer detaljer).
Du klonar ett förvar med git clone <url>
.
Om du till exempel vill klona det Git-länkade förvaret kallat libgit2
, kan du göra såhär:
$ git clone https://github.com/libgit2/libgit2
Det skapar en mapp kallad libgit2
, initierar en .git
-mapp inuti den, hämtar all data för det förvaret, och checkar ut en arbetskopia av den senaste versionen.
Om du går ner i libgit2
-mappen som nyss skapades kommer du se projektfilerna där, redo att arbeta på eller användas.
Om du vill klona förvaret till en mapp som heter något annat än libgit2
, går det att specificera den nya mappens namn som ett extra argument:
$ git clone https://github.com/libgit2/libgit2 mylibgit
Det kommandot gör samma sak som det tidigare, men målmappen kallas mylibgit
.
Git har ett flertal olika överföringsprotokoll du kan använda.
Det föregående exemplet använder https://
-protokollet men du kan också hitta git://
och användare@server:sökväg/till/förvar.git
, som använder överföringsprotokollet SSH.
Skaffa Git på en server kommer introducera alla tillgängliga val som servern kan konfigurara för att komma åt dit Git-förvar, samt för- och nackdelarna med de olika valen.