Tutorial Git Mu...login
Tutorial Git Mula Pantas
pengarang:php.cn  masa kemas kini:2022-04-11 13:44:34

Gudang terpencil Git


Git tidak mempunyai pelayan pusat seperti SVN.

Arahan Git yang kami gunakan pada masa ini semuanya dilaksanakan secara setempat, jika anda ingin berkongsi kod anda atau bekerjasama dengan pembangun lain melalui Git. Anda kemudiannya perlu meletakkan data pada pelayan yang boleh disambungkan oleh pembangun lain.

Contoh ini menggunakan Github sebagai gudang jauh Anda boleh membaca tutorial ringkas Github kami terlebih dahulu.


Tambah repositori jauh

Untuk menambah repositori jauh baharu, anda boleh menentukan nama mudah untuk rujukan masa hadapan Format arahan adalah seperti berikut:

git remote add [shortname] [url]

Contoh ini menggunakan Github sebagai gudang jauh Jika anda tidak mempunyai Github, anda boleh mendaftar di tapak web rasmi https://github.com/.


Memandangkan pemindahan antara repositori Git setempat anda dan repositori GitHub disulitkan melalui SSH, kami perlu mengkonfigurasi maklumat pengesahan:

Gunakan arahan berikut Generate Kunci SSH:

$ ssh-keygen -t rsa -C "youremail@example.com"

Tukar your_email@youremail.com selepas anda ke alamat e-mel yang anda daftarkan di github Anda kemudiannya akan diminta untuk mengesahkan laluan dan memasukkan kata laluan Kami hanya menggunakan yang lalai dan tekan Enter . Jika berjaya, folder .ssh akan dijana di bawah ~/, masuk, buka id_rsa.pub dan salin kekunci di dalamnya.

Kembali ke github, masukkan Tetapan Akaun, pilih Kekunci SSH di sebelah kiri, Tambah Kunci SSH, isikan tajuk yang anda suka, dan tampal kekunci yang dijana pada komputer anda.

Untuk mengesahkan kejayaan, masukkan arahan berikut:

$ ssh -T git@github.com
Hi tianqixin! You've successfully authenticated, but GitHub does not provide shell access.

Arahan berikut menunjukkan bahawa kami telah berjaya menyambung ke Github.

Selepas log masuk, klik "Repositori baharu" seperti yang ditunjukkan di bawah:

Kemudian isikan w3cschool.cc (nama gudang jauh) dalam nama Repositori. , kekalkan tetapan lalai yang lain, klik butang "Buat repositori", dan repositori Git baharu berjaya dibuat:

Selepas penciptaan berjaya, maklumat berikut dipaparkan:

Maklumat di atas memberitahu kami bahawa kami boleh mengklonkan gudang baharu daripada gudang ini atau menolak kandungan gudang tempatan ke gudang GitHub.

Sekarang, kami mengikuti gesaan GitHub dan menjalankan arahan di bawah repositori tempatan:

$ ls
README
w3cschoolphp中文网测试.txt
test.txt
$ git remote add origin git@github.com:tianqixin/w3cschool.cc.git
$ git push -u origin master
Counting objects: 21, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (15/15), done.
Writing objects: 100% (21/21), 1.73 KiB | 0 bytes/s, done.
Total 21 (delta 4), reused 0 (delta 0)
To git@github.com:tianqixin/w3cschool.cc.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

Sila salin arahan berikut berdasarkan tempat anda berjaya mencipta repositori baharu pada Github, bukan berdasarkan apa yang saya disediakan, kerana nama pengguna Github kami berbeza dan nama gudang juga berbeza.

Seterusnya kami kembali ke gudang yang dibuat oleh Github, dan anda boleh melihat bahawa fail telah dimuat naik ke Github:


Lihat perpustakaan jauh semasa

Untuk melihat repositori jauh mana yang dikonfigurasikan pada masa ini, anda boleh menggunakan arahan:

git remote
$ git remote
origin
$ git remote -v
origin	git@github.com:tianqixin/w3cschool.cc.git (fetch)
origin	git@github.com:tianqixin/w3cschool.cc.git (push)

Tambah parameter -v semasa melaksanakan, dan anda juga boleh melihat alamat pautan sebenar setiap alias.


Ekstrak repositori jauh

Git mempunyai dua arahan untuk mengekstrak kemas kini daripada repositori jauh.

1. Muat turun cawangan dan data baharu dari gudang jauh:

git fetch

Selepas melaksanakan arahan ini, anda perlu melaksanakan git merge dari cawangan jauh ke cawangan anda.

2. Ekstrak data dari repositori jauh dan cuba gabungkannya ke cawangan semasa:

git pull

Arahan ini adalah untuk melaksanakan git fetch diikuti dengan git merge untuk memindahkan cawangan jauh ke mana-mana cawangan anda berada di.

Dengan mengandaikan anda telah mengkonfigurasi gudang jauh dan anda ingin mengambil data yang dikemas kini, anda boleh mula-mula melaksanakan git fetch [alias] Beritahu Git untuk mengambil data yang ada padanya yang tidak anda miliki, dan kemudian anda boleh melakukan git merge [alias]/[branch] untuk menggabungkan sebarang kemas kini pada pelayan (dengan andaian seseorang menolak ke pelayan di titik ini) ke dalam cawangan semasa anda.

Seterusnya kami klik pada "w3cschoolphp Chinese network test.txt" pada Github dan ubah suainya dalam talian. Kemudian kami mengemas kini dan mengubah suainya secara tempatan.

$ git fetch origin
Warning: Permanently added the RSA host key for IP address '192.30.252.128' to the list of known hosts.
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From github.com:tianqixin/w3cschool.cc
   7d2081c..f5f3dd5  master     -> origin/master

Maklumat di atas "7d2081c..f5f3dd5 master -> origin/master" menunjukkan bahawa cawangan induk telah dikemas kini Kita boleh menggunakan arahan berikut untuk menyegerakkan kemas kini kepada setempat:

$ git merge origin/master
Updating 7d2081c..f5f3dd5
Fast-forward
 "w3cschool074107651703653075.txt" | 1 +
 1 file changed, 1 insertion(+)

Tekan ke gudang jauh

Tolak cawangan dan data baharu anda ke arahan gudang jauh:

git push [alias] [branch]

Arahan di atas akan menolak cawangan [cawangan] anda ke [alias] pada cawangan [cawangan] gudang terpencil, contohnya seperti berikut.

$ git merge origin/master
Updating 7d2081c..f5f3dd5
Fast-forward
 "w3cschool074107651703653075.txt" | 1 +
 1 file changed, 1 insertion(+)
bogon:w3cschoolcc tianqixin$ vim w3cschoolphp中文网测试.txt 
bogon:w3cschoolcc tianqixin$ git push origin master
Everything up-to-date

Padam repositori jauh

Untuk memadam repositori jauh anda boleh menggunakan arahan:

git remote rm [别名]
$ git remote -v
origin	git@github.com:tianqixin/w3cschool.cc.git (fetch)
origin	git@github.com:tianqixin/w3cschool.cc.git (push)
$ git remote add origin2 git@github.com:tianqixin/w3cschool.cc.git
$ git remote -v
origin	git@github.com:tianqixin/w3cschool.cc.git (fetch)
origin	git@github.com:tianqixin/w3cschool.cc.git (push)
origin2	git@github.com:tianqixin/w3cschool.cc.git (fetch)
origin2	git@github.com:tianqixin/w3cschool.cc.git (push)
$ git remote rm origin2
$ git remote -v
origin	git@github.com:tianqixin/w3cschool.cc.git (fetch)
origin	git@github.com:tianqixin/w3cschool.cc.git (push)

Laman web PHP Cina