มีวิธีในการแสดงรายการที่เก็บข้อมูลที่มีอยู่ทั้งหมดโดยใช้ git หรือไม่?


22

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


คุณสามารถโพสต์คำตอบของคุณเป็นคำตอบที่แยกต่างหากแทนที่จะเป็นการแก้ไขคำถามของคุณได้หรือไม่?
Mateusz Konieczny

คำตอบ:


8

คุณจะต้องทั้งการเข้าถึงเชลล์กับเครื่องโฮสติ้งคอมไพล์-ภูตและดู params ที่ใช้ในการเรียกใช้ Git-ภูตหรือใช้ Git เว็บส่วนหน้า (เบราว์เซอร์ Repository) เรียกว่าGitWeb

โปรดอ้างถึงคำถามที่มีอยู่นี้

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

รายละเอียดมีการอธิบายใน GitWeb README - คีย์การกำหนดค่าที่สนใจเรียกว่า "GITWEB_PROJECTROOT":

GITWEB_PROJECTROOT The root directory for all projects shown by gitweb. Must be set correctly for gitweb to find repositories to display. See also "Gitweb repositories" in the INSTALL file for gitweb.

บางทีคุณอาจมีการพูดคุยกับผู้ดูแลระบบของคุณ - gitweb อาจเป็นกำไรที่ยอดเยี่ยมสำหรับนักพัฒนาทั้งหมด

เท่าที่ฉันสามารถบอกได้สิ่งนี้ต้องทำบนเครื่องที่ใช้ git-daemon คุณต้องตรวจสอบอาร์กิวเมนต์ที่เรียกใช้ git-daemon หรือตรวจสอบ /etc/inetd.conf


0

เนื่องจากฉันมีสิทธิ์เข้าถึงเชลล์ไปยังเครื่องรีโมตฉันจึงสิ้นสุดการเขียนfabricสคริปต์ขนาดเล็กที่สามารถเรียกใช้จากเทอร์มินัลเพื่อแสดงรายการที่เก็บข้อมูลรีโมตทั้งหมด:

#!/bin/python

from fabric.api import run, env
from fabric.colors import green 

env.hosts = ['<hostname>'];
env.user = '<user>';
env.password = '<password>';

def lr():
  "Lists all remote repositories"
  print(green("listing remote repos"))
  run('cd /var/git; ls -al')

ตอนนี้ฉันสามารถแสดงรายชื่อ repositores ระยะไกลทั้งหมดโดยออกคำสั่งต่อไปนี้จาก terminal:

fab lr

/var/gitหมายเหตุว่าสคริปต์นี้จะถือว่าที่เก็บคอมไพล์ตั้งอยู่ใน แม้ว่าจะเป็นกรณีปกติ แต่ก็ไม่เป็นความจริงเสมอไป
Dave Sherohman

0

สิ่งนี้ขึ้นอยู่กับการเข้าถึงที่เก็บข้อมูลเหล่านั้นเป็นอย่างมากดังนั้นจึงไม่มีคำตอบขนาดเดียวที่เหมาะกับทุกคน:

  • หากมีการให้บริการ repos โดยgit-daemonและ / หรือgitwebคุณสามารถดูการกำหนดค่าเพื่อดูว่ามันเก็บ repos และรายการเนื้อหาของไดเรกทอรีที่
  • หาก repos เข้าถึงได้ผ่าน ssh ดังนั้นพวกเขาจะอยู่ที่ใดก็ได้ในระบบไฟล์ คุณควรจะสามารถค้นหาได้โดยค้นหาไดเรกทอรีทั้งหมดในระบบที่มีไฟล์ชื่อHEAD(เช่นlocate HEAD | grep \/HEAD$) แต่สิ่งนี้อาจสร้างผลบวกปลอมและมันจะแสดง repos ใด ๆ ที่เป็นไดเรกทอรีการทำงานในท้องถิ่นเพียงอย่างเดียวและไม่ถูกแชร์หรือถูกโคลนจาก แหล่งอื่น
  • หาก repos จัดการโดยgitlabพวกเขาไม่ได้อยู่ในระบบไฟล์เลยดังนั้นคุณต้องใช้เว็บอินเตอร์เฟส gitlab เพื่อแสดงรายการ โปรดทราบว่าบาง repos อาจถูกซ่อนจากรายการนี้หากคุณไม่ได้รับอนุญาตให้เข้าถึง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.