我有一個 Gitlab 倉庫,它有一個非常大的主分支。我只想使用 repo 中的一個檔案夾,所以我創建了一個分支并洗掉了我想使用的檔案夾以外的所有內容。然后,我使用部署令牌(具有完全權限)和分支標志克隆了分支以指定分支:
git clone --branch my_branch https://oauth2:[MY_TOKEN]@gitlab.com/my-repo.git ./save_location
這很好,我克隆 repo 完全沒有問題。如果我想獲得推送到 master 分支的檔案夾的任何更新,我可以將 master 拉入我的分支,并設定-X theirs標志。我檢查了 git 檔案,在設定了分支標志的情況下進行克隆時,repo 仍會跟蹤所有其他分支,因此此拉取仍按預期作業。所以這是命令:
git pull origin master -s recursive -X theirs
這似乎很簡單,但嘗試拉動會出現以下錯誤:
* branch master -> FETCH_HEAD
Committer identity unknown
*** Please tell me who you are.
Run
git config --global user.email "[email protected]"
git config --global user.name "Your Name"
to set your account's default identity.
如果我使用部署令牌來訪問存盤庫,并且該令牌具有完全權限,那么為什么我仍然被要求提供身份?如何在不配置身份的情況下解決此問題?我想確保這是一個完全匿名的系統,不依賴于帳戶。
uj5u.com熱心網友回復:
您得到的提示是因為您正在進行合并提交,并且 Git 需要一個提交者身份才能將其放入提交中。 user.name是個人姓名,而不是用戶名,并且user.email是電子郵件。這些與您在 GitLab 上的帳戶無關,與身份驗證無關,并且純粹是在本地設定的,但是為了創建提交,您必須設定它們(或使用不同的方法指定它們,例如環境變數)。
您可以在不設定作者或提交者身份的情況下作業,前提是您不創建提交,但如果您創建提交,則必須指定一些內容。如果您喜歡使用無效的電子郵件地址(例如,[email protected]),您可以指定一個機器帳戶。如果這是一個腳本,你不想依靠改變本地配置,您可以使用環境變數GIT_AUTHOR_NAME,并GIT_AUTHOR_EMAIL和他們同行的提交者從環境中指定的值。該git commit手冊介紹了這些變數及其使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/380599.html
上一篇:使用VSCodeUI創建拉取請求
