Git Operasi Dasar
Pekerjaan Git adalah untuk membuat dan menyimpan snapshot dari proyek Anda dan setelah snapshot dan membandingkan. Bab ini akan tentang membuat dan mengirimkan pengenalan perintah snapshot proyek Anda.
Dapatkan berhubungan dengan perintah untuk membuat sebuah proyek
git init
Membuat direktori baru di repositori Git dengan git init. Anda dapat, melakukan direktori setiap saat, benar-benar lokal.
Executive git init dalam direktori, Anda dapat membuat Git repositori. Sebagai contoh, kita buat item w3big:
$ mkdir w3big $ cd w3big/ $ git init Initialized empty Git repository in /Users/tianqixin/www/w3big/.git/ # 在 /www/w3big/.git/ 目录初始化空 Git 仓库完毕。
Sekarang Anda dapat melihat subdirektori git yang dihasilkan dalam proyek Anda. Ini adalah repositori Git Anda, dan semua data yang terkait dengan snapshot dari proyek Anda disimpan di sini.
ls -a . id .git
clone git
Gunakan git clone repositori Git untuk salinan lokal, sehingga mereka dapat melihat item, atau memodifikasinya.
Jika Anda membutuhkan sebuah proyek kerjasama dengan orang lain, atau Anda ingin menyalin sebuah proyek, melihat kode, Anda dapat mengkloning proyek. Jalankan:
git clone [url]
Item [url] Anda ingin menyalinnya.
Sebagai contoh, kita kloning proyek pada Github:
$ git clone git@github.com:schacon/simplegit.git Cloning into 'simplegit'id. remote: Counting objects: 13, done. remote: Total 13 (delta 0), reused 0 (delta 0), pack-reused 13 Receiving objects: 100% (13/13), done. Resolving deltas: 100% (2/2), done. Checking connectivityid. done.
Setelah kloning selesai di direktori saat ini akan menghasilkan simplegit direktori:
$ Cd simplegit / $ ls README Rakefile liboperasi akan menyalin semua catatan proyek.
$ ls -a . id .git README Rakefile lib $ cd .git $ ls HEAD description info packed-refs branches hooks logs refs config index objects
Secara default, Git akan mengikuti nama URL yang tersedia item untuk membuat direktori proyek lokal Anda ditunjukkan. URL biasanya nama item terakhir / setelah. Jika Anda ingin nama yang berbeda, Anda dapat menambahkan nama yang Anda inginkan setelah perintah.
Snapshot dasar
Pekerjaan Git adalah untuk membuat dan menyimpan snapshot dari proyek Anda dan setelah snapshot dan membandingkan. Bab ini akan tentang menciptakan sebuah snapshot dari proyek Anda dan mengirimkan pengenalan perintah.
git add
git add perintah untuk menambahkan file ke cache, seperti yang kita tambahkan dua file berikut:
$ touch README $ touch hello.php $ ls README hello.php $ git status -s ?? README ?? hello.php $
Perintah git status digunakan untuk melihat status proyek.
Selanjutnya kita jalankan git add perintah untuk menambahkan file:
$ git add README hello.php
Sekarang kita jalankan git status, Anda dapat melihat dua dokumen tersebut telah ditambahkan untuk pergi.
$ git status -s A README A hello.php $
Proyek baru, menambahkan semua file yang sama, kita dapat menggunakangit add. Perintah untuk menambahkan semua file dalam proyek saat ini.
Sekarang kita memodifikasi file README:
$ vim README <pre> <p>在 README 添加以下内容:<b># w3big Git 测试</b>,然后保存退出。</p> <p>再执行一下 git status:</p> $ git status -s AM README A hello.php
"AM" status berarti bahwa file tersebut setelah kami menambahkannya ke cache ada perubahan. Setelah perubahan kita menjalankan git add perintah untuk menambahkannya ke cache:
$ git add . $ git status -s A README A hello.php
Bila Anda ingin perubahan yang terkandung dalam snapshot laporan yang akan datang dalam waktu, kita harus menjalankan git add.
git status
git status untuk melihat Anda setelah komit terakhir jika ada perubahan.
Saya menunjukkan perintah ini ketika ditambahkan -s parameter untuk mendapatkan hasil yang singkat. Jika Anda tidak menambahkan parameter ini akan keluaran rinci:
$ git status On branch master Initial commit Changes to be committed: (use "git rm --cached <file>id." to unstage) new file: README new file: hello.php
diff git
Status git diff git eksekutif untuk melihat rincian hasil eksekusi.
git perintah diff dan menampilkan cache write telah dimodifikasi tapi belum ditulis ke cache perubahan perbedaan. git diff Ada dua skenario utama.
- Perubahan tidak cache:diff git
- Lihatperubahan cache: git diff --cached
- Lihat cache dan uncached semuaperubahan: git diff KEPALA
- Tampilkan ringkasan daripada seluruhdiff: git diff --stat
Masukkan berikut dalam file hello.php:
<?php echo '本教程:www.w3write.com'; ?>
$ git status -s A README AM hello.php $ git diff diff --git a/hello.php b/hello.php index e69de29id69b5711 100644 --- a/hello.php +++ b/hello.php @@ -0,0 +1,3 @@ +<?php +echo '本教程:www.w3write.com'; +?>
menampilkan status git pada terakhir Anda berkomitmen untuk berubah setelah update atau menulis garis perubahan cache dengan garis dan git diff menunjukkan secara spesifik apa perubahan tersebut.
Selanjutnya kita datang untuk melihat git berikutnya diff pelaksanaan --cached hasil:
$ git add hello.php $ git status -s A README A hello.php $ git diff --cached diff --git a/README b/README new file mode 100644 index 0000000id8f87495 --- /dev/null +++ b/README @@ -0,0 +1 @@ +# w3big Git 测试 diff --git a/hello.php b/hello.php new file mode 100644 index 0000000id69b5711 --- /dev/null +++ b/hello.php @@ -0,0 +1,3 @@ +<?php +echo '本教程:www.w3write.com'; +?>
git commit
Gunakan git menambahkan perintah Anda ingin menulis isi dari buffer snapshot, dan mengeksekusi git commit akan menambahkan konten ke gudang penyangga.
Git Anda mengirimkan masing-masing nama dan alamat e-mail yang tercatat, sehingga langkah pertama Anda perlu mengkonfigurasi nama pengguna dan alamat e-mail.
$ git config --global user.name 'w3big' $ git config --global user.email test@w3write.com
Berikutnya kita menulis caching, dan menyerahkan semua perubahan hello.php tersebut. Dalam contoh pertama, kita menggunakan opsi -m untuk memberikan baris perintah untuk mengirimkan komentar.
$ git add hello.php $ git status -s A README A hello.php $ $ git commit -m '第一次版本提交' [master (root-commit) d32cf1f] 第一次版本提交 2 files changed, 4 insertions(+) create mode 100644 README create mode 100644 hello.php
Sekarang kita telah mencatat snapshot. Jika kita jalankan git status:
$ git status # On branch master nothing to commit (working directory clean)
Output di atas menunjukkan bahwa kita setelah pengajuan terakhir, tidak membuat perubahan apapun, adalah "direktori kerja bersih:. Direktori kerja bersih"
Jika Anda tidak menetapkan opsi -m, Git mencoba untuk membuka editor bagi Anda untuk mengisi informasi yang disampaikan. Git jika Anda tidak dapat menemukan informasi yang relevan dalam konfigurasi, default akan membuka vim. Layar akan terlihat seperti ini:
# Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Changes to be committed: # (use "git reset HEAD <file>id." to unstage) # # modified: hello.php # ~ ~ ".git/COMMIT_EDITMSG" 9L, 257C
Jika Anda berpikir git add disampaikan proses cache yang terlalu rumit, Git juga memungkinkan Anda untuk menggunakan opsi -a untuk melewatkan langkah ini. format perintah adalah sebagai berikut:
git commit -a
Mari kita memodifikasi file hello.php sebagai berikut:
<?php echo '本教程:www.w3write.com'; echo '本教程:www.w3write.com'; ?>
Kemudian jalankan perintah berikut:
git commit -am '修改 hello.php 文件' [master 71ee2cb] 修改 hello.php 文件 1 file changed, 1 insertion(+)
git reset KEPALA
git reset perintah HEAD untuk menghapus konten cache.
Mari kita mengubah file berkas README, sebagai berikut:
# w3big Git 测试 # 本教程
File hello.php diubah sebagai berikut:
<?php echo '本教程:www.w3write.com'; echo '本教程:www.w3write.com'; echo '本教程:www.w3write.com'; ?>
Sekarang setelah dua file diubah disampaikan ke zona penyangga, kita sekarang ingin membatalkan salah satu dari cache, sebagai berikut:
$ git status -s M README M hello.php $ git add . $ git status -s M README M hello.pp $ git reset HEAD -- hello.php Unstaged changes after reset: M hello.php $ git status -s M README M hello.php
Sekarang Anda menjalankan git commit, perubahan hanya akan diserahkan berkas README, tapi hello.php tidak.
$ git commit -m '修改' [master f50cfda] 修改 1 file changed, 1 insertion(+) $ git status -s M hello.php
Anda dapat melihat file perubahan hello.php dan untuk pengajuan.
Maka kita dapat menggunakan perintah berikut untuk memodifikasi hello.php menyerahkan:
$ git commit -am '修改 hello.php 文件' [master 760f74d] 修改 hello.php 文件 1 file changed, 1 insertion(+) $ git status On branch master nothing to commit, working directory clean
Singkatnya, melakukan git reset HEAD untuk membatalkan sebelum git add untuk menambahkan, tetapi tidak ingin untuk memasukkan dalam cache snapshot di commit selanjutnya.
git rm
entri rm git akan dihapus dari cache. ulang KEPALA git ini membatalkan entri cache yang berbeda. "Batal Cache", yang berarti bahwa pemulihan akan membuat perubahan ke cache cara kami sebelumnya.Secaradefault, git file rm akan dihapus dari file cache dan hard drive Anda (direktori kerja).
Jika Anda ingin menyimpan file dalam direktori kerja, Anda dapat menggunakangit rm --cached:
Seperti kita menghapus hello.php file:
$ git rm hello.php rm 'hello.php' $ ls README
Tidak menghapus file dari ruang kerja:
$ git rm --cached README rm 'README' $ ls README
git mv
git perintah mv untuk melakukan semua hal yanggit rm perintah operasi --cached,mengubah nama file pada disk, dan kemudian jalankan git add untuk menambahkan file baru ke cache.
README pertama kita hapus hanya menambahkan kembali:
$ git add README
Kemudian nama yang sama yaitu:
$ git mv README README.md $ ls README.md