github為InfiniSynapse Docker提PR過程留檔@Windows10

為InfiniSynapse Docker提了一個PR:修改阿里源為清華源,并不再安裝PPA。 by skywalk163 · Pull Request #1 · chaozwn/infini_docker

整體操作

提PR的前置動作

  1. 先fork要提PR的項目
  2. git clone到本地
  3. 用VSCode修改代碼

提交PR

git add .

git commit -m "簡短說明本次PR更改“

git push?

?

看起來很簡單,但是git push的時候需要身份認證,可以選用戶名、密碼登錄,token認證等。反正因為安全問題,以前很簡單的操作,現在都不太簡單了.....

具體操作:

E:\work>git clone https://github.com/skywalk163/infini_docker
Cloning into 'infini_docker'...
remote: Enumerating objects: 623, done.
remote: Counting objects: 100% (623/623), done.
remote: Compressing objects: 100% (543/543), done.
Rremote: Total 623 (delta 101), reused 588 (delta 66), pack-reused 0 (from 0)
Receiving objects: 100% (623/623), 32.09 MiB | 9.46 MiB/s, done.
Resolving deltas: 100% (101/101), done.E:\work>cd infini_dockerE:\work\infini_docker>git add .E:\work\infini_docker>git commit -m "修改阿里源為清華源,并不再安裝PPA。"
Author identity unknown*** Please tell me who you are.Rungit config --global user.email "you@example.com"git config --global user.name "Your Name"to set your account's default identity.
Omit --global to set the identity only in this repository.fatal: unable to auto-detect email address (got 'Admin@DESKTOP-9C5AU1.(none)')E:\work\infini_docker>git config --global user.email xxxx@qq.comE:\work\infini_docker>git config --global user.name skywalk163E:\work\infini_docker>git commit -m "修改阿里源為清華源,并不再安裝PPA。"
[main 00ffff7] 修改阿里源為清華源,并不再安裝PPA。2 files changed, 11 insertions(+), 15 deletions(-)E:\work\infini_docker>git push
info: please complete authentication in your browser...E:\work\infini_docker>git push
fatal: 響應狀態代碼不指示成功: 401 (Unauthorized)。
Username for 'https://github.com': skywalk163
Password for 'https://skywalk163@github.com':E:\work\infini_docker>git push
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 24 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (7/7), 676 bytes | 112.00 KiB/s, done.
Total 7 (delta 3), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
To https://github.com/skywalk163/infini_docker2f1619a..00ffff7  main -> main

出現的問題就是:提交PR的時候,我用了token,結果還讓我輸入用戶名和密碼,想不明白。

因為密碼老忘記,用了token還讓我用密碼,最終使用的方法是點它的鏈接,登錄github后,輸入它提示的一串文字進行的身份驗證。

提交PR的時候,我用了token,結果還讓我輸入用戶名和密碼,這對頭嗎?

我要是輸入用戶名、密碼,我還整token干什么?

文心4.5回答:

在提交 PR(Pull Request)時遇到使用 Token 仍被要求輸入用戶名和密碼的情況,確實令人困惑,因為 Token 本身的設計初衷就是替代傳統用戶名/密碼的認證方式。以下是問題的原因分析、解決方案及最佳實踐建議:


?一、為什么會出現這種情況??

  1. ?Git 客戶端或命令行工具的默認行為?

    • ?Git 的緩存機制?:部分 Git 客戶端(如舊版 Git)或 IDE(如 VS Code、IntelliJ)可能未正確識別 Token,仍嘗試使用用戶名/密碼的認證方式。
    • ?緩存的憑據沖突?:如果之前存儲過用戶名/密碼,Git 可能會優先使用緩存的憑據,而非 Token。
  2. ?認證協議不匹配?

    • ?HTTP 協議的默認行為?:使用?http://?或?https://?協議的 Git 倉庫地址時,Git 會觸發基本認證(Basic Auth),要求用戶名和密碼。Token 需要通過特定的字段(如?Authorization?頭)傳遞。
    • ?未正確配置 Token 的傳遞方式?:Token 可能未被正確附加到請求頭中。
  3. ?Token 格式或權限問題?

    • ?Token 格式錯誤?:Token 可能是無效的(如過期、未正確生成或復制錯誤)。
    • ?Token 權限不足?:Token 可能未被授予倉庫的寫入權限(如未勾選?repo?范圍的權限)。
  4. ?服務端配置或限制?

    • ?代碼托管平臺的策略?:某些平臺(如 GitHub、GitLab)可能對 Token 的使用有特殊要求(如需通過?Personal Access Token?或?Fine-grained Token?配置)。
    • ?企業版或私有化部署的限制?:企業版 GitLab 或私有化部署的 Gitea 可能對 Token 的認證方式有額外要求。

?二、解決方案?

?1. 確保使用正確的 URL 和 Token 格式?
  • ?修改遠程倉庫 URL?:
    將遠程倉庫的 URL 從?http://?或?https://?改為包含 Token 的格式:
     

    bashCopy Code

    git remote set-url origin https://<TOKEN>@github.com/username/repo.git

    • ?示例?:
       

      bashCopy Code

      git remote set-url origin https://ghp_1234567890abcdef1234567890abcdef12345678@github.com/username/repo.git

    • ?注意?:Token 會直接暴露在 URL 中(不安全,僅限臨時測試),推薦使用以下更安全的方式。
?2. 使用 Git 憑據管理器?
  • ?配置 Git 憑據緩存?:
    將 Token 存儲為 Git 的憑據,避免每次操作都輸入:

     

    bashCopy Code

    git config --global credential.helper store # 永久存儲(明文,不安全) # 或 git config --global credential.helper cache # 臨時緩存(默認 15 分鐘)

    • ?首次操作時輸入 Token?:
      下次操作時 Git 會自動使用緩存的 Token。
  • ?使用系統憑據管理器?:
    在 Windows 上使用?git-credential-manager,在 macOS/Linux 上使用?libsecret?或?gnome-keyring

?3. 檢查 Token 的權限和有效性?
  • ?重新生成 Token?:

    • ?GitHub?:
      1. 進入?Personal Access Tokens?頁面。
      2. 生成新的 Token,勾選?repo?權限(或根據需求選擇其他權限)。
      3. 復制 Token(僅顯示一次)。
    • ?GitLab?:
      1. 進入?Personal Access Tokens?頁面。
      2. 生成新的 Token,勾選?api?和?write_repository?權限。
  • ?驗證 Token 的有效性?:
    使用?curl?測試 Token 是否能訪問倉庫:

     

    bashCopy Code

    curl -H "Authorization: token <TOKEN>" https://api.github.com/repos/username/repo

    • 如果返回倉庫信息,說明 Token 有效。
?4. 更新 Git 客戶端或 IDE 配置?
  • ?更新 Git 版本?:
    舊版 Git 可能存在 Token 認證的 Bug,建議升級到最新版本:

     

    bashCopy Code

    git --version # 檢查版本 # 升級方式(根據系統): # Ubuntu: sudo apt update && sudo apt upgrade git # macOS: brew upgrade git # Windows: 下載最新版 Git for Windows

  • ?檢查 IDE 的 Git 配置?:

    • ?VS Code?:
      1. 打開設置(Ctrl + ,)。
      2. 搜索?Git: Authentication,確保未勾選?Use Built-in Git?或已正確配置憑據。
    • ?IntelliJ?:
      1. 進入?File > Settings > Version Control > GitHub
      2. 選擇?Token?認證方式,并輸入 Token。
?5. 檢查服務端配置?
  • ?GitHub/GitLab 的特殊要求?:

    • ?GitHub?:
      • 確保 Token 未被禁用或撤銷。
      • 如果使用企業版 GitHub,可能需要聯系管理員配置權限。
    • ?GitLab?:
      • 檢查 Token 的過期時間(如設置了過期時間)。
      • 確保 Token 的 IP 白名單未限制當前 IP。
  • ?私有化部署的 Git 服務器?:

    • 檢查服務器的認證配置(如是否支持 Token 認證)。
    • 聯系管理員確認是否需要額外的認證頭或配置。

?三、最佳實踐建議?

  1. ?避免將 Token 暴露在 URL 中?

    • 使用 Git 憑據管理器或環境變量存儲 Token,而非直接寫入 URL。
    • 示例(使用環境變量):
       

      bashCopy Code

      export GIT_TOKEN=ghp_1234567890abcdef1234567890abcdef12345678 git remote set-url origin https://${GIT_TOKEN}@github.com/username/repo.git

  2. ?使用 Fine-grained Token(GitHub)?

    • GitHub 推薦使用?Fine-grained Personal Access Tokens,可精確控制 Token 的權限范圍。
  3. ?定期輪換 Token?

    • 設置 Token 的過期時間(如 90 天),并定期更換,降低泄露風險。
  4. ?使用 SSH 替代 HTTPS?

    • 如果可能,使用 SSH 協議代替 HTTPS,避免 Token 的認證問題:
       

      bashCopy Code

      git remote set-url origin git@github.com:username/repo.git

    • 生成 SSH Key 并添加到 GitHub/GitLab:
       

      bashCopy Code

      ssh-keygen -t ed25519 -C "your_email@example.com" cat ~/.ssh/id_ed25519.pub # 復制公鑰到 GitHub/GitLab

  5. ?監控 Token 的使用情況?

    • 在 GitHub/GitLab 中查看 Token 的使用日志,確保無異常操作。

?四、總結?

  • ?問題本質?:Token 仍被要求輸入用戶名/密碼,通常是由于 Git 客戶端未正確使用 Token 或 Token 配置存在問題。
  • ?解決方案?:
    1. 確保使用正確的 URL 和 Token 格式。
    2. 配置 Git 憑據管理器存儲 Token。
    3. 檢查 Token 的權限和有效性。
    4. 更新 Git 客戶端或 IDE 配置。
    5. 檢查服務端配置(如 GitHub/GitLab 的特殊要求)。
  • ?最佳實踐?:避免將 Token 暴露在 URL 中,使用 Fine-grained Token,定期輪換 Token,或改用 SSH 協議。

通過以上步驟,你應該能夠解決 Token 認證的問題,并安全地提交 PR。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/85829.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/85829.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/85829.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

搭建加解密網站遇到的問題

本機向云服務器傳輸文件 用winscp 服務器在安裝 SSH 服務時自動生成密鑰對&#xff08;公鑰私鑰&#xff09; 為什么要有指紋驗證&#xff1f; 防止中間人攻擊&#xff08;Man-in-the-Middle&#xff09; 指紋驗證打破這個攻擊鏈&#xff1a; 小問題 安裝python時 ./confi…

Docker高級管理--容器通信技術與數據持久化

第一節&#xff1a;容器通信技術 一&#xff1a;Docker 容器的網絡模式 當項目大規模使用 Docker 時&#xff0c;容器通信的問題也就產生了。要解決容器通信問題&#xff0c;必須先了解很多關于網絡的知識。Docker 的網絡模式非常豐富&#xff0c;可以滿足不同容器的通信要求&…

jsons.top工具之數組交集、去重

作為一名程序員&#xff0c;一款高效的 在線轉換工具 &#xff08;在線時間戳轉換 計算器 字節單位轉換 json格式化&#xff09;必不可少&#xff01;https://jsons.top 用js實現一個輕量級的集合運算工具&#xff0c;可以對數組、集合去重、求交并差集&#xff0c;找出兩個集…

Vue3 + Tailwind CSS 后臺管理系統教程

Vue3 搭配 Tailwind CSS 是構建現代后臺管理系統的絕佳組合。Vue3 提供了高效的響應式框架&#xff0c;而 Tailwind CSS 則讓樣式編寫變得快速且靈活。下面我將分步驟教你如何創建一個功能完整的后臺管理系統。 第 1 步&#xff1a;創建項目 首先&#xff0c;我們需要使用 Vit…

ComfyUI遭“Pickai“C++后門攻擊,全球700余臺AI圖像生成服務器淪陷

大規模AI基礎設施遭遇定向攻擊 網絡安全研究機構XLab近日發現針對ComfyUI框架的活躍攻擊活動。ComfyUI是當前廣泛用于部署大型AI圖像生成模型的開源框架。攻擊者通過該框架漏洞植入名為Pickai的C后門程序&#xff0c;已導致全球近700臺服務器失陷。中國國家網絡安全通報中心于…

Unity_VR_如何用鍵鼠模擬VR輸入_PICO項目配置

文章目錄 [TOC] 一、創建項目1.直接創建VR核心模板&#xff08;簡單&#xff09;2.創建3D核心模板導入XR包&#xff08;并配置pico&#xff09;&#xff08;1&#xff09;創建項目&#xff08;2&#xff09;導入PICO的SDK&#xff08;3&#xff09;啟用 PICO XR 插件&#xff0…

站點天下--網站在線和SSL過期監控的可靠助手

簡介 網站突然訪問不了、HTTPS證書到期&#xff0c;如果不能及時發現&#xff0c;將蒙受損失~ 站點天下提供應用在線狀態監控和SSL證書到期監控&#xff1a; 若訪問不了或SSL證書即將到期&#xff0c;則立即發郵件通知&#xff01;可以在線查看應用的在線狀態和SSL證書到期時…

React setState原理

異步更新 原因 1設置為異步提升性能 如果setState每次調用直接執行&#xff0c;會造成 render 函數被頻繁執行 &#xff0c;頁面重新被渲染 解決&#xff1a;異步批處理 2如果render函數未執行時&#xff0c;保證props和state一致性 拿到最新state的方法 法一:setState&…

漢代大模型:歷史鏡像與智能重構的深度對話

引言&#xff1a;當歷史遇見人工智能 一件漢代陶俑的三維模型正通過增強現實技術向觀眾演繹農耕場景。這個看似尋常的文物活化案例&#xff0c;實則蘊含著人工智能與歷史學交叉領域的前沿探索——漢代大模型。作為連接過去與未來的智能載體&#xff0c;漢代大模型不僅重構了我…

es向量檢索里的efSearchc參數是干嘛用的

在Elasticsearch的向量檢索中&#xff0c;ef_search&#xff08;或efSearch&#xff09;是控制HNSW近似最近鄰&#xff08;ANN&#xff09;搜索精度與性能平衡的關鍵參數&#xff0c;其作用機制和影響如下&#xff1a; &#x1f6e0;? 一、核心作用 ef_search 限制底層圖遍歷…

Mac SSH終端操作工具 SecureCRT

SecureCRT Mac 是一款SSH終端工具&#xff0c;為計算專業人士提供高級會話管理工具。 也是一個功能強大且值得信賴的基于GUI的SHH和Telnet客戶端&#xff0c;以及旨在提高工作效率并簡化重復任務的終端仿真器。 借助SecureCRT mac版的幫助&#xff0c;您可以通過對ANSI&#…

UE5關卡快照

關卡快照&#xff08;Level Snapshots&#xff09; 使你能夠在關卡的 世界大綱視圖&#xff08;World Outliner&#xff09; 中保存 Actors 的特定配置&#xff0c;并立即將場景恢復到該狀態。這樣可以大幅簡化復雜的設置&#xff0c;并避免對不同場景同一關卡的多個變體進行復…

Maven 或 Gradle 下載和添加 jar 文件的步驟

使用 Maven 或 Gradle 來自動下載和添加 jar 文件是管理 Java 項目依賴的最佳方式。 以下是如何使用 Maven 和 Gradle 來自動下載和添加 jar 文件的步驟&#xff1a; 使用 Maven # 創建一個 Maven 項目&#xff1a; mvn archetype:generate -DgroupIdcom.example -Dartifact…

JVM對象創建全流程解析

一、JVM對象創建流程 Ⅰ、類加載檢查——JVM創建對象時先檢查類是否加載 在虛擬機遇到new指令時&#xff0c;比如new關鍵字、對象克隆、對象序列化時&#xff0c;如下字節碼 0: new #2 // class com/example/demo/Calculate檢查指令的參數&#x…

深度學習從入門到精通:PyTorch實戰與核心原理詳解

掌握深度學習核心概念&#xff0c;玩轉PyTorch框架&#xff0c;從理論到實戰一站式學習指南 &#x1f680; 一、深度學習全景圖 &#x1f31f; 人工智能金字塔 &#x1f50d; 深度學習核心優勢 ??優勢????劣勢????適用場景??自動特征提取依賴大數據圖像識別&…

計算機網絡期末 物理層

目錄 數據通信基礎(理解) 傳輸介質(熟悉) 基帶傳輸(熟悉) 數字編碼(熟悉) 頻帶傳輸與調制解調(理解) 多路復用技術(了解) 物理層設備與極限速率(掌握) 數據通信基礎(理解) 一堆概念 通信的類型 同步技術 傳輸介質(熟悉) 有線介質 同軸電纜 雙絞線 光纖 無線介質 無線電…

力扣-139.單詞拆分

題目描述 給你一個字符串 s 和一個字符串列表 wordDict 作為字典。如果可以利用字典中出現的一個或多個單詞拼接出 s 則返回 true。 注意&#xff1a;不要求字典中出現的單詞全部都使用&#xff0c;并且字典中的單詞可以重復使用。 class Solution {public boolean wordBrea…

LeetCode-1679. K 和數對的最大數目

給你一個整數數組 nums 和一個整數 k 。 每一步操作中&#xff0c;你需要從數組中選出和為 k 的兩個整數&#xff0c;并將它們移出數組。 返回你可以對數組執行的最大操作數。 地址&#xff1a;https://leetcode.cn/problems/max-number-of-k-sum-pairs/description/?envTyp…

相機camera開發之差異對比核查四:測試機和對比機的Camera動態參數差異對比及關鍵字

【關注我,后續持續新增專題博文,謝謝!!!】 上一篇我們講了: 這一篇我們開始講: 目錄 一、背景 二、:Camera動態參數差異 2.1:動態參數差異核查項 2.2 :動態參數差異核查關鍵字 2.3 :前置普通拍照動態參數 2.4 :后置普通拍照動態參數 2.5 :后置人像模式…

ModbusTCP轉Profibus網關在配料系統中的配置實踐

在現代飼料企業的生產過程中&#xff0c;自動化技術的應用日益廣泛。其中&#xff0c;ModbusTCP和Profibus是兩種常見的工業通信協議&#xff0c;它們在數據采集和設備控制方面發揮著重要作用。然而&#xff0c;由于這兩種協議在技術上的差異&#xff0c;直接互通往往存在困難。…