-
1. Untuk Bermula
-
2. Git Basics
- 2.1 Mendapatkan suatu Repositori Git
- 2.2 Merekodkan Perubahan bagi Repositori
- 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 on the Server
- 4.1 The Protocols
- 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 Summary
-
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. 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
2.1 Git Basics - Mendapatkan suatu Repositori Git
If you can read only one chapter to get going with Git, this is it. This chapter covers every basic command you need to do the vast majority of the things you’ll eventually spend your time doing with Git. By the end of the chapter, you should be able to configure and initialize a repository, begin and stop tracking files, and stage and commit changes. We’ll also show you how to set up Git to ignore certain files and file patterns, how to undo mistakes quickly and easily, how to browse the history of your project and view changes between commits, and how to push and pull from remote repositories.
Mendapatkan suatu Repositori Git
Lazimnya, anda boleh memperoleh repositori Git dalam salah satu daripada dua cara ini:
-
Anda boleh mengambil suatu direktori tempatan yang kini tidak berada di bawah kawalan versi, dan mengubahkannya menjadi suatu repositori Git, atau
-
Anda boleh mengeklonkan ataupun clone suatu repositori Git yang sedia ada dari tempat lain.
Dalam kedua-kedua kes, anda akan mempunyai suatu repositori Git di mesin tempatan anda, yang sedia untuk melakukan kerja.
Memulakan suatu Repositori dalam suatu Direktori yang Sedia Ada
Jika anda mempunyai suatu direktori projek yang pada masa ini bukan di bawah kawalan versi dan anda mahu untuk bermula mengawalkannya dengan Git, anda pertama sekali perlu pergi ke direktori projek itu. Jika anda tidak pernah melakukan perkara ini, ia akan kelihatan sedikit berbeza bergantung kepada apakah sistem yang anda jalankan:
Bagi Linux:
$ cd /home/user/my_project
bagi Mac:
$ cd /Users/user/my_project
bagi Windows:
$ cd /c/user/my_project
dan menaipkan:
$ git init
Ini akan menciptakan suatu subdirektori baru bernama .git
yang akan mengandungi kesemua fail yang diperlukan bagi repositori anda — suatu rangka repositori Git.
Pada masa ini, tiada apa-apa yang berada dalam projek anda telah dikesan lagi.
(Sila lihat Git Internals untuk mendapatkan lebih banyak maklumat mengenai apakah fail yang betul-betul dikandungi dalam direktori .git
yang baru anda menciptakan.)
Jika anda mahu untuk bermula dengan fail sedia ada yang merupakan kawalam versi (yang bukan merupakan suatu direktori yang kosong), anda sepatutnya mula mengesan fail tersebut dan melakukan suatu komit permulaan.
Anda boleh melakukan sedemikian dengan beberapa perintah git add
yang boleh menentukan fail yang anda mahu kesankan, diikuti oleh suatu git commit
:
$ git add *.c
$ git add LICENSE
$ git commit -m 'initial project version'
Kami akan meneruskan apa yang mampu dilakukan dengan perintah-perintah ini hanya dalam masa satu minit. Pada ketika ini, anda sudah mempunyai suatu repositori Git dengan fail yang dikesan dan suatu komit permulaan.
Mengeklonkan suatu Repository yang Sedia Ada
Jika anda ingin mendapatkan suatu salinan bagi suatu repositori Git yang sedia ada — contohnya, suatu projek yang anda ingin menyumbang kepada — perintah yang anda perlukan adalah 'git clone`.
Jika anda sudah biasa dengan sistem VCS yang lain seperti Subversion, anda akan melihat bahawa perintah itu adalah "clone" dan bukannya "checkout".
Ini adalah suatu perbezaan yang penting — bukan hanya mendapatkan satu salinan kerja sahaja, Git akan menerima suatu salinan penuh bagi hampir semua data yang ada pada pelayan.
Setiap versi bagi setiap satu fail untuk sejarah sesuatu projek akan disalin semula secara lalai apabila anda menjalankan git clone
.
Sebenarnya, jika cakera pelayan anda rosak, anda boleh sering menggunakan hampir mana-mana klon sahaja pada mana-mana klien untuk menetapkan pelayan kembali ke keadaan yang ia berada dalam ketika masa ia telah diklonkan (anda mungkin kehilangan beberapa cangkuk di sebelah pelayan ataupun server-side hooks dan sebagainya, tetapi semua data versi akan berada di sana — sila lihat Getting Git on a Server untuk maklumat yang lebih lanjut).
Anda mengeklonkan repositori dengan git clone <url>
.
Sebagai contohnya, jika anda ingin mengeklon semula perpustakaan yang boleh dikaitkan dengan Git yang dikenali sebagai libgit2
, anda boleh membuat sedemikian:
$ git clone https://github.com/libgit2/libgit2
Itu menciptakan suatu direktori yang bernama libgit2
, bermula dengan suatu direktori .git
yang berada di dalamnya, menarik ke bawah semua data untuk repositori itu, dan menyemak suatu salinan berfungsi bagi versi terbaharu.
Sekiranya anda masuk ke dalam direktori libgit2
baru yang baru dibuat, anda akan boleh melihat fail projek di dalamnya, sedia untuk dilakukan kerja atau digunakan.
Sekiranya anda mahu mengeklonkan repositori ke dalam suatu direktori yang bernama sesuatu selain daripada libgit2
, anda boleh menentukannya sebagai pilihan baris perintah yang berikut:
$ git clone https://github.com/libgit2/libgit2 mylibgit
Perintah itu melakukan kerja yang sama seperti yang sebelumnya, tetapi direktori sasaran adalah dikenali sebagai mylibgit
.
Git mempunyai sejumlah protokol pemindahan ataupun transfer protocols yang berbeza yang boleh anda gunakan.
Contoh sebelumnya menggunakan protokol https://
, tetapi anda juga boleh melihat git://
atau user@server:path/to/repo.git
, yang menggunakan protokol pemindahan SSH.
Getting Git on a Server akan memperkenalkan semua pilihan yang tersedia yang boleh disediakan oleh pelayan untuk mengakses repositori Git anda dan apakah kebaikan dan keburukan bagi pilihan masing-masing.