2009-08-16 24 views
6

Câu hỏi này được đặt ra ngoài sự tò mò nhiều hơn bất kỳ điều gì thực tế, nhưng tôi có thể có $ GIT_DIR git: //example.com/repo.git/ hiệu quả không? Vì vậy, sẽ không có thư mục .git - mọi cam kết đơn lẻ, v.v. sẽ đi qua chi phí mạng.git không có thư mục .git - một git-dir từ xa

chỉnh sửa: Một trường hợp sử dụng tiềm năng có thể là bạn đã cố gắng để làm một "xuất khẩu" đơn giản như svn, nhưng nó quay ra câu hỏi đó đã được trả lời here

+0

Câu hỏi của bạn được viết một cách kinh khủng, và ngữ pháp là như vậy mà tôi có thể biết câu trả lời, nhưng không thể đưa ra câu hỏi. –

+0

Tôi thực sự đồng tình. Tôi đã viết lại nó để hy vọng sẽ tốt hơn :) –

Trả lời

3

$GIT_DIR, introduced in May 2005, dành cho:

  • xác định cả hai SHA1_FILE_DIRECTORY (đã GIT_OBJECT_DIRECTORY, tức là "$GIT_DIR/objects ")
  • GIT_INDEX_FILE (" $GIT_DIR/index")

Khi GIT_DIR không được xác định, mặc định GIT_DIR là ".git".

Nó có nghĩa là một đường dẫn tuyệt đối hoặc đường dẫn tương đối đến thư mục làm việc hiện tại, không phải là đường dẫn tuyệt đối của http hoặc git.

Lấy cảm hứng từ post from Junio C. Hamano này:

Một số lệnh sẽ không làm việc trong các trường hợp sau. Ví dụ:
Ví dụ: "git diff <one-tree>" (đại diện cho cách phân biệt phần của cây công việc bạn đang hiện tại ở với cây đã cho) sẽ không thành công.
Lưu ý: điều này không giống như "git diff", điều này cũng giống với chỉ mục.
Với các lệnh này (và các lệnh khác bị lỗi khi bạn chạy mà không cần GIT_DIR bên ngoài cây công việc), bạn thực sự được mong đợi là trong thư mục con mà bạn quan tâm. .

1

Không, không thể có từ xa $ GIT_DIR (cũng không thể có kho lưu trữ từ xa trong .git/objects/info/alternates). Git không làm việc theo cách này.

2

Tôi sẽ đề xuất rằng nếu bạn đang đặt câu hỏi này, bạn có thể đang cố gắng tạo sự cố để giải quyết. Chỉ cần suy nghĩ về lý do tại sao bạn sẽ cần phải có một kho git số ít người có thể đọc và ghi trực tiếp từ máy từ xa của riêng họ, và thử thêm chúng vào câu hỏi, bởi vì nó có vẻ cho tất cả thế giới bạn đang cố gắng sử dụng Git như SVN. Và rằng sẽ kết thúc trong đau đớn.

Đối với người mới bắt đầu, nếu bạn không muốn thực hiện một gương sâu hoàn toàn chỉ dành riêng cho việc tạo ra một bản vá cho thượng nguồn, hãy chắc lưu ý:

--depth <depth>
Tạo một bản sao cạn có tiền sử cắt ngắn để số lượng bản sửa đổi được chỉ định. Kho lưu trữ cạn có một số giới hạn (bạn không thể sao chép hoặc lấy từ nó, cũng không được đẩy từ hoặc vào nó), nhưng đủ nếu bạn chỉ quan tâm đến lịch sử gần đây của một dự án lớn với lịch sử lâu dài là và muốn gửi bản sửa lỗi dưới dạng bản vá. (git help clone)

+1

Nó không phải là không hợp lý. Một lĩnh vực mà Git đấu tranh là với rất nhiều tập tin rất lớn với rất nhiều thay đổi lịch sử. Đó là, thư mục .git/là rất lớn - lớn hơn nhiều (có thể) so với bản sao làm việc. Ví dụ: .git có thể không vừa với ổ cứng máy tính xách tay nhưng có thể bản sao làm việc. Ngoài ra, áp phích không bao giờ đề cập đến việc chia sẻ kho lưu trữ từ xa (đó sẽ là một vấn đề) –

+0

Tôi phải đồng ý với @Pat Notz. Tôi lo lắng rằng bạn đang đổ xô đến phán quyết rằng đây là một vấn đề "X Y". Hãy nhớ rằng, chỉ vì bạn không thể tưởng tượng một trường hợp sử dụng không có nghĩa là nó không tồn tại. Nhưng câu trả lời của bạn là khá darn hữu ích, cho thực tế là Git chỉ không hỗ trợ tính năng này. –

2

Giống như những người khác đã lưu ý, Git không được viết để làm việc theo cách này. Tuy nhiên, tôi nghĩ rằng bạn có thể có thư mục .git của bạn trên một mạng gắn kết. Có lẽ bạn có thể gắn kết máy chủ từ xa dưới dạng hệ thống tệp như NFS hoặc sshfs. Đó không phải là chung như bạn có thể thích nhưng nó có thể có thể làm việc cho một số tình huống.

1

Giải pháp có thể (ngốn, nhưng chức năng): gắn từ xa thư mục bạn muốn làm việc và liên kết mềm thư mục .git của bạn với điểm gắn kết.

Các vấn đề liên quan