網站首頁 編程語言 正文
1、為什么要創建用戶簽名
作為版本控制系統的客戶端,每臺客戶機對版本庫的所有提交操作,都需要注明操作者的身份。所以客戶機首先需要進行自我身份的注冊,即創建用戶。Git要求“用戶名和Email"這兩樣信息是必不可少的。
也就是說再讓Git干活之前,必須得做一個最小配置,要把參與項目開發的工作人員的user.name
以及user.email
進行設置。
配置簽名的作用:只是區分不同開發人員的身份。
2、為什么要在Git中配置這些信息
我們每一次的變更,在哪個時間點,是誰做出的變更,這兩個信息是跟著某個變更的信息捆綁在一起。同時我們在做code review
(代碼審查)的時候,每一次的變更,如果帶上了用戶的email
地址,那么評審的人員在平臺上面指出了你哪個文件、哪個地方有問題之后。
那我們Git的版本管控的web
系統,它就自動的會把變更者的email
取出來,然后發個郵件給變更的人。所以你變更的信息中的用戶name
和email
是必須配置起來的。
假使大家在用Git的時候如果忘了做這個配置,那后期你在Git做過變更提交的時候,他會有一長串的提示信息,告訴你必須做相關的配置。如下:
*** Please tell me who you are. Run git 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 'L@DESKTOP-T2AI2SU.(none)')
3、創建用戶簽名的方式
Git具有三種不同的方式創建用戶簽名,會產生三種不同作用域的用戶。
這三種創建方式的用戶信息,會寫到三個不同位置的配置文件中。
這三種用戶的創建均需要使用git config
命令,只不過使用的選項不同。
這三個級別為local
、global
、system
。說明如下:
- 項目級別/倉庫級別(local):
文件位置:該文件位于當前倉庫下的.git
目錄中,文件名為config
。
作用:是指對某一個Git倉庫生效的。也就是說我們在使用Git管理文件系統的時候,它不是整個操作系統級別的管理。
比如他是在某一個地方建了一個Git的倉庫,相當于是獨立的一個項目管控的一個區域。
如果設置了local
的話,Git所配置的這些信息(user.name
,usere.mail
),只會針對當前你工作的倉庫有效。如果說切換到另外一個Git的倉庫,那local范圍的配置值就不再生效了。
- 用戶級別/全局級別(global):
文件位置:在計算機中系統盤的個人用戶目錄中,如:C:\Users\L\.gitconfig
。注意,如果沒有配置過用戶級別級別的配置信息,是沒有該文件的,配置一次就會自動生成的。
作用:比如說我的電腦中有十個Git倉庫,global
級別的這些配置,對這十個倉庫都是有效的,也就是對當前用戶對本地的所有倉庫都有效。
所以有些時候,很可能為了提高效率,就可以用global
范圍進行配置用戶簽名,就沒必要登錄到一個一個的倉庫里面做這種配置,所以工作當中global
的方式是非常常用的。
(即:表示授權一個用戶對該計算機中所有的倉庫都有權操作)
- 系統級別(system):
文件位置:文件在本地Git的安裝目錄下,...\etc\gitconfig
文件中。
作用:表示只要登陸了該操作系統的用戶,就對系統中的所有Git倉庫有操作權。
它是對系統所有登錄的用戶都有效,這個范圍不常用(基本不用)。
提示:這三種創建用戶簽名的作用域由大到小依次是:系統用戶,全局用戶與本地庫用戶。
在多種用戶都進行了創建的前提下,小范圍用戶簽名會覆蓋大范圍用戶簽名,即默認會以小范圍用戶來操作Git。
4、總結
一般在新的Git版本控制系統上,我們都需要先配置下自己的Git工作環境。配置工作只需一次,以后升級時還會沿用現在的配置。當然,如果需要,你隨時可以用相同的命令修改已有的配置。
個人的用戶名稱和電子郵件地址,這兩條配置很重要,每次Git提交時都會引用這兩條信息,說明是誰提交了更新,所以會隨更新內容起被永久納入版本歷史記錄。
每個機器都必須自報家門,就是你的簽名(名字和Email地址)。你也許會擔心,如果有人故意冒充別人怎么辦?這個不必擔心,首先我們相信大家都是善良無知的群眾,其次,真的有冒充的也是有辦法可查的。
原文鏈接:https://www.cnblogs.com/liuyuelinfighting/p/16158712.html
相關推薦
- 2022-06-30 C語言超詳細講解結構體與聯合體的使用_C 語言
- 2022-06-19 Go中Writer和Reader接口的使用入門_Golang
- 2022-11-22 Python實例方法與類方法和靜態方法介紹與區別分析_python
- 2022-08-30 C語言中定義與聲明有哪些區別_C 語言
- 2022-09-13 Android實現簡單旋轉動畫_Android
- 2022-09-29 React實現下拉框的key,value的值同時傳送_React
- 2022-05-12 前端在線預覽 tiff 格式的圖片
- 2022-05-21 ASP.NET?MVC中_ViewStart.cshtml作用介紹_基礎應用
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支