2012-02-06 94 views
1

在混帳混帳存儲庫,如何克隆repositroy與只讀選項另一個新的資料庫有沒有辦法做到it.are有任何開關要做到這一點具有隻讀權限

git clone base-url new-url-with read only access 

我不想用chmod命令執行

+3

chmod有什麼問題? – Jasper 2012-02-06 11:36:59

+0

我想知道開關。因爲我知道它可以使用chmod命令 – Rajeev 2012-02-06 11:43:30

+0

完成我認爲git只是決定不重新發明輪子。您可以通過正確設置文件系統權限來創建一個只讀存儲庫,因此他們只是確保使用權限可以正常工作,而不是使自己的版本成爲只讀存儲庫。 – Jasper 2012-02-06 11:49:10

回答

3

chmod命令是你的朋友,同樣也是umask命令。

Git本身沒有任何訪問控制,因爲操作系統和/或訪問協議已經有一個,所以它會是多餘的。實際上,訪問git存儲庫可能不涉及git(它甚至可能被拉或甚至被rsync推),所以git無法控制訪問。

3

不完全是結帳開關,但您可以通過設置pre-commit hook使用git的方式阻止它。

但是,掛鉤可能會被--no-verify選項繞過,因此這種方式不如使用chmod設置權限那樣安全。

設置掛鉤是很容易的:

  1. 創建您的回購.git/hooks下叫pre-commit文件應該只讀
  2. 該文件的內容很簡單:
    #!/bin/bash
    exit 1
  3. 如果現在正在啓動提交,則會調用該掛鉤。該腳本始終返回1,並且提交被中止。摘自git book

    從此腳本中退出非零狀態導致'git-commit'中止。

簡單和容易。雖然它可以被繞過,但它應該足以防止意外的提交。

如果您確實需要更安全的版本,請致電chmod作爲recommended通過Jan Hudec