Git

22 Perintah Git Penting

22 Perintah Git Penting
Git telah menjadi sistem kawalan versi klasik. Peningkatan populariti Git boleh dikaitkan dengan kepantasan, kelincahan dan fleksibiliti. Sama ada anda seorang pembangun web bebas atau pereka perisian untuk aplikasi peringkat perusahaan, anda boleh memanfaatkan Git. Ini membantu anda mengesan fail anda melalui versi yang sistematik. Git menjadikannya lebih mudah untuk mengembalikan versi kod yang lebih lama atau membuat cawangan baru untuk bereksperimen pada pangkalan kode semasa. Juga, Git adalah sistem kawalan versi terdistribusi yang bermaksud anda tidak perlu selalu menyambung ke pelayan pusat untuk menyelesaikan kerja anda.Berikut adalah arahan Git penting yang akan membantu dalam tugas harian anda. Contoh mudah akan memberi anda pemahaman tentang perintah, jadi anda dapat dengan mudah mengingat sintaksnya apabila anda perlu menggunakannya.

1. git tambah

Perintah git add membolehkan anda mula mengesan fail dan folder untuk repositori Git anda dan memindahkannya ke kawasan pementasan. Anda harus menggunakan perintah git komit untuk menjadikannya kekal pada gambar sejarah anda.

Menggunakan arahan itu mudah. Anda boleh memilih untuk menambah fail dan folder secara individu atau menggunakan operator glob jenis asterisk (*) Linux untuk menambahkannya dalam kumpulan.

Mari kita ambil contoh di bawah:

Andaikan, dalam kes di atas, kita telah menambahkan ReadMe.txt. Tetapi selebihnya fail belum ditambahkan.

Mari periksa statusnya:

status $ git
Pada tuan cawangan
Cawangan anda terkini dengan 'origin / master'.
Fail yang tidak dilacak:
(gunakan 'git add ... 'untuk memasukkan apa yang akan dilakukan)
fail1.txt
fail2.txt
folder1 /

Fail dan folder berwarna merah yang bermaksud tidak dijejaki. Kami boleh menambahkannya menggunakan:

$ git tambah fail1.fail txt2.folder txt1 / *

Sekiranya kita memeriksa statusnya sekarang:

status $ git
Pada tuan cawangan
Cawangan anda terkini dengan 'origin / master'.
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
fail baru: fail1.txt
fail baru: fail2.txt
fail baru: folder1 / file3.txt
fail baru: folder1 / file4.txt

Perintah git add telah menambahkan fail ke kawasan pementasan. Fail disimpan di kawasan pementasan sebelum membuatnya kekal melalui proses komit.

2. cawangan git

Di Git, percabangan itu mudah. Dalam sistem kawalan versi lain, ia adalah operasi yang mahal. Tetapi algoritma Git dioptimumkan untuk percabangan. Oleh itu, anda boleh menggunakan perintah git branch bila-bila masa anda ingin membuat garis pengembangan yang terpisah tanpa perlu risau tentang prestasi.

Mari lihat contoh berikut.

status $ git
Pada tuan cawangan
Cawangan anda terkini dengan 'origin / master'.
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
fail baru: fail1.txt
fail baru: fail2.txt
fail baru: folder1 / file3.txt
fail baru: folder1 / file4.txt

Perhatikan bahawa kita adalah 'On branch master'. Apabila anda membuat projek baru, anda akan menjadi master cawangan. Anda juga boleh menggunakan perintah git branch -a untuk mengetahui di cawangan mana anda berada:

cawangan $ git -a
* tuan

Perkara di atas memberitahu anda bahawa hanya ada satu cabang yang disebut 'master' dan tanda bintang (*) bermaksud anda berada di cawangan itu.

Mari buat cawangan baru yang dipanggil 'testing':

ujian cawangan $ git

Sekarang kita dapat memeriksa cawangannya lagi:

cawangan $ git -a
* tuan
ujian

Walaupun, kita masih berada di cawangan 'master', kita juga dapat melihat cabang 'pengujian' baru yang telah dibuat. Cabang 'testing' adalah replika cawangan 'master'.

3. git checkout

Perintah git checkout membawa anda ke cawangan, supaya anda dapat memanfaatkan sumber yang ada di sana. Anda boleh menganggap cawangan sebagai sungai dan sungai. Dengan cawangan, anda membuat aliran baru. Dengan arahan pembayaran, anda beralih ke aliran itu.

Mari lihat cabang 'pengujian' dari contoh sebelumnya:

Ujian pembayaran $ git
Beralih ke 'ujian' cawangan

Sekarang mari kita periksa status dan cawangannya lagi:

status $ git
Pada ujian cawangan
tiada apa yang perlu dilakukan, direktori kerja bersih
cawangan $ git -a
tuan
* ujian

Anda dapat melihat dari perintah git branch -a bahawa kami telah berpindah ke cabang ujian.

4. klon git

Perintah git clone membolehkan anda membuat salinan mana-mana repositori Git. Sebaik sahaja anda mengklon repositori, folder kloning baru akan mula mengikuti perubahan secara tempatan. Kerana Git diedarkan, klon adalah repositori Git sepenuhnya autonomi.

Untuk menunjukkan bagaimana pengklonan berfungsi, mari buat repositori baru:

$ mkdir dir1
$ cd dir1
$ mkdir myproject
$ cd projek saya /
$ git init
Repositori Git kosong yang dimulakan di / dir1 / myproject /.git /
$ sentuh ReadMe.txt
$ git commit -m 'Permulaan repositori saya'
[master (root-komitmen) 5a0bd75] Memulakan repositori saya
1 fail diubah, 0 sisipan (+), 0 penghapusan (-)
buat mod 100644 ReadMe.txt

Dalam contoh di atas, kami telah membuat repositori Git yang disebut 'myproject' di dalam folder 'dir1'. Katakan, ini adalah repositori utama kami. Sekarang kita mahu membuat salinannya dan bekerja di tempat lain.

Mari buat direktori bernama 'dir2' dan klon repositori 'myproject'. Kami menggunakan klon git

untuk mengklon 'myproject':

$ mkdir dir2
$ cd dir2
$ git clone / dir1 / myproject /
Pengklonan ke 'myproject' ..
selesai.
$ ls
projek saya

Perintah git clone berfungsi dengan URL juga.

$ git klon https: // github.com / ujian / ujian.git

Anda juga boleh menukar nama klon dengan menentukannya selepas alamat repositori Git:

$ git klon https: // github.com / ujian / ujian.git mytest

5. git komit

Perintah git comm dijalankan selepas perintah git add. Dalam contoh git add kami, kami telah menambahkan fail untuk dijejaki, tetapi kami tidak memberikannya ke repositori Git. Penjejakan tetap dilakukan sehingga komit dibuat. Apabila anda melakukan perubahan, perubahan tersebut menjadi sebahagian daripada rekod tetap.

Di bawah ini kami menjalankan git commit -m arahan:

$ git commit -m 'Melakukan fail dan folder saya'
[master 3ef57b3] Melakukan fail dan folder saya
4 fail diubah, 0 sisipan (+), 0 penghapusan (-)
buat mod 100644 fail1.txt
buat mod 100644 fail2.txt
buat mod 100644 folder1 / file3.txt
buat mod 100644 folder1 / file4.txt

Sekiranya anda tidak menggunakan pilihan -m untuk memberikan komen, Git akan membuka editor teks lalai anda dan memintanya. Komen dianggap sebagai amalan kawalan versi yang baik. Oleh itu, selalu masukkan komen yang bermakna dalam komitmen anda.

6. konfigurasi git

Perintah konfigurasi git membolehkan anda mengatur pelbagai pilihan untuk git repositori anda. Sebagai contoh, anda boleh menggunakan git config -global arahan untuk mendapatkan dan menetapkan pengguna anda.nama dan pengguna.e-mel.

Inilah cara anda dapat menetapkan nilai:

$ git config - pengguna global.nama 'Zak H'
$ git config - pengguna global.e-mel zakh @ contoh.com

Inilah cara anda dapat memeriksa nilai:

$ git config - pengguna global.nama
Zak H
$ git config - pengguna global.e-mel
zakh @ contoh.com

7. perbezaan git

Perintah git diff membantu anda melihat perbezaan antara fail dan folder. Sekiranya anda membuat perubahan dalam fail, ini adalah alat yang berguna untuk menilai perubahan yang anda buat dengan cepat.

Katakan kita memulakan kerja kita dengan ReadMe.fail txt dengan dua baris. Kemudian kita menyingkirkan baris kedua dan menambah baris ketiga.

Sekarang jika kita menjalankan perintah diff, ia akan menunjukkan perbezaan antara versi komited dan versi lokal yang diubah di kawasan pementasan. Begini rupa:

$ git perbezaan
diff --git a / ReadMe.txt b / ReadMe.txt
indeks 9475ddc… 1804904 100644
--- a / BacaMe.txt
+++ b / BacaMe.txt
@@ -1,2 +1,2 @@
Baris 1: Baris pertama saya
-Baris 2: Baris kedua saya
+Baris 3: Garis KETIGA saya

Baris 1 tidak berubah (putih), Garis 2 dikeluarkan (merah) dan Garis 3 ditambah (hijau).
Anda boleh menggunakan perintah diff untuk mencari perbezaan antara komit tertentu.

8. ambil git

Perintah pengambilan git mendapat sumber terkini dari asal yang ditentukan.

Mari lihat contohnya. Sepatutnya anda mempunyai syarat berikut:

dir1 / myprojek
dir2 / myproject (diklon)

Folder 'dir2 / myproject' diklon dari 'dir1 / myproject'. Sekarang jika seseorang melakukan perubahan pada 'dir1 / myproject', anda boleh mendapatkan perubahan seperti ini dari dalam 'dir2 / myproject':

asal $ git fetch
jarak jauh: Membilang objek: 2, selesai.
jauh: Memampatkan objek: 100% (2/2), selesai.
jauh: Jumlah 2 (delta 0), digunakan semula 0 (delta 0)
Membongkar objek: 100% (2/2), selesai.
Dari / dir2 /… / dir1 / myproject
5a0bd75… 1713734 master -> asal / tuan

Penting untuk diingat bahawa perintah git fetch tidak menggabungkan perubahan. Untuk pengambilan dan penggabungan automatik, gunakan perintah git pull. Maka anda mungkin tertanya-tanya mengapa menggunakan perintah ini sejak awal. Mungkin ada pilihan Git lanjutan di mana anda mendapat semua perubahan dari pelayan asal anda dan kemudian hanya menerapkan perubahan secara terpilih pada fail tertentu. Perintah pengambilan git membolehkan anda mencapainya. Walau bagaimanapun, ini adalah topik lanjutan yang boleh anda temui dalam dokumentasi pengambilan git.

9. git grep

Perintah git grep membolehkan anda mencari maklumat mengenai pokok Git anda. Berikut adalah contoh mencari perkataan 'Line' di git repositori kami. Pilihan -n atau --line-number menunjukkan nombor garis di mana Git menemui padanan:

$ git grep -n Talian
Baca saya.txt: 1: Baris 1: Baris pertama saya
Baca saya.txt: 2: Baris 3: Garis KETIGA saya

Anda boleh menjalankan carian yang serupa untuk berapa kali pertandingan ada dengan pilihan -c atau -count:

git grep -c Line
Baca saya.txt: 2

Sebab penggunaan git grep melalui Linux grep adalah kerana git grep lebih pantas untuk git repositori.

10. log git

Perintah log git menunjukkan sejarah komitmen kepada anda.

$ git log
komited 171373479fc309846ef605fbe650933767afd0fb
Pengarang: Zak H
Tarikh: Rab 21 Nov 20:26:32 2018 -0800
Fail baru ditambah
komited 5a0bd759506d20b2b989873258bf60d003aa3d36
Pengarang: Zak H
Tarikh: Rab 21 Nov 18:48:35 2018 -0800
Permulaan repositori saya

Anda juga dapat menggunakan opsi --online untuk melihat versi yang disingkat. Versi yang disingkat lebih mudah diikuti.

$ git log - talian
1713734 Fail baru ditambahkan
5a0bd75 Memulakan repositori saya

11. git bergabung

Perintah git merge menggabungkan cabang.

Mari buat repositori baru dengan 'utama' dan kemudian buat cabang 'ujian'.

$ mkdir myproject
$ cd myprojek
$ git init
Repositori Git kosong yang dimulakan di / git_essentials / myproject /.git /
$ sentuh ReadMe.txt
$ git tambah -A
$ git komit -m 'Komitmen awal'
[master (root-komit] b31d4e1] Komitmen awal
1 fail diubah, 0 sisipan (+), 0 penghapusan (-)
buat mod 100644 ReadMe.txt
ujian cawangan $ git
cawangan $ git -a
* tuan
ujian
ujian pembayaran $ git
Beralih ke 'ujian' cawangan

Di cabang 'ujian', mari buat beberapa perubahan:

$ sentuh Fail1.txt Fail2.txt
$ Ls
Fail1.txt Fail2.txt BacaMe.txt
$ git tambah -A
$ git commit -m 'Menambah dua fail baru'
[test 7e11910] Menambah dua fail baru
2 fail diubah, 0 sisipan (+), 0 penghapusan (-)
buat mod 100644 Fail1.txt
buat mod 100644 Fail2.txt

Kami telah menambahkan dua fail untuk ujian.

cawangan $ git -a
tuan
* ujian
$ ls
Fail1.txt Fail2.txt BacaMe.txt
$ git master checkout
Beralih ke cawangan 'tuan'
cawangan $ git -a
* tuan
ujian
$ ls
Baca saya.txt

Kami melihat dari atas, bahawa File1.txt dan Fail2.txt wujud di cabang 'test', tetapi tidak di 'master'.

Mari bergabung sekarang.

ujian penggabungan $ git
Mengemas kini b31d4e1… 7e11910
Maju pantas
Fail1.txt | 0
Fail2.txt | 0
2 fail diubah, 0 sisipan (+), 0 penghapusan (-)
buat mod 100644 Fail1.txt
buat mod 100644 Fail2.txt
$ ls
Fail1.txt Fail2.txt BacaMe.txt
cawangan $ git -a
* tuan
ujian

Sekarang kita mempunyai 'File1.txt 'dan' Fail2.txt 'di cawangan' master 'juga.

Catatan: Fikirkan penggabungan sebagai operasi tarik. Anda mesti berada di cawangan yang ingin anda gabungkan. Dalam kes ini, anda berada di cawangan 'master' menarik perubahan dari cabang 'ujian'.

12. git mv

Git mv adalah arahan jalan pintas untuk menjalankan perintah git add dan git rm. Ia boleh digunakan untuk menamakan semula fail.

Berikut adalah contoh:

$ git mv ReadMe.txt BacaMe.md
status $ git
Pada tuan cawangan
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
dinamakan semula: ReadMe.txt -> BacaMe.md

13. tarik git

Perintah tarik git serupa dengan pengambilan git, kecuali penggabungan berlaku secara automatik.

Berikut adalah contoh menjalankan git pull origin seperti git fetch (kami menjalankan permintaan tarik dari klon untuk mendapatkan perubahan dari repositori Git yang asal):

$ git tarik asal
jauh: Membilang objek: 3, selesai.
jauh: Memampatkan objek: 100% (2/2), selesai.
jauh: Jumlah 3 (delta 0), digunakan semula 0 (delta 0)
Membongkar objek: 100% (3/3), selesai.
Dari / LearnGIT / git_essentials / myproject
7e11910… e67f932 master -> asal / induk
Mengemas kini 7e11910… e67f932
Maju pantas
Fail1.txt | 1 +
Fail2.txt | 1 +
Fail3.txt | 1 +
Baca saya.txt => BacaMe.md | 0
4 fail diubah, 3 sisipan (+)
buat mod 100644 Fail3.txt
namakan semula ReadMe.txt => BacaMe.md (100%)

Anda dapat melihat bahawa perubahan telah dimuat turun dari asal dan digabungkan menjadi klon.

14. tolak git

Perintah push git digunakan untuk mendorong perubahan ke repositori jauh. Berikut adalah contoh menjalankan arahan tekan:

$ git push origin master
Membilang objek: 2, selesai.
Pemampatan Delta menggunakan hingga 4 utas.
Memampatkan objek: 100% (2/2), selesai.
Objek penulisan: 100% (2/2), 242 bait | 0 bait, selesai.
Jumlah 2 (delta 1), digunakan semula 0 (delta 0)
Kepada / LearnGIT / git_essentials / myproject
e67f932… 90dc546 master -> master

Perintah master asal git push menghantar perubahan pada cabang 'master' asal (repositori Git yang anda kloning) dari cabang 'master' dari repositori kloning. Secara visual, dorongan kelihatan seperti ini:

kloning / induk -> asal / induk

15. git rebase

Perintah git rebase membantu anda mengubah pangkal cawangan. Dalam penggabungan umum, perkara seperti ini berlaku:

Cabang ujian telah digabungkan menjadi cabang 'master' untuk membuat komit baru.

Secara rebase, inilah yang berlaku:

Perubahan dari senarai perubahan E dan F dikira semula dan disekat di hujung cabang induk. Melancarkan semula membantu mempermudah ranting.

Anggaplah kita mempunyai situasi ini di cabang 'master':

$ git log - talian
7f573d8 Komitmen C: tambah c.txt
795da3c Komitmen B: tambah b.txt
0f4ed5b Komit A: tambah a.txt

Dan cabang ciri:

$ git log - talian
8ed0c4e Komitmen F: diubah suai b.txt
6e12b57 Komitmen E: diubahsuai a.txt
795da3c Komitmen B: tambah b.txt
0f4ed5b Komit A: tambah a.txt

Sekiranya kita rebase, kita akan mendapat master git rebase:

ciri $ git checkout
Beralih ke 'ciri' cawangan
master $ git rebase

Pertama, putar kepala untuk memutar semula karya anda di atasnya…

Mengaplikasi: Komit E: diubahsuai a.txt
Mengaplikasi: Komit F: diubahsuai b.txt
Kemudian gabungkan 'ciri' menjadi 'master'.
$ git master checkout
Beralih ke cawangan 'tuan'
ciri gabungan $ git
Mengemas kini 7f573d8… 9efa1a3
Maju pantas
a.txt | 1 +
b.txt | 1 +
2 fail diubah, 2 sisipan (+)

Sekarang jika anda pergi ke cawangan 'master' dan 'feature', anda akan melihat log yang sama:

$ git log - talian
9efa1a3 Komitmen F: diubah suai b.txt
8710174 Komit E: diubahsuai a.txt
7f573d8 Komitmen C: tambah c.txt
795da3c Komitmen B: tambah b.txt
0f4ed5b Komit A: tambah a.txt

Rebasing telah menyatukan mereka.

Catatan: Jangan sekali-kali menggunakan rebasing di repositori awam kerana pembangun akan menghadapi masalah penggabungan utama.

16. git jauh

Perintah jarak jauh git membolehkan anda menetapkan pelayan jauh untuk repositori anda. Dalam keadaan pengklonan, repositori sumber secara automatik menjadi alat kawalan jauh.

Sebagai contoh:

$ pwd
/ LearnGIT / git_essentials / ujian
$ git jauh -v
asal / LearnGIT / git_essentials / myproject (ambil)
asal / LearnGIT / git_essentials / myproject (tolak)

Di atas menunjukkan bahawa pelayan jarak jauh untuk 'test' adalah folder lain yang disebut 'myproject'. Sebabnya ialah 'ujian' diklon untuk projek saya.

Tetapi pelayan jarak jauh tidak perlu bersifat tempatan. Anda boleh mendapatkan sesuatu seperti ini dengan URL:

$ git jauh -v
asal https: // github.com / zakh / myproject (ambil)
asal https: // github.com / zakh / myproject (tolak)

Anda boleh menyediakan repositori git jauh menggunakan perintah git remote add :

$ git remote add origin https: // github.com / zakh / myprojek

Ini akan menghubungkan repo anda ke asal sehingga anda dapat mengambil dan mendorong.

17. tetapkan semula git

Tetapan semula git membolehkan anda melepaskan fail yang ditambahkan.

Katakan anda menambahkan ujian fail '.txt 'ke repositori anda:

$ sentuhan ujian.txt
$ git tambah -A
status $ git
Pada tuan cawangan
Cawangan anda terkini dengan 'origin / master'.
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
fail baru: ujian.txt

Walau bagaimanapun, anda memutuskan bahawa anda tidak mahu menjejaki ujian.txt 'lagi. Anda boleh menggunakan Head git reset arahan untuk melepaskan fail:

$ git menetapkan semula ujian KEPALA.txt

Sekiranya anda memeriksa statusnya, failnya tidak dilacak lagi:

status $ git
Pada tuan cawangan
Cawangan anda terkini dengan 'origin / master'.
Fail yang tidak dilacak:
(gunakan 'git add ... 'untuk memasukkan apa yang akan dilakukan)
ujian.txt

Ujian fail '.txt 'tidak lagi dijejaki.

18. git membalikkan

Perintah git revert membolehkan anda membalikkan perubahan menggunakan nombor hash komit.

$ echo 'Test 1' >> MyFile.txt
$ git tambah -A
$ git commit -m 'Perubahan Ditambah 1'
[master 78a8277] Menambah Perubahan 1
2 fail diubah, 1 sisipan (+)
buat mod 100644 MyFile.txt
buat ujian mod 100644.txt
$ kucing MyFile.txt
Ujian 1
$ echo 'Test 2' >> MyFile.txt
$ git tambah -A
$ git commit -m 'Perubahan Ditambah 2'
[master a976e9c] Menambah Perubahan 2
1 fail diubah, 1 sisipan (+)
$ kucing MyFile.txt
Ujian 1
Ujian 2
$ git log - talian
a976e9c Menambah Perubahan 2
78a8277 Perubahan Ditambah 1
90dc546 Menambah fail
e67f932 Menambah fail baru
7e11910 Menambah dua fail baru
b31d4e1 Komitmen awal

Kami membuat 'MyFile.txt 'dan melakukan dua perubahan, jadi fail tersebut mempunyai baris' Test 1 'dan' Test 2 '. Tetapi kami memutuskan bahawa kami tidak mahu komit kedua. Oleh itu, kami menemui hash komit (a976e9c) untuknya. Kita boleh menggunakan git revert untuk menghilangkan komit:

$ git mengembalikan a976e9c
[master 4f270e7] Kembalikan 'Perubahan Ditambah 2'
1 fail diubah, 1 penghapusan (-)
$ git log - talian
4f270e7 Kembalikan 'Ditambah Perubahan 2'
a976e9c Menambah Perubahan 2
78a8277 Menambah Perubahan 1
90dc546 Menambah fail
e67f932 Menambah fail baru
7e11910 Menambah dua fail baru
b31d4e1 Komitmen awal
$ kucing MyFile.txt
Ujian 1

Kami melihat bahawa ada hash komit baru yang dibuat yang mengembalikan komitmen baris 'Ujian 2'. Fail hanya mempunyai baris 'Uji 1' sekarang.

19. git rm

Perintah git rm menyediakan fail untuk penghapusan masa depan. Ia meletakkan fail yang akan dihapus di kawasan pementasan.

ujian $ git rm.txt
ujian rm '.txt '
status $ git
Pada tuan cawangan
Cawangan anda mendahului 'origin / master' sebanyak 3 komited.
(gunakan 'git push' untuk menerbitkan komit tempatan anda)
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
dipadam: ujian.txt

Anda mesti melakukan perubahan agar penghapusan itu berlaku.

20. git stash

Perintah git stash membolehkan anda meninggalkan sementara kerja yang belum anda siapkan.
Katakan anda bekerja di repositori dengan fail berikut:

$ ls
John.txt Mary.txt
Anda mahu menukar fail ini agar lebih berasaskan projek. Oleh itu, anda mulakan dengan:
$ git mv John.txt ProjectFile1.txt
$ ls
Maria.txt ProjectFile1.txt
status $ git
Pada tuan cawangan
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
dinamakan semula: John.txt -> ProjectFile1.txt

Di tengah-tengah menamakan semula dan mengemas kini 'John.txt 'ke' ProjectFile1.txt ', anda menerima permintaan untuk menukar sesuatu dalam projek. Tetapi anda tidak bersedia untuk menghantar 'ProjectFile1.txt '. Jadi anda menyimpannya.

$ git simpanan

Direktori kerja yang tersimpan dan keadaan indeks WIP pada master: f0b5a01 Init John and Mary

HEAD kini berada di f0b5a01 Init John and Mary

$ ls
John.txt Mary.txt

Persekitaran kerja tempatan anda kembali ke tempat anda sebelum membuat perubahan berdasarkan projek anda. Setelah itu, mengganggu gangguan, bukannya kembali kepada 'John.txt ', anda memutuskan untuk mengusahakan' Mary.txt 'fail sekarang:

$ git mv Mary.txt ProjectFile2.txt
status $ git
Pada tuan cawangan
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
dinamakan semula: Mary.txt -> ProjectFile2.txt
$ ls
John.txt ProjectFile2.txt

Anda terganggu sekali lagi dan anda menyimpan karya baru anda di 'Mary.txt ':

$ git simpanan
Direktori kerja yang tersimpan dan keadaan indeks WIP pada master: f0b5a01 Init John and Mary
HEAD kini berada di f0b5a01 Init John and Mary
$ ls
John.txt Mary.txt

Setelah kerja gangguan selesai, anda periksa senarai simpanan:

senarai $ git stash
stash @ 0: WIP pada master: f0b5a01 Init John and Mary
stash @ 1: WIP pada master: f0b5a01 Init John and Mary

Anda mempunyai dua kerja dalam proses (WIP) dalam simpanan. Apabila anda muncul, anda akan mendapat 'Mary.perubahan txt:

$ git stash pop
Mengeluarkan Maria.txt
Pada tuan cawangan
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
fail baru: ProjectFile2.txt
Perubahan yang tidak dilakukan untuk melakukan:
(gunakan 'git add / rm ... 'untuk mengemas kini apa yang akan dilakukan)
(gunakan 'git checkout -- ... 'untuk membuang perubahan dalam direktori kerja)
dipadamkan: Mary.txt
Penjatuhan / stash yang dijatuhkan @ 0 (9b77a6b75e4e414fb64de341668c812d3d35150c)

Kali kedua anda mengeluarkan simpanan, anda mendapat 'John.perubahan berkaitan txt:

$ git stash pop
Mengeluarkan John.txt
Pada tuan cawangan
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
fail baru: ProjectFile1.txt
fail baru: ProjectFile2.txt
Perubahan yang tidak dilakukan untuk melakukan:
(gunakan 'git add / rm ... 'untuk mengemas kini apa yang akan dilakukan)
(gunakan 'git checkout -- ... 'untuk membuang perubahan dalam direktori kerja)
dipadamkan: John.txt
dipadamkan: Mary.txt
Penjatuhan / stash yang dijatuhkan @ 0 (1e1968854fb5ca4d609e577822dc3280dbf928f6)
$ ls
ProjekFile1.txt ProjectFile2.txt

Dan anda mempunyai ProjectFile1 kerja anda yang sedang berjalan.txt 'dan' ProjectFile2.txt 'kembali.

Oleh itu, perintah git stash membantu anda menyimpan pekerjaan anda sehingga anda dapat mengembalikannya kemudian.

21. status git

Perintah status git memaparkan perbezaan antara fail semasa dan HEAD komit.

Berikut adalah contoh:

status $ git
Pada tuan cawangan
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
dinamakan semula: Fail2.txt -> Fail3.txt
Perubahan yang tidak dilakukan untuk melakukan:
(gunakan 'git add ... 'untuk mengemas kini apa yang akan dilakukan)
(gunakan 'git checkout -- ... 'untuk membuang perubahan dalam direktori kerja)
diubah suai: Fail1.txt

Ini menunjukkan bahawa 'File2.txt 'dinamakan semula menjadi' File3.txt 'yang siap untuk melakukan, tetapi pengubahsuaian dalam' File1.txt 'belum ada di kawasan pementasan.

Oleh itu, kami menambah semuanya:

$ git tambah -A

Sekarang apabila kita memeriksa status:

status $ git
Pada tuan cawangan
Perubahan yang akan dilakukan:
(gunakan 'git reset HEAD ... 'ke pentas)
diubah suai: Fail1.txt
dinamakan semula: Fail2.txt -> Fail3.txt

Kami melihat semua perubahan sudah siap untuk dilakukan.

22. tag git

Perintah tag git membantu anda membuat tag untuk titik sejarah penting anda. Ia biasanya digunakan untuk menetapkan nombor versi.

Perintah tag git akan menunjukkan tag yang ada sekarang:

tag $ git
v1.0
v2.0

Anda boleh memberi tag dengan format perintah git tag :

$ git tag v3.0

Untuk melihat apa yang ada di dalam tag, anda boleh menggunakan perintah git show:

pertunjukan $ git v1.0
komit 61e9e8aa1b98b2a657303e6822b291d2374314b5
Pengarang: Zak H
Tarikh: Khamis 22 Nov 01:06:42 2018 -0800
Komitmen pertama
diff --git a / 1.txt b / 1.txt
mod fail baru 100644
indeks 0000000… e69de29

Anda juga boleh memberi tag menggunakan komit hash dan tag perintah format git :

$ git log - talian
374efe9 Fail yang diubah suai
a621765 Tambah
6d6ed84 Komitmen kedua
61e9e8a Komitmen pertama
$ git tag v4.0 a621765
pertunjukan $ git v4.0
komited a6217650a2c7b2531ecb9c173ba94bd4b3ba7abd
Pengarang: Zak H
Tarikh: Khamis 22 Nov 01:15:55 2018 -0800
Tambah
diff --git a / 1.txt b / 1.txt
indeks e69de29… 587be6b 100644
--- a / 1.txt
+++ b / 1.txt
@@ -0,0 +1 @@

Kesimpulannya

Untuk sebarang arahan, anda boleh menggunakan git -h untuk mendapatkan lebih banyak maklumat.

Sambung belajar

  • https: // git-scm.com / dokumen
Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...