git修改提交的用戶名和Email

git修改提交的用戶名和Email

有時(shí)候在執(zhí)行repo upload上傳代碼的時(shí)候會(huì)出現(xiàn)

 To ssh://username@code.address.com:29442/kernel/msm
 ! [remote rejected] ltr558 -> refs/for/JB8X25_FC/IHV-LITEON-LTR-558ALS (you are not committer username@email.com)
error: failed to push some refs to 'ssh://username@code.address.com:29442/kernel/msm'
----------------------------------------------------------------------
[FAILED] kernel/         ltr558          (Upload failed)

這是因?yàn)橹癵it commit已提交的Email和現(xiàn)在正要提交的Email沖突,把它改成一致就OK了。
git commit已提交的Author信息可以通過(guò)git log查看

$git log
commit 6554439743d91d424e006734cfe7fca758b21b81
Author: username 
Date:   Wed Sep 19 16:14:20 2012 +0800
add driver of ltr558 to jb-8x25-fc
Change-Id: Ic81c54f91874be3b4366a2af9729a0251f44f40c

配置全局的用戶名和郵箱

git config --global user.name "Your Name"
git config --global user.email you@example.com

全局的通過(guò)vim ~/.gitconfig來(lái)查看

git config user.name "Your Name"
git config user.email you@example.com

局部的通過(guò)當(dāng)前路徑下的 .git/config文件來(lái)查看
也可以修改提交的用戶名和Email:

git commit --amend --author='Your Name '

[轉(zhuǎn)載]git config的運(yùn)用
本文中所演示的git操作都是在v1.7.5.4版本下進(jìn)行的蔬捷,不同的版本會(huì)有差異企巢,更老的版本有些選項(xiàng)未必支持。

當(dāng)我們安裝好git軟件包丑念,或者著手在一個(gè)新的機(jī)子上使用git的時(shí)候涡戳,我們首先需要進(jìn)行一些基本的配置工作,這個(gè)就要用到git config脯倚。

git config是用于進(jìn)行一些配置設(shè)置渔彰,有三種不同的方式來(lái)指定這些配置適用的范圍:

1) git config 
        針對(duì)一個(gè)git倉(cāng)庫(kù)
2) git config --global    針對(duì)一個(gè)用戶
3) sudo git config --system    針對(duì)一個(gè)系統(tǒng),因?yàn)槭轻槍?duì)整個(gè)系統(tǒng)的推正,所以必須使用sudo
  1. 第一種默認(rèn)當(dāng)前目錄是一個(gè)git倉(cāng)庫(kù)恍涂,假設(shè)我們有一個(gè)倉(cāng)庫(kù)叫g(shù)it_test,它所修改配置保存在git_test/.git/config文件植榕,如果當(dāng)前目錄不是一個(gè)有效的git倉(cāng)庫(kù)再沧,在執(zhí)行一些命令時(shí)會(huì)報(bào)錯(cuò),例如:

     $git config -e
     fatal: not in a git directory
    

我們來(lái)看一個(gè)簡(jiǎn)單的例子尊残,一般我們clone一個(gè)git倉(cāng)庫(kù)炒瘸,默認(rèn)都是一個(gè)工作目錄淤堵,那么對(duì)應(yīng)的配置變量 bare = false。來(lái)看一個(gè)很簡(jiǎn)單的倉(cāng)庫(kù)的config文件顷扩,cat git_test/.git/config

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true

如果我們想修改bare為false拐邪,最簡(jiǎn)單的辦法就是直接用vim打開(kāi)git_test/.git/config文件進(jìn)行修改,另一種辦法就是使用git config來(lái)修改

$git config core.bare true
$cat .git/config
[core]
    repositoryformatversion = 0
    filemode = true
    bare = true
    logallrefupdates = true

命令的格式就是 git config
. 隘截。需要注意的是我們沒(méi)有加--system和--global扎阶,那么這個(gè)修改只針對(duì)于當(dāng)前git倉(cāng)庫(kù),其它目錄的倉(cāng)庫(kù)不受影響技俐。

  1. 第2種是適用于當(dāng)前用戶乘陪,也就是說(shuō)只要是這個(gè)用戶操作任何git倉(cāng)庫(kù),那么這個(gè)配置都會(huì)生效雕擂,這種配置保存在~/.gitconfig當(dāng)中啡邑,那什么樣的配置需要放到用戶的配置文件里呢,git里一個(gè)最為重要的信息就是提交者的個(gè)人信息井赌,包括提交者的名字谤逼,還有郵箱。當(dāng)我們?cè)谟胓it提交代碼前仇穗,這個(gè)是必須要設(shè)置的流部。顯而易見(jiàn),這個(gè)配置需要放在用戶一級(jí)的配置文件里纹坐。

     $git config --global user.name "I Love You"
     $git config --global user.email "i.love.you@gmail.com"
     $cat ~/.gitconfig
     [user]
         name = I Love You
         email = i.love.you@gmail.com
    
  2. 第3種是適用于一個(gè)系統(tǒng)中所有的用戶枝冀,也就是說(shuō)這里的配置對(duì)所有用戶都生效,那什么樣的配置需要放在這里呢耘子,比如我們?cè)趫?zhí)行g(shù)it commit會(huì)彈出一個(gè)默認(rèn)的編輯器果漾,一般是vim,那作為系統(tǒng)的管理員谷誓,可以將vim設(shè)置為所有用戶默認(rèn)使用的編輯器绒障,我們來(lái)看設(shè)置的過(guò)程

     $sudo git config --system core.editor vim
     $cat /etc/gitconfig
      [core]                                                                                                                                                                       
           editor = vim
    

我們可以看到它修改的是全局的配置文件/etc/gitconfig。

總結(jié):

現(xiàn)在我們就會(huì)有一個(gè)問(wèn)題捍歪,當(dāng)我們?cè)诓煌呐渲梦募谢瑁瑢?duì)同一個(gè)變量進(jìn)行了設(shè)置,最終哪個(gè)會(huì)生效呢糙臼?或者說(shuō)誰(shuí)到底覆蓋誰(shuí)呢庐镐?先來(lái)排除一種情況,就是分屬不同的兩個(gè)git倉(cāng)庫(kù)的config文件中的配置是互不影響的变逃, 這個(gè)很好理解焚鹊。那么要討論是如果一個(gè)配置出即出現(xiàn)在/etc/gitconfig,~/.gitconfig以及git_test/.git /config這三個(gè)位置時(shí),我們又恰巧要操作git倉(cāng)庫(kù)git_test末患,那么生效的優(yōu)先級(jí)順序是(1)git_test/.git/config研叫,(2)~/.gitconfig,(3)/etc/gitconfig璧针,也就是說(shuō)如果同一個(gè)配置同時(shí)出現(xiàn)在三個(gè)文件中時(shí)嚷炉,(1)有效。

那么為什么會(huì)有這樣的情況發(fā)生呢探橱,比如我們前面的有關(guān)編輯器設(shè)置申屹,系統(tǒng)管理員為所有用戶設(shè)置了默認(rèn)的編輯器是vim,但是并不是每個(gè)用戶都習(xí)慣用vim隧膏, 有些人更青睞于功能更炫的emacs(I hate it哗讥,我剛剛接觸linux的時(shí)候上來(lái)就是用的emacs,讓我這個(gè)新手不知所措胞枕,但是后來(lái)使了vim杆煞,覺(jué)得更容易上手,而且用的時(shí)間長(zhǎng)了腐泻,對(duì)vim了解 更深决乎,發(fā)現(xiàn)它功能一樣強(qiáng)大,而且它可以算是類unix系統(tǒng)中默認(rèn)的編輯器)派桩,言歸正傳构诚,如果你想用emacs,你就可以將這個(gè)配置加入到你 的~/.gitconfig中铆惑,這樣它就會(huì)覆蓋系統(tǒng)/etc/gitconfig的配置范嘱,當(dāng)然這只針對(duì)于你,其他用戶如果不設(shè)置還是會(huì)用vim员魏。

$git config --global core.editor emacs
$cat ~/.gitconfig
[core]
    editor = emacs

對(duì)于git config只介紹到這丑蛤,其實(shí)除了以上講解的部分,它還有很多功能逆趋。本文中主要是針對(duì)介紹不同范圍內(nèi)設(shè)置的配置的有效范圍,了解它之后晒奕,當(dāng)以后需要對(duì) git進(jìn)行環(huán)境配置時(shí)闻书,你就明白根據(jù)當(dāng)前配置的性質(zhì),明白是該放在git_test/.git/config脑慧,還是在~/.gitconfig魄眉,又或是在 /etc/gitconfig中,作為一個(gè)資深的版本管理者來(lái)說(shuō)闷袒,必須要了解以上的區(qū)別坑律。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市囊骤,隨后出現(xiàn)的幾起案子晃择,更是在濱河造成了極大的恐慌冀值,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宫屠,死亡現(xiàn)場(chǎng)離奇詭異列疗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)浪蹂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)抵栈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人坤次,你說(shuō)我怎么就攤上這事古劲。” “怎么了缰猴?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵产艾,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我洛波,道長(zhǎng)胰舆,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任蹬挤,我火速辦了婚禮缚窿,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘焰扳。我一直安慰自己倦零,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布吨悍。 她就那樣靜靜地躺著扫茅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪育瓜。 梳的紋絲不亂的頭發(fā)上葫隙,一...
    開(kāi)封第一講書(shū)人閱讀 49,185評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音躏仇,去河邊找鬼恋脚。 笑死,一個(gè)胖子當(dāng)著我的面吹牛焰手,可吹牛的內(nèi)容都是我干的糟描。 我是一名探鬼主播,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼书妻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼船响!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤见间,失蹤者是張志新(化名)和其女友劉穎聊闯,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體缤剧,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡馅袁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了荒辕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片汗销。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖抵窒,靈堂內(nèi)的尸體忽然破棺而出弛针,到底是詐尸還是另有隱情,我是刑警寧澤李皇,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布削茁,位于F島的核電站,受9級(jí)特大地震影響掉房,放射性物質(zhì)發(fā)生泄漏茧跋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一卓囚、第九天 我趴在偏房一處隱蔽的房頂上張望瘾杭。 院中可真熱鬧,春花似錦哪亿、人聲如沸粥烁。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)讨阻。三九已至,卻和暖如春篡殷,著一層夾襖步出監(jiān)牢的瞬間钝吮,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工板辽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留奇瘦,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓戳气,卻偏偏與公主長(zhǎng)得像链患,于是被迫代替她去往敵國(guó)和親巧鸭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子瓶您,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344