Rumah  >  Artikel  >  pembangunan bahagian belakang  >  git ls-remote berjaya tetapi go get fails

git ls-remote berjaya tetapi go get fails

WBOY
WBOYke hadapan
2024-02-14 13:54:08373semak imbas

git ls-remote 成功而 go get 失败

Editor PHP Apple menghadapi masalah apabila menggunakan bahasa Git dan Go untuk membangunkan projek: arahan git ls-remote berjaya memperoleh maklumat gudang jauh, tetapi arahan go get tidak berjaya memuat turun pakej bergantung. Masalah ini telah menyusahkan editor untuk masa yang lama Selepas percubaan berterusan dan penyahpepijatan, akhirnya saya menemui penyelesaian. Dalam artikel ini, kami akan memperkenalkan punca dan penyelesaian masalah ini secara terperinci, dengan harapan dapat membantu pembangun yang menghadapi masalah yang sama.

Kandungan soalan

Arahan git ls-remote berjaya untuk repositori seperti yang ditunjukkan di bawah.

git ls-remote https://internal.net/dir1/dir2/dir3/repo
warning: redirecting to https://internal.net/dir1/dir2/dir3/repo.git/
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    head
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy    refs/heads/master

Namun, apabila menggunakan go get, cmd gagal dan tidak dapat mencari repositori. Output ralat cuba mencari .git dalam 1 direktori di atas struktur repositori.

go get internal.net/dir1/dir2/dir3/repo@master
go: internal.net/dir1/dir2/dir3/repo@master: invalid version: git ls-remote -q origin in /Users/{{UserId}}/go/pkg/mod/cache/vcs/xyz...: exit status 128:
    remote: The project you were looking for could not be found or you don't have permission to view it.
    fatal: repository 'https://internal.net/dir1/dir2.git/' not found

Penswastaan ​​saya ialah goprivate=internal.net

Apa yang saya ketinggalan di sini untuk mencapai kejayaan?

Penyelesaian

Tambahkan akhiran vcs dalam laluan modul peribadi untuk menandakan awalan akar repositori:

go get internal.net/dir1/dir2/dir3/repo.git@master

Lihat Akses terus ke modul peribadi:

Pelayan http dalaman mungkin masih diperlukan untuk menyelesaikan laluan modul ke dalam url repositori. Contohnya, apabila arahan go memuat turun modul corp.example.com/mod 时,它会向 https://corp.example.com/mod?go-get=1 发送 get 请求,并会查找存储库响应中的 url。为了避免此要求,请确保每个私有模块路径都有一个 vcs 后缀(如 .git),标记存储库根前缀。例如,当 go 命令下载模块 corp.example.com/repo.git/mod 时,它将克隆位于 https://corp.example.com/repo.gitssh://corp.example 的 git 存储库.com/repo.git, tiada permintaan tambahan perlu dibuat.

Sila ambil perhatian bahawa akhiran vcs adalah sebahagian daripada laluan modul, jadi ia harus disertakan di mana-mana laluan modul digunakan. Termasuk:

  1. module perintah

    module internal.net/dir1/dir2/dir3/repo.git
  2. require perintah

    require internal.net/dir1/dir2/dir3/repo.git v0.0.1
  3. Import pengisytiharan kastam

    import "internal.net/dir1/dir2/dir3/repo.git/pkg/util"
  4. Ada lagi.

Atas ialah kandungan terperinci git ls-remote berjaya tetapi go get fails. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam