git填坑日誌(1)——git clone --recursive克隆包括子模塊的項目報錯

問題描述

這個問題出現的情況是,子模塊的url使用http方式獲取的情況下,在clone項目的時候,使用–recursive參數初始化子模塊或者git submodule update的時候會直接出現以下報錯:

bash: /dev/tty: No such device or address

出現原因

百度了很久,沒有看到類似的問題,最後在github上找到了一個issue讓我瞭解了這個問題出現的原因,是因爲沒有輸入用戶名和密碼,可是奇怪的是,下載子模塊的代碼的時候並沒有直接彈出輸入用戶名和密碼的地方,而是直接報錯,看issue中的回答,似乎是因爲系統認爲沒有console可以輸入密碼(待考證,待研究是否可以跳出輸入密碼框)

解決方法

我的解決方法是在本地永久緩存使用http方式獲取代碼的用戶名和密碼。

  • 找到%home%路徑
    一般是路徑是C:\Users\windows的用戶名,我是直接定位到.gitconfig文件所在的目錄了。

  • 建立.git-credentials
    在window下不能直接建立以.開頭的文件,所以我使用git bash窗口,直接touch .git-credentials,如果沒有權限的話,可以設置權限,或者去其它盤建好文件再拷貝過來。
    文件內容:
    http://你的用戶名:你的密碼@github.com
    代表的意思是通過設置好的用戶名和密碼去http://github.com獲取代碼。

  • 運行git config --global credential helper store
    “store” 模式會將憑證用明文的形式存放在磁盤中,並且永不過期。

  • 查看.gitconfig文件
    多出一段

[credential]
	helper = store
  • 重新git clone代碼(https鏈接)
    git bash重新clone代碼,發現不需要輸入密碼了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章