使用Git進行版本控制,不同的項目怎麼設置不同的提交用戶名和郵箱呢?

来源:https://www.cnblogs.com/LucasMeng/archive/2023/03/11/17205952.html
-Advertisement-
Play Games

1.全局設置用戶名和郵箱 因為平時除了開發公司項目還會寫自己的項目或者去維護開源項目,一般情況下,公司會要求提交代碼時使用自己的真名或者拼音和公司郵箱,以前就只會設置全局用戶名或郵箱如下 git config --global user.name "username" git config --gl ...


1.全局設置用戶名和郵箱

因為平時除了開發公司項目還會寫自己的項目或者去維護開源項目,一般情況下,公司會要求提交代碼時使用自己的真名或者拼音和公司郵箱,以前就只會設置全局用戶名或郵箱如下

git config --global user.name "username"
git config --global user.email "[email protected]"

但是在維護非公司的項目時,肯定不能暴露自己的姓名和郵箱啊?所以我們面臨這個問題:不同的項目怎麼設置不同的提交用戶名和郵箱呢?

2.配置單個項目提交用戶名和郵箱

其實就是不直接使用全局配置的用戶名和郵箱,而是對某個項目單獨配置用戶名和郵箱。在當前項目下打開Git命令行,配置如下

git config user.name "username"
git config user.email "[email protected]"

之後可以打開 .git/config 文件看配置生效如下

[user]
        name = username
        email = [email protected]

3.批量配置項目的提交用戶名和郵箱

當有多個項目需要配置Git提交信息時,一個一個配置麻煩而且容易疏漏,那就可以使用git的includeIf配置一次性給多個項目配置提交用戶名和郵箱,來實現在某文件夾下的所有git項目統一使用同一個git配置文件。

  1. 首先將個人維護的項目,統一放到同一個路徑下。比如:D:\projects
    首先將個人維護的項目,統一放到同一個路徑下
  2. 創建一個.gitconfig文件,配置信息:
[user]
        name = username
        email = [email protected]
  1. 修改Git的用戶配置文件 .gitconfig,這個配置文件路徑一般都是 C:\Users\用戶名\.gitconfig 。添加配置信息如下
# 配置demo項目
[includeIf "gitdir/i:~/projects/"]
        path = ~/.gitconfig

配置後所有在 projects 這個路徑下的項目的配置信息就直接使用 projects/.gitconfig 中的配置了。

註:配置文件優先順序及路徑基本語法

  • Git支持多級配置,分別是system(系統級)、global(用戶級)、local(項目級)和worktree(工作區級)
  • 配置優先順序: worktree > local > global > system
system系統級(安裝路徑/etc/gitconfig): 系統級配置文件,對系統中所有用戶都普遍適用的配置。使用 git config --system讀寫的就是這個文件。

global用戶級(C:/Users/用戶名/.gitconfig): 用戶級配置文件,用戶目錄下的配置文件只適用於該用戶。使用 git config --global讀寫的就是這個文件。

local項目級(某倉庫的本地路徑/.git/config): 項目級配置文件,當前項目的 git倉庫目錄中的配置文件(也就是工作目錄中的 .git/config 文件),這裡的配置僅僅針對當前項目有效。使用 git config --local或 省略 local參數,讀寫的就是這個文件。

worktree工作區級: 工作區級配置,此配置僅僅針對當前工作區有效。使用 git config --worktree進行配置。

每一個級別的配置都會覆蓋上層的相同配置,所以 .git/config 里的配置會覆蓋 /etc/gitconfig 中的同名變數。
  • 基本語法
在2017年,git新發佈的版本2.13.0包含了一個新的功能includeIf配置,可以把匹配的路徑使用對應的配置用戶名和郵箱;

"條件類型:匹配模式" 是 includeIf 的條件;只有當條件成立時,才會包含 path 選項指定的配置文件;

條件類型 和 匹配模式 用 : 分隔;

條件類型 共有以下幾種 gitdir、gitdir/i、onbranch;

	gitdir、gitdir/i: 路徑匹配模式,表示 如果 當前 git倉庫的 .git 目錄的位置 符合 路徑匹配模式, 就載入對應的配置文件;(gitdir/i表示 匹配模式忽略大小寫)
	.git 目錄的位置可能是 git 自動找到的 或是 $GIT_DIR 環境變數的值;
	onbranch: 分支匹配模式, 表示 如果我們位於當前檢出的分支名稱 與 分支匹配模式 匹配的工作樹中,就載入對應的配置文件;

匹配模式 採用標準的 glob 通配符 再加上 表示任務路徑的通配符 **;

path 用於指定配置文件的路徑;

可以通過寫多個 path 來表示包含多個配置文件。

如有錯漏之處,敬請指正。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 【橋接設計模式詳解】Java/JS/Go/Python/TS不同語言實現 簡介 橋接模式(Bridge Pattern)是一種結構型設計模式,它將一個大類或一系列緊密相關的類拆分為抽象和實現兩個獨立的層次結構,來實現二者的解耦。參與橋接的介面是穩定的,用戶可以擴展和修改橋接中的類,但是不能改變介面。 ...
  • 在Python 中連接MSSQL,MySQL,SQLite,Redis,ElasticSearch,Mongodb,PostgreSQL,Oracle,RabbitMQ 等資料庫/中間件的方式 ...
  • 3、IOC創建對象的方法 使用無參構造創建對象,預設! 使用有參構造創建對象 下標賦值 <!--第一種 下標賦值--> <bean id="user" class="com.jan.pojo.User"> <constructor-arg index="0" value="鐘健"/> </bean> ...
  • 1、Celery的概念 Celery 是一個 基於python開發的分散式非同步消息任務隊列,通過它可以輕鬆的實現任務的非同步處理, 如果你的業務場景中需要用到非同步任務,就可以考慮使用celery, 舉幾個實例場景中可用的例子: 非同步任務:將耗時的操作任務提交給Celery去非同步執行,比如發送簡訊/郵件 ...
  • 一、基本語法元素 1.空白和註釋及語句 (1)空白: 換行符、回車符、空格鍵、水平定位鍵(Tab) 編譯器會忽略掉多餘的空白 作用:增加程式的易讀性 (2)註釋:主要作用是將代碼解釋其功能和作用,在編譯時,編譯器會直接將其丟棄,不會進入執行階段 1)// 在一行內的註釋,此種註釋是同一行內的註釋如果 ...
  • #####需求: 定義一個數組其中包含多個數字。用自己的方式最終實現,奇數放在數組的左邊,偶數放在數組的右邊。(可以創建其他數組,不必須在原數組中改變) 分析: 1.初始化一個數組,裡面既可以存儲奇數也可以存儲偶數(下麵稱這個個數組為原數組)。 2.再次定義兩個數組,一個用來存放從原數組中挑出來的奇 ...
  • VL59 根據RTL圖編寫Verilog程式 這題比較簡單,照著寫就好了。 `timescale 1ns/1ns module RTL( input clk, input rst_n, input data_in, output reg data_out ); reg data_in_reg; al ...
  • 原文鏈接:為什麼 Go 語言 struct 要使用 tags 在 Go 語言中,struct 是一種常見的數據類型,它可以用來表示覆雜的數據結構。在 struct 中,我們可以定義多個欄位,每個欄位可以有不同的類型和名稱。 除了這些基本信息之外,Go 還提供了 struct tags,它可以用來指定 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...