รายการรีโมตสำหรับที่เก็บ Git หรือไม่?


542

ฉันมีที่เก็บ Git ที่เก็บนี้มีที่เก็บระยะไกลหลายแห่ง (ฉันคิดว่า) ฉันจะรับรายการของที่เก็บข้อมูลรีโมตที่เป็นของที่เก็บดังกล่าวได้อย่างไร?

ชอบgit list --remotesหรืออะไรแบบนั้น?

คำตอบ:


750

คุณจะได้รับรายการของ URL ระยะไกล ๆ git remote -vการกำหนดค่าด้วยคำสั่ง

สิ่งนี้จะทำให้คุณมีลักษณะดังนี้:

base    /home/***/htdocs/base (fetch)
base    /home/***/htdocs/base (push)
origin  git@bitbucket.org:*** (fetch)
origin  git@bitbucket.org:*** (push)

18
git remote -vเพราะ -v สำหรับ verbose git remoteให้รายการรีโมทอย่างง่าย (ฐานกำเนิดในกรณีนี้) ตัวเลือก -v รวมถึง url สำหรับการดำเนินการดึงข้อมูลและพุชของรีโมทแต่ละตัว
dhj

2
ฉันต้องเห็นด้วยกับ @AlexMills ถ้าเป็นสาขา git - รายการมันควรจะเป็น git remote
jimmyb

1
-vสำหรับ "verbose" เป็นจริงตัวเลือกทั่วไป git branchนอกจากนี้ยังได้รับการสนับสนุนโดย ความแตกต่างพื้นฐานคือตัวเลือกสั้นและยาว (เดี่ยวกับเส้นประคู่โดยพื้นฐาน) ที่กล่าวว่าการสนับสนุน - รายการที่มีคำremoteสั่งย่อยจะสมเหตุสมผล ถ้าคุณต้องการมันจริงๆฉันจะบอกว่าส่งคำขอคุณสมบัติ
Randall

4
สิ่งนี้ต้องใช้เพื่อให้มีโคลนอยู่แล้ว เมื่อพยายามที่จะคิดออกว่าจะโคลนจะเริ่มต้นด้วยสิ่งอื่นเป็นสิ่งจำเป็น ...
มิคาอิลตัน

60

หากคุณต้องการชื่อของที่เก็บข้อมูลระยะไกลเท่านั้น (และไม่ใช่ข้อมูลอื่นใด) การสร้างแบบง่ายgit remoteก็เพียงพอแล้ว

$ git remote
iqandreas
octopress
origin

32

FWIW ฉันมีคำถามเดียวกัน แต่ฉันไม่สามารถหาคำตอบได้ที่นี่ อาจไม่พกพาได้ แต่อย่างน้อยสำหรับ gitolite ฉันสามารถเรียกใช้สิ่งต่อไปนี้เพื่อรับสิ่งที่ฉันต้องการ:

$ ssh git@git.xxx.com info
hello akim, this is gitolite 2.3-1 (Debian) running on git 1.7.10.4
the gitolite config gives you the following access:
     R   W     android
     R   W     bistro
     R   W     checkpn
...

24

คำตอบที่บอกวิธีการค้นหาสาขาที่มีอยู่:

git branch -r

หรือที่เก็บสำหรับโครงการเดียวกัน[ดูหมายเหตุด้านล่าง] :

git remote -v

มีอีกกรณีหนึ่งคือ คุณอาจต้องการทราบเกี่ยวกับที่เก็บโครงการอื่น ๆ ที่โฮสต์บนเซิร์ฟเวอร์เดียวกัน

ในการค้นหาข้อมูลนั้นฉันใช้ SSH หรือPuTTYเพื่อเข้าสู่โฮสต์และlsค้นหาไดเรกทอรีที่มีที่เก็บอื่น ๆ ตัวอย่างเช่นถ้าฉันโคลนที่เก็บโดยพิมพ์:

git clone ssh://git.mycompany.com/git/ABCProject

และต้องการทราบว่ามีอะไรอีกบ้างฉันเข้าสู่ git.mycompany.com ผ่าน SSH หรือ PuTTY และพิมพ์:

ls /git

สมมติlsว่าพูดว่า:

 ABCProject DEFProject

ฉันสามารถใช้คำสั่ง

 git clone ssh://git.mycompany.com/git/DEFProject

เพื่อเข้าถึงโครงการอื่น

หมายเหตุ: โดยปกติแล้วจะgit remoteบอกฉันเกี่ยวกับorigin- พื้นที่เก็บข้อมูลที่ฉันโคลนโครงการ git remoteจะเป็นประโยชน์ถ้าคุณกำลังร่วมมือกับคนสองคนขึ้นไปที่ทำงานในโครงการเดียวกันและเข้าถึงที่เก็บของกันและกันโดยตรงแทนที่จะส่งผ่านทุกอย่างผ่านแหล่งกำเนิด


2
นี่เป็นคำตอบที่ดีกว่าเพราะพูดถึงที่เก็บแทนที่จะเป็นสาขาและอธิบายวิธีแสดงรายการที่เก็บที่ไม่ได้อยู่ในที่เก็บข้อมูลที่ตรวจสอบอยู่ในปัจจุบัน
Edward Ross

16

วิธีง่ายๆในการดูสาขาระยะไกลคือ:

git branch -r

วิธีดูสาขาท้องถิ่น:

git branch -l

15
นี่สำหรับสาขาระยะไกล ผู้ใช้ระยะไกลขอRepos
Owen Blacker

4
git ls-remoteควรแสดงรีโมททั้งหมดที่มีให้สำหรับดึงข้อมูลจากเซิร์ฟเวอร์ upstream ( git-scm.com/docs/git-ls-remote ) ฉันเชื่อว่าคำตอบทั้งหมดในหน้านี้จะบอกวิธีการแสดงรายการรีโมตและการติดตามสาขาที่คุณได้ดึงข้อมูลมาแล้วนั่นคือ Catch-22 คุณไม่สามารถเรียกรีโมตได้จนกว่าคุณจะรู้วิธีการอ้างอิงรีโมตบนเซิร์ฟเวอร์ upstream
Reb.Cabin

0

วิธีการเหล่านี้ไม่มีวิธีการที่ผู้ถามถามและซึ่งฉันก็มักจะต้องการเช่นกัน เช่น:

$ git remote
fatal: Not a git repository (or any of the parent directories): .git
$ git remote user@bserver
fatal: Not a git repository (or any of the parent directories): .git
$ git remote user@server:/home/user
fatal: Not a git repository (or any of the parent directories): .git
$ git ls-remote
fatal: No remote configured to list refs from.
$ git ls-remote user@server:/home/user
fatal: '/home/user' does not appear to be a git repository
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

จุดทั้งหมดของการทำเช่นนี้คือคุณไม่มีข้อมูลใด ๆ ยกเว้นผู้ใช้ระยะไกลและเซิร์ฟเวอร์และต้องการค้นหาสิ่งที่คุณสามารถเข้าถึงได้

คำตอบส่วนใหญ่ถือว่าคุณกำลังสอบถามจากภายในชุดการทำงาน git ผู้ถามกำลังสมมติว่าคุณไม่ได้

เพื่อเป็นตัวอย่างในทางปฏิบัติสมมติว่ามีที่เก็บ foo.git บนเซิร์ฟเวอร์ ใครบางคนในภูมิปัญญาของพวกเขาตัดสินใจว่าพวกเขาจำเป็นต้องเปลี่ยนเป็น foo2.git มันจะดีจริง ๆ ที่จะทำรายการของไดเรกทอรี git บนเซิร์ฟเวอร์ และใช่ฉันเห็นปัญหาสำหรับคอมไพล์ มันคงจะดีถ้ามี

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.