-
1. Memulai
- 1.1 Tentang Version Control
- 1.2 Sejarah Singkat Git
- 1.3 Dasar-dasar Git
- 1.4 Command Line
- 1.5 Memasang Git
- 1.6 Pengaturan Awal Git
- 1.7 Mendapatkan Bantuan
- 1.8 Kesimpulan
-
2. Git Basics
- 2.1 Mendapatkan Repository Git
- 2.2 Recording Changes to the Repository
- 2.3 Viewing the Commit History
- 2.4 Undoing Things
- 2.5 Working with Remotes
- 2.6 Tagging
- 2.7 Alias Git
- 2.8 Summary
-
3. Git Branching
- 3.1 Branches in a Nutshell
- 3.2 Basic Branching and Merging
- 3.3 Branch Management
- 3.4 Branching Workflows
- 3.5 Remote Branches
- 3.6 Rebasing
- 3.7 Summary
-
4. Git di Server
- 4.1 Protokol
- 4.2 Getting Git on a Server
- 4.3 Generating Your SSH Public Key
- 4.4 Setting Up the Server
- 4.5 Git Daemon
- 4.6 Smart HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Third Party Hosted Options
- 4.10 Ringkasan
-
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. Kostumisasi Git
- 8.1 Konfigurasi Git
- 8.2 Git Attributes
- 8.3 Git Hooks
- 8.4 An Example Git-Enforced Policy
- 8.5 Ringkasan
-
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. Appendix 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. Appendix B: Embedding Git in your Applications
- A2.1 Command-line Git
- A2.2 Libgit2
- A2.3 JGit
-
A3. Appendix 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
A3.2 Appendix C: Git Commands - Getting and Creating Projects
Getting and Creating Projects
There are two ways to get a Git repository. One is to copy it from an existing repository on the network or elsewhere and the other is to create a new one in an existing directory.
git init
To take a directory and turn it into a new Git repository so you can start version controlling it, you can simply run git init
.
We talk briefly about how you can change the default branch from “master” in Remote Branches.
We use this command to create an empty bare repository for a server in Putting the Bare Repository on a Server.
Finally, we go through some of the details of what it actually does behind the scenes in Plumbing and Porcelain.
git clone
The git clone
command is actually something of a wrapper around several other commands. It creates a new directory, goes into it and runs git init
to make it an empty Git repository, adds a remote (git remote add
) to the URL that you pass it (by default named origin
), runs a git fetch
from that remote repository and then checks out the latest commit into your working directory with git checkout
.
The git clone
command is used in dozens of places throughout the book, but we’ll just list a few interesting places.
It’s basically introduced and explained in Menduplikat Repositori yang Ada, where we go through a few examples.
In Getting Git on a Server we look at using the --bare
option to create a copy of a Git repository with no working directory.
In Bundling we use it to unbundle a bundled Git repository.
Finally, in Cloning a Project with Submodules we learn the --recursive
option to make cloning a repository with submodules a little simpler.
Though it’s used in many other places through the book, these are the ones that are somewhat unique or where it is used in ways that are a little different.