git remote add (remote) (repoUrl) digunakan untuk dua perpustakaan yang tidak berkaitan
伊谢尔伦
伊谢尔伦 2017-06-29 10:08:59
0
1
1149

Saya tidak pernah terfikir tentang soalan ini, dan saya rasa ia tidak mudah untuk digambarkan, jadi saya tidak pernah bertanya.
Sebagai contoh, terdapat projek A dan projek B, dan ia sama sekali tidak berkaitan.
Projek A dan B mempunyai gudang terpencil dan gudang tempatan, masing-masing diwakili oleh remoA, locA, remoB dan locB.

Soalan:
Dalam keadaan biasa, locA pasti dikaitkan dengan remoA, dan locB dikaitkan dengan remoB, tidak kira sama ada persatuan ini melalui pengklonan atau git remote add (remote) (repoUrl). Sekarang andaikan bahawa perpustakaan tempatan locA dan locB sudah wujud, tetapi locB berada dalam keadaan yang baru dimulakan dan masih merupakan pustaka kosong Kerana ralat operasi, git remote add origin (remoAUrl) telah dilaksanakan.

Saya menemui ralat ini kemudian dan melaksanakan

git remote add originB (remoBUrl)

Jadi adakah remoA/master dan remoB/master dipetakan ke locB/master pada masa ini?

Jika anda melaksanakan git pull, adakah kod cawangan jauh remoA dan remoB akan digabungkan pada cawangan induk tempatan?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

membalas semua(1)
phpcn_u1582

Disebabkan ralat operasi, git remote add origin (remoAUrl) telah dilaksanakan. Kemudian saya menemui ralat ini dan melaksanakan git remote add originB (remoBUrl)

Jika anda tidak bercadang untuk meletakkan remoA 关联给 locB,那么到这里就还是错的。正确做法应该是 git remote rm origin 然后 git remote add origin (remoBUrl)

Jadi adakah kedua-dua remoA/master dan remoB/master dipetakan ke locB/master pada masa ini?

Sudah tentu tidak. Pertama sekali, saya rasa mungkin lebih sesuai untuk mengatakan bahawa hubungan "bersekutu" telah diwujudkan, sama seperti git checkout -b --track xxx 这种感觉。其次,你添加了两个 remote,其中一个叫 origin,另一个叫 originB。但 git 会优先使用 origin. Lihat artikel seterusnya untuk butiran

Jika anda melaksanakan git pull, adakah kod cawangan jauh remoA dan remoB akan digabungkan pada cawangan induk tempatan?

Sudah tentu tidak. Melainkan anda mula-mula mengemas kini setempat ke salah satu cawangan, dan kemudian pergi ke pull cawangan lain.

git pull 不指定后续参数,默认就是 git pull origin。如果你在 master branch 上,默认也就是 git pull origin master.

Sudah tentu, ia mungkin berubah bergantung pada tetapan anda. Yang dinyatakan di atas hanyalah syarat lalai. Sila buka .git/config 文件看一看。命令行里输入 cat .git/config untuk situasi sebenar. Contohnya:

[branch "master"]
    remote = origin
    merge = refs/heads/master

Ini memberitahu git dua perkara:

  1. Jika anda berada di sini sekarang master branch 上,那么默认的 remoteorigin

  2. Jika anda beraksi dalam situasi ini git pull,不带任何参数的那种,那么就相当于 git pull origin master

Boleh guna git push -u newOrigin newBranch 来改,那现在 git pull 就相当于 git pull newOrigin newBranch 了。
类似地,也可以 git config branch.master.remote newOrigin 然后 git config branch.master.merge refs/heads/newBranch. Hasilnya adalah sama.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan