Git Mulai cepat tentang penggunaan operasi dasar dengan penjelasan

Ini menggambarkan bagian praktis dari masalah penggunaan git - instalasi dan pendaftarannya di server github.com.

Github.com adalah layanan yang menawarkan menyimpan kode dan data Anda menggunakan sistem kontrol versi. Git. GitHub menyediakan rencana tarif gratis untuk menyimpan data 300MB di formulir terbuka. Ini berarti bahwa setiap pengguna internet dapat mengunduh data Anda. Pada github dapat ditempatkan dan ditutup ke repositori lain, membayar $ 7 per bulan. Pada akun GitHub gratis, secara default, tidak ada yang dapat mengubah data Anda (hanya dapat dibaca). Tetapi Anda dapat menuntut siapa dari pengguna sistem github memiliki hak untuk merekam.

Artikel ini menjelaskan secara rinci bagaimana membuat pengaturan git di Windows dan di Linux OS.

Menginstal Git di Linux

Pengguna Linux, saya pikir tidak masuk akal untuk menjelaskan cara memasang git - ini dilakukan dengan cara yang berbeda. Dalam sistem Debian (yang bernilai dengan saya), untuk menginstal Git, Anda dapat menggunakan perintah:

apt-get install git

Menginstal Git di Windows

Kami pergi ke halaman git resmi http://git-scm.com, klik Unduh untuk Windows.. Di jendela yang terbuka, klik Installer penuh untuk git resmi. Jalankan exe-shnik yang diterima.

Dalam proses instalasi, pertanyaan ini akan ditanyakan:

Saya sarankan memilih "menjalankan git dari prompt perintah Windows". Semua opsi lain dapat ditinggalkan secara default. Setelah menginstal git, Anda perlu reboot atau menyelesaikan sesi pengguna dan masuk untuk menggunakan perubahan dalam variabel sistem jalur.

Jika Anda mendapatkan informasi tentang versi, maka Git diinstal dan dijalankan. Jika kita mendapatkan informasi bahwa program GIT tidak ditemukan, kita mengerti apa yang mereka lakukan salah.

Setup kunci ssh.

Sebelum mendaftar dengan GitHub, Anda harus terlebih dahulu menghasilkan enkripsi kunci SSH. Kunci ini diperlukan untuk dengan cepat menginstal koneksi dengan GitHub, tanpa memasukkan kata sandi. Tanpa kunci GitHub seperti itu, itu tidak akan mudah digunakan.

Perhatian!

Pada saat generasi kunci, kata sandi akan diminta. Kata sandi ini akses ke tombol tertutup, yang hanya disimpan di mobil Anda dan di tempat lain. Kata sandi ini diatur untuk sekuritas maksimum, meskipun Anda dapat melakukannya tanpa itu. Anda perlu tahu bahwa dengan mengatur kata sandi ke kunci pribadi, Anda harus memasukkan kata sandi ini dengan setiap server github. Dengan demikian, ketika menentukan kata sandi, semua kenyamanan menggunakan kunci enkripsi menghilang.

Pengguna Mytetra: Antarmuka bekerja dengan baris perintah, yang digunakan untuk memanggil git selama sinkronisasi, tidak dapat bekerja pada memasukkan karakter. Karena itu, jika Anda menentukan kata sandi, sinkronisasi tidak akan berfungsi.

Menyiapkan tombol SSH di Linux

Dalam sistem operasi Linux, pertama-tama perlu melihat direktori ~ / .ssh. Jika ada file ID_RSA dan ID_RSA.pub, maka ini adalah tombol SSH. Jika tidak ada direktori atau file tersebut, maka tombol harus dihasilkan. Biarkan tim:

Sebagai gantinya [Dilindungi Email] Anda perlu menentukan email Anda. Dalam proses generasi kunci, Anda akan bertanya di mana harus meletakkan file, cukup tekan enter. Saat meminta kata sandi Cukup tekan ENTER. Setelah generasi, file ID_RSA dan ID_RSA.pub akan muncul di direktori ~ / .ssh, mereka akan cocok untuk kami nanti.

Mengkonfigurasi tombol SSH di Windows

Dalam sistem operasi Windows, generator kunci SSH termasuk dalam paket git. Untuk menghasilkan kunci, Anda harus menjalankan untuk menjalankan file C: \\ Program Files \\ Git \\ Git Bash.vbs. Itu dapat diluncurkan sebagai exe-shnik biasa. Program konsol GIT terbuka. Itu harus diberikan tim:

ssh-keygen -t RSA -C " [Dilindungi Email]"

Hati-hati, di konsol ini, masa lalu COP akan memperhatikan, cukup masukkan perintah secara manual. Sebagai email, tentukan kotak surat Anda. Dalam permintaan " Masukkan file di mana untuk menyimpan kunci"Cukup tekan enter. Saat meminta kata sandi" Masukkan Passphrase "dan" Masukkan frasa sandi yang sama lagi "cukup tekan enter. Dalam proses menghasilkan tombol di konsol, kira-kira informasi berikut akan dikeluarkan:

Membuat pasangan kunci RSA publik / pribadi.
Masukkan file di mana untuk menyimpan tombol (/ c / dokumen dan pengaturan / nama pengguna / .ssh / id_rsa)
Masukkan frasa sandi (kosongkan tanpa frasa sandi):
Masukkan frasa sandi yang sama lagi:
Identifikasi Anda telah disimpan dalam / c / dokumen dan pengaturan / nama pengguna / .SSH / ID_RSA.
Kunci publik Anda telah disimpan dalam / c / dokumen dan pengaturan / nama pengguna / .ssh / id_rsa.pub.
Sidik jari utama adalah:
51: db: 73: 31: 31: 9F: 51: A6: 7A: C5: 3D: DA: 9C: 35: 8F: 95 [Dilindungi Email]

Setelah melakukan program ini, dalam katalog C: \\ Documents and Settings \\ username \\ .ssh File ID_RSA dan ID_RSA.pub akan berada, mereka akan berguna bagi kami nanti.

Pendaftaran di Github.com.

Sekarang semuanya siap untuk pendaftaran. Buka halaman awal github.com. Antarmukannya agak bingung, jadi saya akan memberikan sepasang tangkapan layar tempat apa yang ditekan. Desain dan tata letak dapat diubah kapan saja, jadi saya menggambarkan logika tindakan saat ini.

Di menu atas menemukan item " Harga dan pendaftaran."Dan klik itu:

Halaman pemilihan rencana tarif terbuka. Pilih Akun Gratis " BUAT AKUN GRATIS":

Menginstal kunci SSH di GitHub

Segera setelah pendaftaran, perlu untuk mendaftarkan kunci enkripsi kunci publiknya dalam sistem Guthub (tombol SSH terbuka). Untuk menambahkan kunci, Anda perlu mengklik di sudut kanan atas. " Pengaturan akun":

Di jendela yang terbuka, Anda perlu mengklik item menu " Kunci publik ssh.", Dan klik" Tambahkan kunci publik lain". Dua bidang akan muncul - nama kunci ( Judul) dan konten utama ( Kunci).

Di bidang Judul Anda dapat menulis nama komputer tempat kunci publik dihasilkan. Anda dapat menulis dalam bahasa Rusia.

Di bidang Kunci Anda perlu memasukkan konten file ID_RSA.pub. Ingat, di katalog mana mereka? Buka direktori ini, buka oleh editor teks apa pun id_rsa.pub (dengan ekstensi .pub, jangan bingung). Kami menyoroti semua teks, salin, dan masukkan pada halaman github di lapangan Kunci.

Setelah menambahkan kunci, komputer dapat terhubung ke GitHub melalui program GIT, dan tidak ada kesalahan yang harus terjadi.

Membuat repositori di GitHub

Sekarang saatnya membuat repositori pertama Anda di GitHub. Repositori dapat dilihat hanya sebagai direktori di mana file yang disinkronkan dan subdirektori akan berbohong. Anda perlu membuat repositori di Antarmuka Web GitHub, dan Anda sudah dapat mengisinya dengan file dan bekerja dengannya menggunakan program GIT di komputer Anda.

Untuk membuat repositori, Anda perlu mengklik di sudut kanan atas " Dasbor.". Di jendela yang terbuka, Anda akan melihat item" Buat repositori.":

Jadi, kita tidak perlu item ini! Item ini membuka dialog pembuatan repositori, dan halaman bantuan. Alih-alih mengklik item ini, kami mencari di bawah pada halaman untuk tautan yang tidak mungkin " Buat repositori.". Dia juga akan membuka dialog untuk menambahkan repositori baru.

Dalam menambahkan dialog repositori baru, Anda perlu mengisi setidaknya bidang nama proyek " Nama Proyek.". Dalam nama proyek, lebih baik tidak menggunakan Cyrillic, karena nama proyek adalah nama direktori. Untuk menghindari masalah, nama proyek hanya berisi Latin. Setelah menekan tombol" Buat repositori.", repositori akan dibuat.

Referensi operasi ke repositori dalam sistem GitHub terbentuk demikian. Jika Anda telah mendaftar di bawah nama pengguna, dan repositori Anda disebut Reponame, maka Anda dapat menggunakan tautan berikut untuk mengakses repositori ini:

Dalam sintaks git:

[Dilindungi Email]: nama pengguna / reponame.git

Dalam sintaks HTTPS:

https: // [Dilindungi Email]/Username/reponame.git.

Bekerja dengan repositori di GitHub melalui program GIT

Mulai sekarang, tarian di sekitar antarmuka web GitHub dapat dianggap lengkap. Selanjutnya, Anda hanya dapat bekerja menggunakan program GIT.

Pada awalnya, Anda perlu membuat pengaturan kecil dari program GIT: Tentukan sistem git lokal dari pengguna dan email. Ini dilakukan dengan perintah-perintah berikut yang dapat dilakukan saat dalam direktori apa pun:

git config - global user.name "yourfullname"
Git config - global user.email [Dilindungi Email]

di mana alih-alih nama Anda yang Anda butuhkan untuk menulis nama Anda, dan sebagai gantinya [Dilindungi Email] - email mu. Nilai-nilai ini digunakan untuk login pada github. Oleh karena itu, Anda perlu menentukan login Anda pada github - di tempat [Dilindungi Email] Anda perlu menentukan email yang Anda masukkan saat menghasilkan kunci enkripsi.

Setelah pengaturan ini, Anda dapat menuangkan file ke repositori. Pergi ke katalog dengan proyek Anda, dan beri tim:

git commit -a -m "komit pertama"

git Remote Add Origin [Dilindungi Email]: nama pengguna / reponame.git

git push -u asal master

Setelah perintah-perintah ini, salinan file direktori dibentuk pada server GitHub, di mana data perintah dilakukan. Selanjutnya, Anda sudah dapat melakukan komitmen, mengisi perubahan server GitHub, membaca perubahan dari server. Tapi ini cerita yang sama sekali berbeda.

Untuk orang-orang, secara alami menolak perubahan. Jika Git tidak bertemu dengan Anda ketika Anda mulai bekerja dengan versi sistem kontrol, Anda mungkin merasa lebih nyaman di Subversion System (SVN).

Seringkali orang mengatakan bahwa Git terlalu rumit untuk pemula. Namun demikian, saya akan membiarkan diri saya tidak setuju dengan itu.

Dalam pelajaran ini, saya akan memberi tahu Anda cara menggunakan git dalam proyek Anda. Misalkan Anda membuat proyek dari awal dan ingin mengelolanya menggunakan git. Setelah berjalan pada daftar perintah utama, Anda akan mendapatkan gambaran tentang cara menempatkan kode Anda di cloud oleh GitHub.

Pada artikel ini kita akan berbicara tentang dasar-dasar git - bagaimana cara menginisialisasi proyek Anda, bagaimana mengelola file baru dan yang sudah ada, dan bagaimana cara menyimpan kode Anda di cloud.

Kami tidak akan menyentuh bagian git yang relatif kompleks, seperti bercabang, karena pelajaran ini dirancang untuk pemula.

Menginstal Git.

Di situs resmi git adalah informasi rincipada instalasinya di Linux, Mac dan Windows. Dalam kasus kami, kami akan menggunakan untuk menunjukkan Ubuntu 13.04 untuk menginstal git menggunakan apt-get:

sudo apt-get install git

Pengaturan awal

Mari kita buat direktori di mana kita akan bekerja. Atau, Anda dapat menggunakan Git untuk mengelola salah satu proyek yang ada; Dalam hal ini, Anda tidak perlu membuat direktori demo seperti yang ditunjukkan di bawah ini:

mkdir my_git_project cd my_git_project

Langkah pertama adalah inisialisasi git dalam direktori. Ini dapat dilakukan dengan menggunakan perintah init, yang membuat direktori .git yang berisi semua informasi yang terkait dengan git untuk proyek Anda.

config git --global user.name "shaumik" git config --global user.email " [Dilindungi Email]"Git config --global color.ui" otomatis "

Penting untuk dicatat bahwa jika Anda tidak menentukan nama dan alamat email Anda, nilai default akan digunakan. Dalam kasus kami, nilai default adalah nama pengguna donny dan alamat email [Dilindungi Email].

Selain itu, kami menetapkan nilai otomatis untuk warna antarmuka pengguna, sehingga output dari perintah git akan memiliki lampu latar.

Diperlukan awalan -global untuk tidak memasukkan pengaturan pengaturan ini saat berikutnya kami meluncurkan proyek GIT di sistem kami.

Menyiapkan file untuk komit

Langkah selanjutnya adalah membuat file dalam direktori. Anda dapat menggunakan, misalnya, editor teks VIM. Perhatikan bahwa jika Anda akan menambahkan git ke direktori yang ada, Anda tidak perlu melakukan langkah ini:

Periksa status repositori

Sekarang kami memiliki beberapa file di repositori kami, mari kita lihat bagaimana git beralih ke mereka. Untuk memeriksa status repositori saat ini, Anda perlu menggunakan perintah status git:

Menambahkan file ke git untuk melacak

Saat ini kami tidak memiliki file untuk dilacak menggunakan Git. Kita perlu menambahkan file secara khusus pada git untuk menentukan git yang perlu Anda lacak.

Tambahkan file dengan perintah add:

Setelah memeriksa keadaan repositori, kami akan melihat bahwa satu file ditambahkan:

Untuk menambahkan beberapa file, Anda dapat menggunakan entri perintah berikut (perhatikan bahwa kami telah menambahkan file lain untuk demonstrasi):

git tambahkan myfile2 myfile3

Anda dapat menggunakan git menambahkan secara rekursif, tetapi hati-hati dengan perintah ini. Ada file tertentu (misalnya, file yang dikompilasi), yang biasanya disimpan di luar repositori git.

Jika Anda menggunakan perintah add secara rekursif, itu akan menambah semua file tersebut jika ada di repositori Anda.

Menghapus file

Tetapi eksekusi perintah git RM sederhana akan menghapus file tidak hanya dari git, tetapi juga dari sistem file lokal Anda! Untuk

Git berhenti melacak file, tetapi file itu sendiri dilestarikan pada sistem lokal Anda, jalankan perintah berikut:

git rm --cached.

Melakukan perubahan

Setelah Anda menempatkan file Anda, Anda dapat mematuhi mereka untuk Git. Bayangkan bahwa komit adalah menangkap titik tertentu yang dapat Anda ikuti untuk mengakses repositori Anda pada tahap ini.

Anda dapat mengikat setiap panitia pesan yang ditambahkan menggunakan awalan -m:

git komit -m "komit pertama saya"

Mempromosikan dengan pesan-pesan yang berguna, karena akan membantu Anda menentukan apa yang telah Anda ubah di com ini.

Hindari pesan yang terlalu umum seperti " Memperbaiki bug" Jika Anda memiliki pelacak tugas, Anda dapat menambahkan pesan dalam bentuk " Memperbaiki bug # 234».

Praktik yang baik adalah dengan menggunakan nama cabang atau nama fungsi sebagai awalan untuk laporan komit. Sebagai contoh, " Manajemen Aset: Fungsi tambahan untuk menghasilkan file aset PDF"Adalah pesan yang bermakna.

Git mengidentifikasi berkomitmen dengan menambahkan nomor heksadesimal panjang untuk setiap komit. Sebagai aturan, Anda tidak perlu menyalin seluruh string, untuk menentukan komit Anda cukup 5-6 karakter pertama.

Harap dicatat bahwa dalam tangkapan layar, komit pertama kami ditentukan oleh kode 8DD76FC.

Komiton lebih lanjut

Sekarang mari kita ubah beberapa file setelah komit pertama kami. Setelah perubahan mereka, kita akan melihat bahwa sebagai hasil dari eksekusi perintah git status git, saya menemukan perubahan dalam file yang dilacak:

Anda dapat memeriksa perubahan dalam file pelacakan yang dibuat dalam komentar terakhir menggunakan perintah git diff. Jika Anda ingin melihat perubahan dalam file tertentu, gunakan perintah git diff :

Anda perlu menambahkan file-file ini lagi untuk membuat perubahan dalam melacak file untuk komit berikutnya. Anda dapat menambahkan semua file yang dipantau dengan menjalankan perintah:

Anda dapat menghindari menggunakan perintah ini menggunakan awalan -a untuk perintah git commit, yang akan menambahkan semua perubahan untuk melacak file.

Namun, proses ini sangat berbahaya, karena dapat merusak proyek. Misalnya, katakanlah Anda membuka file dan mengubahnya secara tidak sengaja.

Jika Anda secara selektif menempatkan file, maka perhatikan perubahan masing-masing file. Tetapi jika Anda menambahkan awalan -a untuk komit Anda, semua file akan dinyatakan, dan Anda tidak akan dapat mengidentifikasi kemungkinan kesalahan.

Setelah Anda memposting file Anda, Anda dapat melanjutkan ke komit. Saya menyebutkan bahwa pesan yang kami perkenalkan menggunakan awalan -m dapat dikaitkan dengan setiap komite.

Namun, dimungkinkan untuk memasukkan pesan dalam beberapa baris dengan menggunakan perintah git commit, yang membuka formulir interaktif untuk merekam:

Manajemen proyek

Untuk melihat riwayat proyek Anda, Anda dapat menjalankan perintah berikut:

Jadi seluruh sejarah proyek akan ditampilkan, yang merupakan daftar semua komit dan informasi tentang mereka. Informasi tentang komit tersebut termasuk kode komit Kesh, penulis, waktu dan pergantian. Ada berbagai opsi untuk log git, yang dapat Anda jelajahi segera setelah menimbang konsep cabang (cabang) di Git.

Untuk melihat informasi terperinci tentang perdagangan dan file tertentu yang telah diubah, jalankan perintah berikut:

pertunjukan git.

dimana Ini adalah jumlah heksadesimal yang terkait dengan komit. Karena pelajaran ini dirancang untuk pendatang baru, kami tidak akan mempertimbangkan cara kembali ke keadaan komitmen tertentu atau bagaimana mengendalikan cabang.

Penempatan kode di cloud

Sekarang Anda belajar bagaimana mengelola kode pada sistem Anda, inilah saatnya untuk menempatkan kode di cloud.

Github adalah platform yang sangat terkenal untuk menyimpan, mendistribusikan dan mengelola kode sumber proyek terbuka. Layanan ini menggunakan banyak pengembang di seluruh dunia, di antaranya ada perusahaan besar, seperti Microsoft, RedHat dan banyak lainnya, juga ratusan pengembang banyak proyek populer.

Platform memberikan peluang tidak hanya untuk melihat kode dan distribusinya, tetapi juga sejarah versi, alat pengembangan bersama, alat untuk memberikan dokumentasi, rilis, dan umpan balik. Dan hal paling menarik yang dapat Anda letakkan di gihub proyek terbuka dan pribadi. Pada artikel ini, kita akan melihat cara menggunakan Github untuk mengakomodasi proyek Anda. Jadi untuk berbicara, GitHub untuk pemula.

Jadi, katakanlah, Anda memiliki proyek sendiri dan Anda ingin menempatkan kodenya di GitHub di akses publik ke pengguna lain dapat melihatnya dan berpartisipasi dalam pengembangan. Hal pertama yang perlu Anda lakukan adalah membuat akun.

1. Membuat Akun

Untuk membuat akun baru di situs, buka halaman utama GitHub dan segera Anda dapat segera memasukkan data untuk akun baru. Anda perlu menentukan nama pengguna, email, dan kata sandi:

Saat menyelesaikan entri, klik "Daftar Gratis":

Pada langkah selanjutnya Anda harus memilih jenis repositori. Repositori publik gratis, tetapi jika Anda ingin membuat repositori pribadi, kode dari mana hanya akan tersedia untuk Anda, Anda harus membayar $ 7 per bulan.

Akun sudah siap, dan Anda akan diarahkan ke halaman tempat Anda dapat membuat proyek pertama Anda. Tetapi sebelum Anda dapat melakukannya, Anda perlu mengkonfirmasi alamat email Anda. Untuk melakukan ini, buka kotak surat Anda dan ikuti tautan dalam huruf dari GitHub.

Tidak diperlukan pengaturan github, hanya beberapa klik dengan mouse.

2. Membuat repositori

Pada halaman yang terbuka, ini adalah halaman utama untuk pengguna yang berwenang, klik "Mulai proyek":

Anda dapat segera menginisialisasi repositori dengan membuat file readme, untuk ini Anda perlu menyebutkan tanda centang "Inisialisasi repositori ini dengan README" di bagian bawah halaman. Anda juga dapat memilih lisensi:

Ketika semuanya siap, pilih "Buat Proyek"Sebuah proyek baru akan dibuat dengan file readme, yang berisi deskripsi dan file lisensi.


3. Menambahkan cabang

Cabang GitHub memungkinkan Anda bekerja dengan beberapa versi proyek secara bersamaan. Secara default, saat membuat repositori, Cabang Master dibuat, ini adalah cabang kerja utama. Anda dapat membuat cabang tambahan, misalnya, untuk menguji perangkat lunak sebelum dipublikasikan di Branch Master. Dengan demikian, Anda dapat secara bersamaan mengembangkan suatu produk dan memberi pengguna versi yang stabil. Anda juga dapat membuat cabang individu untuk versi program untuk sistem yang berbeda.

Cabang saat ini ditunjukkan di sudut kiri atas setelah kata "Cabang".Untuk membuat cabang baru cukup gunakan daftar ini dan mulai mengetikkan namanya:

Situs ini akan menyarankan Anda untuk membuat cabang baru, pilih "Buat cabang".

Segera setelah kreasi, Anda akan bekerja dengan baru dibuat oleh cabang.

4. Ubah file dan komitmen

Setiap perubahan pada file GitHub dibuat menggunakan komitmen. Komit dilakukan dengan membuat koreksi sendiri dan menggambarkan koreksi ini. Ini diperlukan agar Anda tahu itu dan ketika Anda berubah, dan juga memudahkan untuk melacak pekerjaan tim. Kata commote dapat diterjemahkan sebagai "perbaikan". Artinya, kita dapat membuat perubahan pada beberapa file, dan kemudian memperbaikinya. Mari kita ubah file readme untuk contohnya. Untuk melakukan ini, temukan tombol dengan rumbai di sisi kanan panel dan klik:

Editor teks akan terbuka, di mana Anda dapat memasukkan kebenaran yang Anda butuhkan:

Setelah Anda melakukan semua yang Anda butuhkan, Anda perlu mengisi bidang "MELAKUKAN" di bagian bawah halaman. Jelaskan secara singkat apa yang telah diubah, dan kemudian klik "Komit Perubahan":

Perubahan ini akan dimasukkan ke dalam cabang proyek saat ini, karena kami sekarang bekerja dengan pengujian, maka perubahan akan dikirim ke sana.

5. Menciptakan kueri merger (permintaan tarik)

GitHub untuk pemula mungkin tampak sangat sulit karena fitur-fitur seperti itu, tetapi sangat nyaman jika Anda mengetahuinya. Permintaan Confluence atau permintaan tarik adalah kesempatan, terima kasih untuk mana pengembang mana pun dapat meminta yang lain, misalnya, pencipta repositori untuk melihat kodenya dan menambahkannya ke proyek atau cabang utama. Alat kerja dengan permintaan fusi menggunakan alat perbandingan diff, sehingga Anda dapat melihat semua perubahan, mereka akan ditekankan dengan warna lain. Permintaan tarik dapat dibuat segera setelah membuat komit. Mari kita kirim permintaan tarik dari cabang pengujian kami ke yang utama. Pertama, buka tab "Permintaan Tarik".

Di sini, klik "Buat Permintaan Tarik":

Di jendela ini Anda dapat melihat semua perubahan, sekarang kita melihat garis:

6. Lihat dan setujui permintaan fusi

Sekarang, pada tab Permintaan Tarik yang sama, kami baru saja membuat permintaan untuk merger dan kami hanya dapat menggunakannya dengan mengklik "Merge Pull Request":

Tetapi jika permintaan ini berasal dari orang lain, Anda harus memeriksa apakah dia berubah di sana dan apakah perlu melakukan ini untuk ini, klik pada deskripsi kueri dan Anda akan melihat jendela View Change:

Kode kemudian akan diimpor ke cabang utama, dan cabang pengujian dapat dihapus dengan aman.

7. Laporan Kesalahan

Juga nyaman bahwa dimungkinkan untuk menggunakan GitHub tidak hanya untuk mengembangkan dan mengelola kode, tetapi juga untuk umpan balik dari pengguna. Di tab "Isu" Pengguna dapat meninggalkan pesan tentang masalah yang mereka temui saat menggunakan produk Anda. Buka Tab. "Masalah"dan klik tombol "Masalah Baru":

8. Rilis

Yang terakhir yang akan kita pertimbangkan hari ini adalah rilis. Ketika produk telah mencapai tahap tertentu, Anda dapat merilis rilis ke pengguna dan Anda dapat yakin bahwa semuanya stabil di sana dan tidak ada yang merusak kesalahan tarik salah di Guru. Pertama, Anda harus pergi ke halaman proyek utama, lalu pada tab "Rilis":

Pada halaman ini Anda perlu menentukan versi di bidang. "Versi tag", kemudian nama rilis dan deskripsi kecil. Jika Anda telah mengkompilasi arsip dengan biner, maka mereka juga perlu melampirkan di sini. Lalu klik "Buat Rilis":

Setelah membuat rilis, halaman seperti itu akan dibuat:

kesimpulan.

Pada artikel ini, kami meninjau cara menggunakan GitHub untuk mengakomodasi dan mengelola proyek kami. Seluruh sistem dalam bahasa Inggris, sehingga pengetahuan dasar bahasa ini sangat diinginkan tetapi bahkan tanpa mereka bekerja dengan GitHub tidak akan sangat sulit. Saya harap informasi ini bermanfaat bagi Anda. Jika Anda tertarik pada cara bekerja dengan git dari baris perintah, lihat artikel untuk pemula.

Pengantar terperinci untuk bekerja dengan git

Apa itu Git dan mengapa dia aku?

Git adalah sistem kontrol versi terdistribusi yang memungkinkan Anda untuk menyimpan semua perubahan yang dimasukkan dalam file yang disimpan di repositori. Perubahan disimpan dalam bentuk snapshots, yang disebut komit yang dapat ditempatkan di banyak server. Pertimbangkan cloud standar ini untuk cadangan pada steroid - Anda tidak hanya dapat mengembalikan kode jika terjadi kegagalan, tetapi juga untuk memutar kembali kode ke salah satu negara yang disimpan sebelumnya. Anda juga dapat dengan mudah berinteraksi dengan pengembang lain - sekali lagi, karena beberapa orang dapat bekerja pada satu file di Google Documents dan pengembang dapat secara bersamaan bekerja pada satu repositori dan mempertahankan perubahan mereka.

Mengingat semua kelebihannya, GIT adalah alat yang sangat diperlukan untuk semua orang yang melakukan atau akan berkembang. Pada artikel ini kita akan melihat perintah git yang paling berguna dan situasi ketika mereka layak digunakan. Ini juga akan membantu menyegarkan pengetahuan mereka jika Anda sudah terbiasa dengan Git.

Cara bekerja dengan git

Banyak perintah tersedia di Git, jadi berguna untuk membaginya pada subjek / alasan untuk digunakan. Pertama, kita akan melihat bekerja dengan git pada mesin lokal, karena sebagian besar operasi terjadi persis di sana, dan kemudian mari kita beralih ke format multipemain.

Dengan Git, Anda dapat bekerja melalui baris perintah, dan melalui antarmuka grafis seperti GitHub Desktop. Meskipun pengembang beginer baris perintah dapat menakut-nakuti, masih lebih baik untuk belajar, karena memberikan lebih banyak peluang daripada banyak alat dengan antarmuka.

Sebagai aturan, tim git mengambil tipe git<команда> <аргументы> di mana argumen dapat menjadi jalur ke file. Tim juga bisa menjadi opsi yang ditunjukkan sebagai -<опция> atau -<однобуквенная опция> . Mereka memungkinkan Anda untuk mengkonfigurasi tindakan perintah secara lebih rinci. Dalam artikel ini, tim akan disajikan secara umum, jadi semuanya ada di<> Anda perlu mengganti arti Anda sendiri.

Jika Anda tidak tahu cara menggunakan perintah, Anda dapat membuka panduan menggunakan Bantuan Git<команда> , dan jika Anda hanya perlu pengingat, gunakan git<команда> -h atau git.<команда> --Help (--Help dan -h setara dengan).

Menyiapkan git.

Menginstal Git.

Pengguna Windows dapat mengunduhnya dari sini.

MacOS (OS X) Git hadir sebagai bagian dari alat baris perintah XCODE, jadi Anda perlu menginstalnya. Untuk memeriksa ketersediaan git, buka terminal dan masukkan GIT --version untuk memeriksa versi.

Jika Anda menggunakan Linux, maka gunakan sudo apt install git-all command atau sudo dnf install git-all (berdasarkan RPM).

Mengkonfigurasi file konfigurasi

Hal pertama yang perlu Anda lakukan setelah menginstal git adalah mengkonfigurasi nama pengguna dan email, karena mereka digunakan untuk mengidentifikasi dan disimpan dalam semua gambar yang telah Anda ambil. Pengaturan ini disimpan dalam file konfigurasi dengan semua sisanya.

Anda dapat langsung mengedit file.gitconfig menggunakan editor teks, atau menggunakan perintah git config --global --edit, dan Anda dapat mengedit bidang yang terpisah menggunakan perintah git config --glob<поле> <значение> - Kami tertarik pada pengguna.name dan user.email bidang.

Anda juga dapat mengonfigurasi editor teks untuk menulis pesan komit menggunakan bidang inti.editor. Awalnya menggunakan editor sistem default, misalnya, VI untuk Linux / Mac. Bidang komit.Template memungkinkan Anda untuk menentukan template yang akan digunakan di setiap com.

Ada banyak bidang lain, tetapi salah satu yang paling berguna adalah alias, yang mengikat tim ke nama samaran. Misalnya, git config --global alias.t "status -s" memungkinkan Anda menggunakan git st daripada status git -s

Perintah git config --list akan menampilkan semua bidang dan nilai-nilai mereka dari file konfigurasi.

Buat Repositori Git

Untuk menginisialisasi repositori baru. Perintah git init dapat digunakan atau jika Anda ingin menyalin klon yang ada, git<адрес репозитория> .

Sejarah yang dilakukan di Git

Git menyimpan data dalam bentuk serangkaian "snapshot" yang dikenal sebagai komit. Mereka menyimpan status sistem file pada titik waktu tertentu, serta pointer ke commit (s) sebelumnya. Setiap komite berisi checksum unik - pengidentifikasi yang digunakan Git untuk merujuk pada komit tersebut. Untuk melacak cerita, Git menyimpan pointer kepala, yang menunjukkan komit pertama (kami mengikuti rantai komit dalam urutan terbalik untuk sampai ke komersial sebelumnya).

Kita dapat merujuk pada komit itu melalui checksumnya, atau melalui posisinya relatif terhadap kepala, misalnya, kepala ~ 4 mengacu pada komit, yaitu 4 berkomitmen lebih awal dari kepala.

Sistem file git.

Git melacak file dalam tiga bagian utama:

  • direktori kerja (sistem file komputer Anda);
  • area file yang disiapkan (area pementasan menyimpan konten komit berikutnya);
  • Kepala (komit terakhir di repositori).

Semua file utama untuk bekerja dengan file dikurangi menjadi pemahaman bagaimana git mengontrol tiga bagian ini. Ada kesalahpahaman umum bahwa area file yang disiapkan hanya menyimpan perubahan. Lebih baik memikirkan tiga bagian ini sebagai sistem file terpisah, masing-masing berisi salinan file.

Lihat perubahan dalam sistem file

Perintah status GIT menampilkan semua file yang berbeda antara tiga bagian. File memiliki 4 negara:

  1. Unteracted (tidak terlacak) - ada di direktori kerja, tetapi tidak ada versi di kepala atau di bidang file yang disiapkan (git tidak tahu tentang file).
  2. Diubah (dimodifikasi) - ada versi yang lebih baru di direktori kerja dibandingkan dengan kepala yang disimpan atau di bidang file yang disiapkan (perubahan tidak ada di com berikutnya.
  3. Disiapkan (dipentaskan) - Ada versi yang lebih baru di direktori kerja dan area file yang disiapkan dibandingkan dengan kepala (siap untuk komit).
  4. Tanpa perubahan - satu versi file di semua bagian, I.E., di common terakhir berisi versi saat ini.

Catatan File ini dapat secara bersamaan "berubah" dan "disiapkan" jika versi di direktori kerja lebih baru daripada di bidang file yang disiapkan, yang pada gilirannya adalah versi yang lebih baru di kepala.

Kita dapat menggunakan opsi -s untuk perintah status git untuk mendapatkan output yang lebih ringkas (pada baris ke file). Jika file tidak dilacak, maka akan ditampilkan ?? ; Jika dia diubah, namanya akan merah, dan jika disiapkan - hijau.

Untuk melihat perubahan itu sendiri, dan tidak mengubah file, Anda dapat menggunakan perintah berikut:

  • git diff - Perbandingan direktori kerja dengan area file yang disiapkan;
  • git diff - bertengkar - Perbandingan area file yang disiapkan dengan kepala.

Jika Anda menggunakan argumen<файл/папка> , Diff akan menunjukkan perubahan hanya untuk file / folder yang ditentukan, seperti Git Diff SRC /.

Pembaruan sistem file

Tim Git Add.<файл/папка> Memperbarui area file file / folder yang diajukan dari direktori kerja.

Git Cit Command memperbarui kepala dengan komit baru, yang mengambil gambar file di area file yang disiapkan.

Git reset action perintah<коммит> Terdiri dari tiga langkah potensial:

  1. Pindahkan pointer kepala ke<коммит> (Misalnya, ketika rollback bersaing di direktori kerja dan area file yang disiapkan akan menjadi versi file baru daripada di kepala). Juga, pointer kepala cabang akan dipindahkan ke komit ini.
  2. Perbarui area file yang disiapkan oleh konten komit. Dalam hal ini, hanya direktori kerja yang akan menjadi versi file terbaru.
  3. Perbarui konten direktori kerja dari area file yang disiapkan. Anda harus berhati-hati tentang ini, karena perubahan file pada akhirnya akan dihancurkan.

Secara default, perintah RESET GIT hanya melakukan langkah-langkah 1 dan 2, tetapi perilakunya dapat diubah menggunakan opsi --Soft (hanya 1 langkah) dan --Hard (semua langkah).

Jika Anda mengirim path ke file / folder, perintah akan dilakukan hanya untuk mereka, misalnya git reset - headsoft head ~ 1 src /.

Kepala Checkout Tim Git<файл> mengarah pada hasil yang sama dengan git reset - kepala<файл> - Menimpalkan versi file di bidang file yang disiapkan dan di direktori kerja versi kepala, yaitu, membatalkan perubahan setelah komit terakhir.

Di sisi lain, git checkout<файл> (sudah tanpa kepala) menimpa versi file di direktori kerja versi di bidang file yang disiapkan, yaitu, membatalkan perubahan sejak versi yang disiapkan terakhir.

Akhirnya Git RM.<файл> Membatalkan pelacakan file dan menghapusnya dari direktori kerja, opsi --Cached akan menyimpan file.

Mengabaikan file

Seringkali, kita tidak perlu git untuk melacak semua file di repositori, karena nomor mereka mungkin termasuk:

  • file dengan informasi sensitif seperti kata sandi;
  • file biner besar;
  • file perakitan yang dihasilkan setelah setiap kompilasi;
  • file OS / IDE, misalnya, .S_store. Untuk MacOS atau .ml. Untuk Ide IntelliJ - Kami membutuhkan repositori agar bergantung sekecil mungkin dari sistem.

Untuk mengabaikan file.gitignore. Untuk menandai file yang ingin kami abaikan, Anda dapat menggunakan pola pencarian (pertimbangkan mereka ekspresi reguler yang disederhanakan):

  • / ___ - menghindari rekursivitas - memenuhi file hanya di direktori saat ini;
  • __ / - memenuhi semua file di direktori yang ditentukan;
  • * ___ - memenuhi semua file dengan akhir yang ditentukan;
  • ! - Mengabaikan file yang jatuh di bawah pola yang ditentukan;
  • [__] - sesuai dengan karakter apa pun dari yang ditentukan dalam tanda kurung;
  • ? - sesuai dengan simbol apa pun;
  • / ** / - Sesuai dengan direktori bersarang, misalnya, A / ** / D sesuai dengan A / D, A / B / D, A / B / C / D, dll., Dan seterusnya.

Kami bahkan dapat menggunakan pola pencarian saat menentukan file / folder dalam perintah lain. Misalnya, Git tambahkan SRC / *. CSS akan menambahkan semua file. CSS di folder SRC.

Komisi

Karena komitanya adalah dasar dari sejarah versi, tidak akan berlebihan untuk mempelajari sedikit lebih banyak.

Perintah Git Commit akan membuka editor teks untuk memasukkan pesan komit. Juga, tim ini mengambil beberapa argumen umum:

  • -M Memungkinkan Anda untuk menulis pesan dengan tim tanpa membuka editor. Misalnya, git commit -m "fixing bag";
  • -A Transfer semua file yang dipantau ke area file yang disiapkan dan mencakupnya di Commote (memungkinkan Anda untuk melewati git add sebelum komit);
  • --Amend menggantikan komit terakhir untuk komit modifikasi baru, yang berguna jika Anda salah mengetik pesan komit terakhir atau lupa untuk memasukkan beberapa file ke dalamnya.

Beberapa tips kepadanya siapa yang layak didengarkan:

  • KOMITE sering: Anda tidak akan dapat memutar kembali perubahan jika Anda kembali ke apa.
  • Satu perubahan adalah satu komit: Jangan letakkan semua perubahan dalam satu comite, bagi mereka sehingga lebih mudah untuk kembali.
  • Format pesan: Judul harus dalam pengapian imperatif, panjangnya kurang dari 50 karakter dan harus secara logis melengkapi frasa komit ini akan ___ (komit ini akan memperbaiki bug - komit ini akan memperbaiki bug). Pesan harus menjelaskan mengapa komit dibuat, dan komit itu sendiri menunjukkan apa yang telah berubah. Dijadwalkan secara rinci cara menulis pesan untuk melakukan.
  • (Opsional) Jangan melakukan perubahan kecil: Dalam repositori besar, banyak komit kecil dapat menyumbat sejarah. Nada yang baik dianggap melakukan komitmen seperti itu ketika berkembang, dan ketika menambahkannya ke repositori besar untuk menggabungkannya menjadi satu komit.

Lihat perubahan dalam sejarah

Anda dapat menggunakan perintah GIT LOG untuk melihat riwayat komitmen sebelumnya dalam urutan kronologis terbalik. Dia dapat melewati berbagai pilihan:

  • -p menunjukkan perubahan di setiap com.
  • --Tata menunjukkan statistik singkat untuk melakukan, seperti file yang diubah dan jumlah string yang ditambahkan / jarak jauh di masing-masing;
  • -N menunjukkan n. berkomitmen baru-baru ini;
  • --Since \u003d ___ dan --Aril \u003d ___ memungkinkan Anda untuk memfilter komit dengan periode waktu, misalnya --seR \u003d "2019-01-01" akan menunjukkan komitmen dari 1 Januari 2019;
  • --Retty memungkinkan Anda untuk menentukan format log (misalnya, - prettty \u003d oneline), Anda juga dapat menggunakan - prettty \u003d format untuk kustomisasi yang lebih besar, misalnya - Format: "% H% S";
  • - Filter grep dan -s berkomitmen dengan pesan / kode ubah yang berisi string yang ditentukan, misalnya, git log -s_name_name memungkinkan Anda untuk melihat penambahan / penghapusan fungsi;
  • - tidak menggabungkan pass berkomitmen dengan cabang gabungan;
  • veta1..tell2 memungkinkan Anda untuk melihat komitmen mana dari cabang 2 tidak di cabang 1 (berguna saat menggabungkan cabang). Misalnya, GIT LOG MASTER..TEST akan menunjukkan apa yang dilakukan dari cabang uji tidak dalam master (Bicaralah dengan cabang sedikit kemudian).
  • - HEFT-Right cabang1 ... Branch2 menunjukkan komit yang ada di cabang 1 atau di cabang 2, tetapi tidak keduanya; tanda< обозначает коммиты из ветка1 , а > - Dari cabang2. Perhatian unggah: Tiga poin digunakan, bukan dua;
  • -L menerima argumen awal, end: file atau: file: file dan menunjukkan riwayat perubahan pada baris lewat atau fungsi dalam file.

Tim lain yang berguna adalah Git menyalahkan<файл> , yang untuk setiap baris file menunjukkan penulis dan jumlah checksum komit terakhir, yang telah mengubah string ini. -L.<начало>, <конец> Memungkinkan Anda membatasi perintah ini ke baris yang ditentukan. Ini dapat digunakan, misalnya, untuk mengetahui komite mana yang menyebabkan bug tertentu (sehingga Anda dapat memutar kembali).

Akhirnya, ada perintah GIT grep yang mencari semua file dalam histori komit (dan tidak hanya di direktori kerja sebagai grep) sesuai dengan ekspresi reguler yang ditentukan. Opsi -n menampilkan nomor baris yang sesuai dalam file untuk setiap pertandingan, dan --count menunjukkan jumlah kecocokan untuk setiap file.

Catatan Jangan bingung git grep dengan git log - grep! Yang pertama mencari file di antara komit, dan yang terakhir melihat pesan log.

Server jarak jauh

Sejauh ini, kami membahas penggunaan GIT hanya pada mesin lokal. Namun, kami dapat menyimpan komitmen sejarah repositori jarak jauh, yang dapat dipantau dan diperbarui (pertimbangkan cadangan cloud jarak jauh mereka dari sejarah komit kami).

Git Remote -v Command menampilkan daftar repositori jarak jauh yang kami lacak, dan nama-nama yang kami ikuti.

Saat menggunakan perintah klon git Kami tidak hanya memuat sendiri salinan repositori, tetapi juga secara implisit melacak server jarak jauh, yang berada pada alamat yang ditentukan dan yang ditugaskan nama asal.

Perintah yang paling konsumsi:

  • git remote add.<имя> - Menambahkan repositori jarak jauh dengan nama yang ditentukan;
  • git remote hapus.<имя> - Menghapus repositori jarak jauh dengan nama yang ditentukan;
  • git remote ganti nama.<старое имя> <новое имя> - Mengganti repositori jarak jauh;
  • git remote set-url<имя> - Menugaskan repositori bernama alamat baru;
  • git Remote Show.<имя> - Menampilkan informasi tentang repositori.

Perintah berikut beroperasi dengan cabang yang dihapus:

  • git fetch.<имя> <ветка> - Menerima data dari cabang repositori yang ditentukan, tetapi tidak menggabungkan perubahan;
  • git tarik<имя> <ветка> - Menggabungkan data dari cabang repositori yang ditentukan;
  • git push.<имя> <ветка> - Mengirim perubahan pada cabang repositori yang ditentukan. Jika cabang lokal sudah melacak remote, maka Anda dapat menggunakan hanya git push atau git pull.

Dengan demikian, beberapa orang dapat meminta perubahan dari server, membuat perubahan pada salinan lokal dan kemudian mengirimkannya ke server jarak jauh, yang memungkinkan Anda berinteraksi satu sama lain dalam satu repositori.

Cabang

Semua ini baik dan bagus jika setiap pengembang sedang mengerjakan proyek pada waktu yang berbeda. Grafik yang ditunjukkan di atas hanya menggantikan situasi dengan perubahan dalam repositori asli atau salinan lokal, tetapi bukan pekerjaan beberapa orang.

Ini menuntun kita ke fitur utama dari Cabang Git, kemampuan untuk bekerja pada versi proyek yang berbeda. Ini berarti bahwa alih-alih satu daftar dengan memerintahkan komitmen, cerita akan menyimpang pada titik-titik tertentu (yang membuatnya mirip dengan pohon). Setiap cabang di git mengandung kepala kepala ke komit terakhir di utas ini, yang memungkinkan Anda membuat banyak cabang tanpa biaya tambahan. Tip: Panggil cabang sesuai dengan fungsi yang dikembangkan di dalamnya. Cabang default disebut Master.

Jadi kami memiliki pointer umum Kepala. Dan kepala untuk setiap cabang. Dengan demikian, beralih antar cabang hanya menyiratkan bergerak Kepala. Di kepala cabang yang sesuai.

Tim Standar:

  • cabang git.<имя ветки> - Membuat cabang baru dengan kepala yang menunjukkan Kepala.. Jika Anda tidak menyampaikan argumen<имя ветки> , tim akan menampilkan daftar semua cabang lokal;
  • git checkout.<имя ветки> - Beralih ke cabang ini. Anda dapat melewati opsi -B untuk membuat cabang baru sebelum beralih;
  • git cabang -d.<имя ветки> - Menghapus cabang.

Sebagai repositori lokal kami, dan remote, dapat memiliki banyak cabang, jadi ketika Anda melacak repositori jarak jauh, sebenarnya memantau cabang yang dihapus (Git Clone membawa cabang master Anda ke cabang asal / master dari repositori jarak jauh).

Mengikat ke cabang yang dihapus:

  • git cabang -u.<имя удалённого репозитория>/<удалённая ветка> - Mengikat cabang saat ini ke cabang jarak jauh yang ditentukan;
  • git checkout --track.<имя удалённого репозитория>/<удалённая ветка> - Analog dari perintah sebelumnya;
  • git checkout -b.<ветка> <имя удалённого репозитория>/<удалённая ветка> - Membuat cabang lokal baru dan mulai melacak remote;
  • git Branch --VV - menunjukkan cabang-cabang jarak jauh lokal dan dipantau;
  • git checkout.<удалённая ветка> - Membuat cabang lokal dengan nama yang sama dengan remote, dan mulai melacaknya.

Secara umum, git checkout dikaitkan dengan lokasi tempat yang menunjuk kepala cabang, yang terlihat seperti git reset menggerakkan kepala umum.

Hipet dan pembersihan

Ada satu kehalusan - saat beralih cabang git mensyaratkan bahwa kondisi kerja bersih, yaitu, semua perubahan dalam file pelacakan harus diperbaiki.

Kira-kira. Menterjemahkan Ini tidak begitu. Dalam beberapa keadaan, Git dapat secara otomatis mentransfer perubahan yang tidak ungili ke cabang lain.

Namun, kadang-kadang Anda memiliki perubahan yang belum selesai yang tidak dapat diperbaiki. Dalam situasi seperti itu, mereka dapat diselamatkan dan "Sembunyikan" menggunakan perintah GIT STASH. Untuk mengembalikan perubahan, gunakan git stash berlaku.

Mungkin alih-alih Anda ingin menghapus semua perubahan yang dilakukan. Dalam hal ini, gunakan perintah GIT Clean. Opsi -d juga akan menghapus file yang tidak memenuhi syarat. Tip: Tambahkan opsi -N untuk melihat apa yang terjadi ketika Anda mulai git bersih tanpa penggunaan langsung.

Menggabungkan cabang

Setelah kami membahas cabang apa dan keduanya di antara mereka beralih, saatnya untuk berbicara tentang bagaimana mereka dapat digabungkan setelah pengembangan. Cabang di mana kami ingin menggabungkan perubahan akan disebut utama, dan cabang dari mana kami akan menggabungkan mereka - tematik. Ada dua cara untuk melakukan perubahan dari satu cabang ke cabang lain: penggabungan dan bergerak.

Penggabungan

Ini termasuk penciptaan komit baru, yang didasarkan pada jenderal memulai leluhur dua cabang dan menunjukkan keduanya sebagai komitmen sebelumnya. Untuk merger, kita pergi ke cabang utama dan menggunakan perintah git gabungan<тематическая ветка> .

Jika kedua cabang mengubah bagian file yang sama, maka konflik konflik muncul - situasi di mana Git tidak tahu versi file mana yang akan dihemat, sehingga perlu untuk menyelesaikan konflik secara pribadi. Untuk melihat file yang saling bertentangan, gunakan status git.

Setelah membuka file seperti itu, Anda akan melihat spidol resolusi konflik yang serupa:

<<<<<<< HEAD:index.html Everything above the ==== is the version in master. ======= Everything below the ==== is the version in the test branch. >\u003e\u003e\u003e\u003e\u003e\u003e Uji: index.html

Ganti di blok ini semua pada versi yang ingin Anda tinggalkan, dan siapkan file. Setelah menyelesaikan semua konflik, Anda dapat menggunakan git komit untuk menyelesaikan gabungan.

Pindah

Alih-alih menggabungkan dua cabang Komite Merger, bergerak mereproduksi komite cabang tematik dalam bentuk serangkaian komite baru cabang basis, yang dituangkan ke dalam sejarah berkomitmen yang lebih bersih.

Perintah git rebase digunakan untuk bergerak<основная ветка> <тематическая ветка> yang mereproduksi perubahan pada cabang tematik pada yang utama; Cabang tematik kepala menunjukkan komit yang direproduksi terakhir.

Pindahkan vs. penggabungan

Setelah menggabungkan log dengan cerita mungkin terlihat cukup acak. Di sisi lain, bergerak memungkinkan Anda untuk menulis ulang cerita dalam bentuk normal dan konsisten.

Jadi mengapa Anda membutuhkan merger jika Anda dapat menggunakan sepanjang waktu bergerak? Sayangnya, bergerak bukanlah obat mujarab dari log membingungkan, karena komit yang dipindahkan sebenarnya berbeda dari aslinya, meskipun mereka memiliki penulis yang sama, pesan dan perubahan.

Bayangkan sebuah skenario:

  • Di cabang Anda, Anda membuat beberapa komit dan menggabungkannya ke Branch Master.
  • Seseorang memutuskan untuk bekerja berdasarkan komit Anda.
  • Anda memutuskan untuk memindahkan komitmen Anda dan mengirimkannya ke server.
  • Ketika seseorang mencoba untuk menggabungkan pekerjaan mereka berdasarkan komit awal Anda, pada akhirnya kami akan menerima dua cabang paralel dengan satu penulis, pesan dan perubahan, tetapi dengan komit yang berbeda.

Karena itu, inilah sarannya:

Pindahkan perubahan hanya pada cabang lokal pribadi Anda - jangan memindahkan komit yang tergantung pada orang lain.

Komite Rollback - Kembalikan dan Reset

Perdebatan serupa tentang apa yang lebih baik digunakan, terjadi ketika Anda ingin memutar kembali komote. Tim git kembali.<коммит> Menciptakan komit baru, membatalkan perubahan, tetapi melestarikan riwayat, sedangkan git reset<коммит> Memindahkan pointer kepala dengan memberikan riwayat pembersih (seolah-olah komit ini tidak pernah terjadi). Penting untuk dicatat bahwa itu juga berarti bahwa Anda tidak akan lagi kembali ke perubahan ini, misalnya, jika Anda masih memutuskan bahwa pembatalan komit itu tidak perlu. Pembersih - tidak berarti lebih baik!

Meringkaskan

Pada tahap ini Anda memiliki hampir semua yang Anda butuhkan untuk bekerja dengan Git. Di bawah ini akan menjadi beberapa tips lanjutan (opsional) untuk kontrol yang lebih besar atas komitmen dan sejarah. Selain itu, maka kami dengan santai mempengaruhi GitHub - salah satu platform paling terkenal yang bekerja dengan Git, yang dapat bermanfaat bagi Anda.

Github.

GitHub adalah platform yang menyimpan repositori git di beberapa servernya. Sebagai pengguna GitHub, Anda dapat menyimpan repositori jarak jauh pada server mereka, serta berkontribusi pada repositori sumber terbuka lainnya. GitHub melengkapi penggunaan git dengan beberapa fitur baru.

Misalnya, Anda dapat membuat repositori jarak jauh garpu, yaitu, untuk membuat salinan repositori di utara GitHub. Ini berguna dalam kasus di mana Anda tidak memiliki hak untuk membuat cabang di repositori asli. Ketika Anda menggunakan perintah Git Clone, repositori lokal Anda akan melacak formulir jarak jauh sebagai asal, dan repositori asli sebagai hulu.

Setelah itu, Anda mungkin perlu mengeringkan cabang tematik dari repositori jarak jauh Anda di cabang utama aslinya. Untuk melakukan ini, Anda dapat membuat permintaan tarik baru - permintaan untuk membuat perubahan, di mana GitHub memeriksa keberadaan konflik sebelum Anda berpose untuk melakukan gabungan. Seringkali ada pemeriksaan lain sebelum menggabungkan, seperti melihat dan menyetujui kode atau bahkan tes luncurkan. Dalam kueri, Anda dapat mendiskusikan kode, dan semua komit yang Anda kirim ke cabang tematik jarak jauh akan secara otomatis ditambahkan ke permintaan, bahkan jika telah dibuat sebelum berkomitmen ini.

Penggunaan Lanjutan: Persiapan interaktif

Anda dapat dengan mudah mengelola area file yang disiapkan (misalnya, ketika memperbaiki beberapa komit kecil, bukan satu besar) menggunakan konsol interaktif yang dapat diluncurkan oleh Git Add -i. 8 tim tersedia di dalamnya:

  • status - Menunjukkan deskripsi singkat untuk setiap file yang (tidak) disiapkan;
  • perbarui - Menyiapkan file pelacakan;
  • kembalikan - hapus satu atau lebih file dari area yang disiapkan;
  • tambahkan yang tidak terlatih - menyiapkan file yang tidak memenuhi syarat;
  • patch - hanya menyiapkan bagian dari file (berguna ketika Anda, misalnya, mengubah beberapa fungsi, tetapi Anda ingin memecahkan perubahan pada beberapa komitmen). Setelah memilih file, Anda akan ditampilkan untuk Anda fragmen dan menyajikan perintah yang mungkin: Panggung hunk ini? . Bisakah saya masuk? untuk mencari tahu apa yang membuat setiap tim;
  • diff - Menampilkan daftar file yang disiapkan dan memungkinkan Anda untuk melihat perubahan untuk masing-masing;
  • berhenti - keluar dari konsol interaktif;
  • bantuan - menunjukkan deskripsi singkat dari masing-masing tim.

Simbol * di sebelah file berarti bahwa perintah akan mengubah statusnya (disiapkan / tidak siap tergantung pada apakah pembaruan atau rollback terjadi). Jika Anda menekan Enter tanpa memasukkan apa pun di salah satu menu perintah, maka semua file akan beralih ke (tidak) status disiapkan.

Harap dicatat bahwa pembuatan tambalan (persiapan hanya sebagian dari file) tersedia tidak hanya di konsol interaktif, tetapi juga melalui perintah GIT Add -P.

Penggunaan Lanjutan: Aturan Sejarah

Untuk kontrol yang lebih besar atas sejarah Cabang Lokal Komit, Anda dapat menggunakan perintah git rebase -i head ~ n. yang akan membuka konsol interaktif untuk memindahkan set yang terakhir n. Komit yang tercantum dari urutan lama ke yang baru (yaitu, dalam urutan di mana mereka akan dipindahkan). Jadi Anda dapat "mengedit riwayat", namun ingat bahwa komit asli tidak dapat diubah, hanya untuk bergerak.

Anda dapat mengubah urutan komit dengan mengubah urutan di mana mereka terdaftar.

Ubah komitawan komitmen komitmen

Untuk menentukan panitia yang ingin Anda ubah, perintah Edit digunakan. Kemudian, ketika Git akan bergerak, itu akan berhenti di com ini. Setelah itu, Anda dapat menggunakan Git Commit --AMEN untuk mengubah pesan atau menyiapkan file yang terlupakan. Jika Anda ingin membagi komote, setelah berhenti, masukkan kepala reset git ^ (sebagai hasil dari kepala, itu akan dipindahkan ke satu komit kembali dan semua file berubah dalam hal ini. Maka Anda dapat memperbaiki file dalam komit individu dengan cara biasa.

Setelah pengeditan selesai, masukkan Git Rebase --Continue.

Menimpa beberapa komit

Kadang-kadang Anda mungkin perlu menimpa beberapa komit - dalam kasus seperti itu Anda dapat menggunakan git filter-cabang. Misalnya, untuk menghapus file yang direkam secara acak, Anda dapat memasukkan git filter-branch --tree-filter "git rm -f<имя файла>"Kepala. Namun, pertimbangkan itu pada saat yang sama seluruh cerita bergerak.

Menggabungkan beberapa komitmen

Saat mengerjakan fitur baru dalam proyek, Anda secara bertahap dapat merekam bahkan perubahan sedikit pun di cabang tematik. Namun, karena ini, sejarah tersumbat oleh komit yang kecil, yang dapat bertentangan dengan aturan proyek. Ini dapat dikoreksi dengan menggabungkan beberapa komit menjadi satu besar. Untuk melakukan ini, pertama gunakan perintah pick untuk memilih komit pertama, dan kemudian squash untuk selanjutnya. Git akan menerapkan semua perubahan dalam satu kali dimulai dan meminta Anda untuk mengedit pesan komit umum.

Transfer komote terpisah

Selain merger / pergerakan semua komit di cabang tematik, Anda hanya dapat tertarik pada komit tertentu. Misalkan Anda memiliki cabang konsep lokal di mana Anda bekerja pada beberapa artikel potensial, tetapi Anda hanya ingin menerbitkan salah satu dari mereka. Untuk melakukan ini, Anda dapat menggunakan perintah GIT Cherry-Pick. Untuk mendapatkan komitmen tertentu dari mana kami ingin memilih, Anda dapat menggunakan log git<основная ветка>..<тематическая> .

Harap dicatat bahwa komit baru dibuat dengan cara ini, yang hanya mengulangi diff dari komit yang dipilih (yaitu perbedaan antara komit ini dan yang sebelumnya), tetapi bukan kondisinya.

Kesimpulan

Jadi kami meninjau konsep dasar git. Anda dapat menggunakan artikel ini sebagai buku referensi singkat, dan Anda dapat membaca buku "Pro Git", yang jauh lebih (~ 450 halaman) dan menjelaskan git lebih dalam.

Ingin menggali lebih dalam ke git, tetapi Anda memiliki sedikit (atau sebaliknya, banyak) dari satu buku besar? Maka Anda harus melihat kami.

Konfrontasi perubahan - fitur utama seseorang. Jika pada saat Anda mulai bekerja dengan versi sistem kontrol, tidak ada git - sangat mungkin Anda mulai dengan Subversion. Seringkali orang mengatakan bahwa Git terlalu rumit untuk pemula. Namun demikian, saya akan membiarkan diri saya tidak setuju dengan Anda.

Pada artikel ini, saya akan memberi tahu Anda cara menggunakan Git dalam bekerja dengan proyek Anda. Kami berasumsi bahwa Anda membuat proyek dari awal, dan ingin menggunakan GIT sebagai sistem kontrol versi. Setelah membaca perintah utama, kami akan membaca bagaimana Anda dapat meletakkan kode Anda di GitHub.

Artikel ini akan berbicara tentang hal-hal dasar - bagaimana menginisialisasi proyek, bagaimana mengelola file baru dan yang sudah ada, dan cara menyimpan kode Anda di cloud. Kami akan menurunkan beberapa hal kompleks seperti bercabang, karena artikel ini berorientasi pada pemula.

Menginstal Git.

Di situs resmi Git ada di berbagai sistem - Linux, Mac, Windows. Dalam kasus kami, kami akan menggunakan Ubuntu 13.04, dan git kami akan dipasang dengan apt-get.

Sudo apt-get install git

Konfigurasi awal

Buat direktori tempat kami akan bekerja. Anda juga dapat menggunakan Git untuk bekerja dengan proyek yang ada, dan dalam hal ini Anda tidak akan membuat direktori demonstrasi seperti yang dijelaskan di bawah ini.

Mkdir my_git_project cd my_git_project

Pertama-tama, perlu untuk menginisialisasi repositori git di direktori proyek. Anda dapat melakukan ini oleh perintah init, yang membuat direktori. Dengan semua informasi tentang proyek Anda.

Config git --global user.name "shaumik" git config --global user.email " [Dilindungi Email]"Git config --global color.ui" otomatis "

Perlu dicatat bahwa jika Anda tidak menentukan alamat dan nama Anda, maka nilai default akan digunakan sebagai gantinya. Dalam kasus kami, nilai-nilai default akan donny dan [Dilindungi Email]

Kami juga mengatur warna antarmuka ke nilai otomatis, sehingga output dari perintah git akan berwarna. Kami menambahkan --Global awalan untuk perintah-perintah ini sehingga nilai-nilai ini digunakan di seluruh sistem, dan tidak perlu mengaturnya untuk setiap proyek individu.

Mempersiapkan File Komit.

Langkah selanjutnya kita akan membuat beberapa file. Anda dapat menggunakan editor teks untuk ini. Perhatikan bahwa jika Anda menginisialisasi git dalam proyek yang ada, Anda tidak perlu membuat langkah ini.

Periksa keadaan repositori

Sekarang ada file dalam proyek Anda, mari kita lihat bagaimana git menarik dengan mereka. Untuk memeriksa status repositori saat ini, gunakan perintah status GIT.

Tambahkan file ke git

Pada tahap ini, Git tidak mengikuti salah satu file kami. Perlu untuk secara khusus menambahkan file ke git sehingga itu terjadi. Untuk melakukan ini, gunakan perintah add.

Git tambahkan my_file.

Setelah memeriksa status repositori, kami melihat bahwa salah satu file telah ditambahkan ke dalamnya.

Untuk menambahkan banyak file, kami menggunakan yang berikut (perhatikan bahwa kami menambahkan file pertama sebelumnya, jadi kami hanya menambahkan dua yang tersisa).

Git tambahkan myfile2 myfile3

Anda dapat menggunakan git menambahkan secara rekursif, tetapi hati-hati dengan perintah ini. Ada beberapa file (misalnya, program yang dikompilasi) yang tidak boleh ditambahkan ke sistem kontrol versi. Jika Anda menggunakan Git, tambahkan secara rekursif, file-file tersebut juga akan jatuh ke repositori.

Hapus file

Bayangkan Anda secara tidak sengaja menambahkan file ke repositori, yang seharusnya tidak ada di sana. Atau Anda ingin menghapus file apa pun dari sistem kontrol versi. Secara umum, perintah GIT RM tidak akan hanya menghapus file dari repositori, tetapi juga secara fisik menghapusnya dari disk. Ke git berhenti melacak file, tetapi tetap pada disk, gunakan perintah berikut:

Git rm --cached [nama file]

Perubahan komision

Setelah Anda menambahkan semua file yang diperlukan, Anda dapat berkomentar (memperbaiki) di Git. Bayangkan bahwa komit adalah snapshot dari status proyek pada tahap tertentu yang dapat Anda ikuti kapan saja, dan melihat status proyek pada waktu itu. Dengan setiap komite, pesan dikaitkan bahwa argumennya ditetapkan setelah awalan -m

Git komit -m "komit pertama saya"

Tentukan pesan yang akan berisi informasi yang bermanfaat, karena mereka membantu memahami apa yang diubah dalam komit ini. Hindari beberapa pesan umum, seperti "aturan bug." Jika Anda memiliki pelacak bug, Anda dapat menentukan jenis pesan "Bug # 123". Praktik yang baik - menunjukkan nama cabang atau perbaikan. Misalnya, "Manajemen Aset - Menambahkan kemampuan untuk menghasilkan PDF berdasarkan aset" - pesan yang jelas dan dapat dimengerti.

Git menentukan nomor heksadesimal komote. Biasanya, tidak perlu menyalin seluruh baris, 5-6 karakter pertama cukup untuk mengidentifikasi komit tertentu. Dalam tangkapan layar, dapat dilihat bahwa komote kami diidentifikasi oleh angka 8DD76FC.

Komiton lebih lanjut

Mari kita ubah beberapa file setelah kami mengejar mereka. Setelah kami mengubahnya, status GIT akan melaporkan bahwa kami telah mengubah file.

Anda dapat melihat apa yang telah berubah dalam file-file ini sejak komit sebelumnya, menggunakan perintah git diff. Jika Anda ingin melihat perubahan untuk file tertentu, Anda dapat menggunakan git diff<файл> .

Perlu untuk mengindeks perubahan, dan menghargainya. Semua file proyek yang dimodifikasi dapat ditambahkan ke perintah berikut untuk komit:

Anda dapat menghindari menggunakan perintah ini jika Anda menambahkan parameter ke git commit. Perintah ini mengindeks semua file yang dimodifikasi, dan komiri. Tetapi pendekatan ini bisa sangat berbahaya, sehingga secara tidak sengaja Anda dapat melakukan fakta bahwa saya tidak mau. Misalnya, katakanlah Anda membuka file, dan secara tidak sengaja mengubahnya. Saat mengindeks file yang dimodifikasi, Anda akan diberi tahu tentang perubahan masing-masing file. Tetapi jika Anda mengirim semua file yang dimodifikasi tanpa melihat bantuan. Git Commit -A, maka semua file akan dilakukan, termasuk yang Anda lakukan tidak diinginkan.

Segera setelah Anda mengindeks file, Anda dapat melanjutkan ke komit. Seperti disebutkan sebelumnya, Anda dapat menentukan pesan ke komit menggunakan kunci -m. Tetapi Anda juga dapat menentukan komentar multi-line menggunakan perintah git commit, yang membuka editor konsol untuk memasukkan komentar.

Manajemen masalah

Untuk melihat riwayat proyek, Anda dapat menggunakan perintah berikut:

Ini akan menampilkan riwayat sejarah penuh dalam bentuk daftar komit dan informasi tentang mereka. Informasi tentang komit tersebut berisi pesan hash, penulis, waktu dan pergantian. Ada banyak jenis tim log git, yang harus berkenalan dalam kasus menggunakan bercabang di Git. Untuk melihat detail komit tertentu, dan file yang dimodifikasi, jalankan perintah berikut:

Pertunjukan git.<хеш_коммита>

dimana<хеш_коммита> - Nomor hex terkait dengan komit. Karena manual ini dirancang untuk pemula, kami tidak akan mempertimbangkan bagaimana mengembalikan keadaan pada saat komit tertentu, atau bagaimana cara mengendalikan cabang.