1. 程式人生 > 實用技巧 >Git 區域網版本管理

Git 區域網版本管理

https://blog.csdn.net/github_36878269/article/details/80967388

遠端訪問子目錄:總的根倉庫下通常包含多個專案的版本庫,因此在關聯遠端庫時會涉及到子目錄的訪問,方式應為”D:\RootRep\\subRep“.

區域網中另一臺電腦配置及提交:

1、對映網路驅動器

  直接將遠端管理倉庫對映為根目錄,上例中subRep對映為"P:"。

2、將本地倉庫關聯到遠端倉庫

  git remote add oriRep P:

3、正常新增、提交本地檔案到本地倉庫

  依次git add .以及git commit

4、提到到遠端倉庫。這一部分問題較多。截圖記錄

  4.1、第一次嘗試提交:git pull oriRep master。被拒絕,因為遠端倉庫中已經有檔案,而本地倉庫中檔案與其不同,應先pull到本地之後再進行提交。

  

  4.2、pull遠端倉庫內容到本地:git pull oriRep master。失敗,refusing to merge unrelated histories,原因是遠端倉庫和本地倉庫的commit沒有相同項,git認為是寫到錯誤的版本庫,因此拒絕提交。如果開發者確定是這個倉庫,就可以使用 --allow-unrelated-histories來允許。(同理在Push過程中也可以新增此後綴)

  4.3、允許後重新嘗試push,結果發現仍然被拒絕。提示pull之後再解決。(網路查詢原因解釋是遠端和本地版本之間存在衝突,但是仍然按照提示重新pull一遍到本地)

  

  4.4、再次pull遠端程式碼,然而在此過程中給出了新的提示,存在未合併的衝突。

  

  4.5、檢視並解決衝突。

  

  4.6、衝突解決後,再次提交本地倉庫(add and commit)。並再次嘗試push到遠端倉庫,結果仍然失敗:refusing to update checked out branch: refs/heads/master

  

  查詢原因,由於git預設拒絕了push操作,可能是因為遠端倉庫在建立時使用了init而導致,最好使用git --bare init(http://blog.haohtml.com/archives/12265)。該問題的解決方案為在.git/config檔案後面新增如下程式碼:

  [receive]
  denyCurrentBranch = ignore

  4.7、再次Push,結果出現寫檔案被拒絕的錯誤,Permission denied。網路查詢關鍵字,發現可能出現write、create等,其原因應該一致,由於存在多個執行的git bash,導致許可權混亂。因此關掉其它未工作的git bash視窗即可。

  

 4.8、第四次push,終於成功。

  

問題較多,Git學習不繫統導致,然而最快的方式仍然是邊用邊學邊總結。