Windows下配置Git(設(shè)置別名叮叹,生成ssh等)

Git是一個(gè)開源的分布式版本控制系統(tǒng),功能強(qiáng)大宙项,本文手把手教大家從零開始安裝Git(基于windows環(huán)境)以及分享Git日常使用的小技巧和知識(shí)

一、安裝Git

1畅形、首先肯定需要下載安裝包养距,可以去Git開源社區(qū)網(wǎng)站下載,鏈接如下:https://git-scm.com/

進(jìn)入網(wǎng)站日熬,里面有本Pro Git book铃在,指導(dǎo)你如何使用Git,講得比較全碍遍,強(qiáng)烈推薦初學(xué)者學(xué)習(xí)

2定铜、安裝基本一路next,安裝完畢后鼠標(biāo)右擊會(huì)有Git Bash Here選項(xiàng)怕敬,點(diǎn)擊進(jìn)行g(shù)it的命令行操作

3揣炕、初始化git倉庫后,便可以在倉庫根目錄下使用git命令东跪,如果不在Git倉庫下則無法執(zhí)行Git有關(guān)命令畸陡。關(guān)于git的基本命令這里不細(xì)說了,大家有不熟悉的可以參考上面的Git Pro Book虽填,以下概念對(duì)git配置比較重要

Git 自帶一個(gè)?git config?的工具來幫助設(shè)置控制 Git 外觀和行為的配置變量丁恭。 這些變量存儲(chǔ)在三個(gè)不同的位置:

/etc/gitconfig?文件: 包含系統(tǒng)上每一個(gè)用戶及他們倉庫的通用配置。 如果使用帶有?--system?選項(xiàng)的?git config?時(shí)斋日,它會(huì)從此文件讀寫配置變量牲览。

~/.gitconfig?或?~/.config/git/config?文件:只針對(duì)當(dāng)前用戶。 可以傳遞?--global?選項(xiàng)讓 Git 讀寫此文件恶守。

當(dāng)前使用倉庫的 Git 目錄中的?config?文件(就是?.git/config):針對(duì)該倉庫第献。

每一個(gè)級(jí)別覆蓋上一級(jí)別的配置贡必,所以?.git/config?的配置變量會(huì)覆蓋?/etc/gitconfig?中的配置變量。

在 Windows 系統(tǒng)中庸毫,Git 會(huì)查找?$HOME?目錄下(一般情況下是?C:\Users\$USER)的?.gitconfig?文件仔拟。 Git 同樣也會(huì)尋找?/etc/gitconfig?文件,但只限于 MSys 的根目錄下飒赃,即安裝 Git 時(shí)所選的目標(biāo)位置利花。

二、配置Git(別名)

現(xiàn)在主流的一些集成開發(fā)工具如IDEA都已經(jīng)集成Git载佳,可以在IDEA里進(jìn)行圖形化界面操作炒事,十分方便,但命令行始終還是最強(qiáng)大的刚盈,如果你習(xí)慣于使用命令行操作的話羡洛,面對(duì)有些比較長的Git命令,如果能給它設(shè)置別名必然能提高我們的開發(fā)效率藕漱,不用每次都輸入重復(fù)的長命令欲侮。

關(guān)于windows下配置Git別名有以下幾種方式

1、利用Git自帶的別名功能

具體方式:git config --global alias.別名 命令

因?yàn)樵O(shè)置級(jí)別為global肋联,即用戶級(jí)別威蕉,windows下git會(huì)將別名寫入你C盤用戶的.gitconfig中,如果不加global條件橄仍,則默認(rèn)寫入你倉庫的config中韧涨,只針對(duì)當(dāng)前倉庫有效。當(dāng)然也可以手動(dòng)在配置文件中按照格式要求寫入別名侮繁。

2虑粥、上述配置確實(shí)簡化了命令,但還是要輸入前面的git宪哩,因?yàn)間it bash 默認(rèn)所有的命令都要以git開頭娩贷,但如果我連git都懶得打呢,比如輸入gs直接達(dá)到git status的效果锁孟,有三種方法

(1)彬祖、直接修改git bash的別名設(shè)置,因?yàn)間it bash自身也是有別名的品抽,如果修改了它的別名就能進(jìn)一步簡化命令

修改Git安裝目錄下的etc/bash.bashrc文件储笑,在里面加入別名設(shè)置即可

(2)、上述配置能進(jìn)一步簡化命令圆恤,但是有一點(diǎn)麻煩是你需要找到你的工作區(qū)然后右擊Git Bash Here才能輸入git命令突倍,但現(xiàn)在大家都是用IDEA等開發(fā)工具,在提交時(shí)再切到工作區(qū)執(zhí)行g(shù)it命令似乎有些麻煩,有沒有辦法直接在IDEA的Terminal終端中直接執(zhí)行Git命令呢赘方?

可以在windows中安裝bash烧颖,直接在終端啟動(dòng)bash弱左,輸入Git命令

關(guān)于如何安裝windows bash可以參考這篇文章窄陡,這里不再贅述?http://www.reibang.com/p/a90591d5db0c

如果輸入bash時(shí)提示 bash: ./xx: Permission denied,輸入 sudo chmod 777 ./xx 獲得可讀可寫可執(zhí)行權(quán)限即可

打開IDEA終端直接輸入bash拆火,便可進(jìn)行Git操作跳夭,bash的別名設(shè)置直接修改配置文件即可,也可以用命令alias name=value 進(jìn)行設(shè)置们镜,不過不是永久保存的

配置文件位置:{你C盤用戶目錄}\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\{你的bash用戶名}\.bashrc

具體可能每個(gè)人不一樣币叹,我自己的位置是在C:\Users\超\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\gcc\.bashrc

按格式加入別名即可

(3)、可以用zsh的git plugin模狭,當(dāng)然前提是要安裝bash颈抚,這個(gè)插件里內(nèi)置了很多git別名可以直接在IDEA終端中使用,我覺得上面的bash基本滿足我的日常使用了嚼鹉,所以沒有下這個(gè)插件贩汉,感興趣的小伙伴可以自行搜索下載

三、配置Git(ssh)

客戶端與Git遠(yuǎn)程倉庫如github通信主要有兩種方式锚赤,https和ssh匹舞,因?yàn)閟sh傳輸比較安全,速度稍快于https线脚,所以日炒突基本都用ssh方式拉取和推送代碼

用ssh方式首先要在本地生成一對(duì)密鑰(公鑰和私鑰),公鑰復(fù)制到github等遠(yuǎn)程服務(wù)器浑侥,私鑰存于自己電腦上保存姊舵,通過ssh方式拉取和推送代碼遠(yuǎn)程倉庫都會(huì)通過密鑰進(jìn)行權(quán)限驗(yàn)證。

1寓落、首先括丁,你需要確認(rèn)自己是否已經(jīng)擁有密鑰。 默認(rèn)情況下零如,用戶的 SSH 密鑰存儲(chǔ)在其?~/.ssh?目錄下躏将。 進(jìn)入該目錄并列出其中內(nèi)容,你便可以快速確認(rèn)自己是否已擁有密鑰:

$ cd ~/.ssh

$ ls

authorized_keys2? id_dsa? ? ? known_hosts

config? ? ? ? ? ? id_dsa.pub

2考蕾、我們需要尋找一對(duì)以?id_dsa?或?id_rsa?命名的文件祸憋,其中一個(gè)帶有?.pub?擴(kuò)展名。?.pub?文件是你的公鑰肖卧,另一個(gè)則是私鑰蚯窥。 如果找不到這樣的文件(或者根本沒有?.ssh?目錄),你可以通過運(yùn)行?ssh-keygen程序來創(chuàng)建它們。在 Linux/Mac 系統(tǒng)中拦赠,ssh-keygen?隨 SSH 軟件包提供巍沙;在 Windows 上,該程序包含于 MSysGit 軟件包中荷鼠。

$ ssh-keygen

Generating public/private rsa key pair.

Enter file in which to save the key (/home/schacon/.ssh/id_rsa):

Created directory '/home/schacon/.ssh'.

Enter passphrase (empty for no passphrase):

Enter same passphrase again:

Your identification has been saved in /home/schacon/.ssh/id_rsa.

Your public key has been saved in /home/schacon/.ssh/id_rsa.pub.

The key fingerprint is:

d0:82:24:8e:d7:f1:bb:9b:33:53:96:93:49:da:9b:e3 schacon@mylaptop.local

還可以用以下命令細(xì)分 ssh-keygen -t rsa -c '郵箱等'

密鑰類型可以用 -t 選項(xiàng)指定句携。如果沒有指定則默認(rèn)生成用于SSH-2的RSA密鑰。這里使用的是rsa允乐。 同時(shí)在密鑰中有一個(gè)注釋字段矮嫉,用-C來指定所指定的注釋,可以方便用戶標(biāo)識(shí)這個(gè)密鑰牍疏,指出密鑰的 用途或其他有用的信息蠢笋。所以在這里輸入自己的郵箱或者其他都行。 輸入完畢后程序同時(shí)要求輸入一 個(gè)密語字符串(passphrase)鳞陨,空表示沒有密語昨寞。接著會(huì)讓輸入2次口令(password),空表示沒有口 令厦滤。3次回車 即可完成當(dāng)前步驟援岩,此時(shí)[windows:c盤>用戶>自己的用戶名>.ssh,?Linux:用戶>.ssh]目錄下已經(jīng)生成好了。

3馁害、接著把公鑰放到遠(yuǎn)程服務(wù)器即可窄俏,拷貝id_rsa.pub中內(nèi)容添加到遠(yuǎn)程倉庫即可

以github為例,在此添加公鑰碘菜,添加完成后凹蜈,輸入ssh -T git@github.com即可測(cè)試認(rèn)證

如果提示 You've successfully authenticated,說明ssh認(rèn)證成功

4忍啸、最后有關(guān)bash向遠(yuǎn)程倉庫提交和拉取代碼的問題仰坦,因?yàn)閎ash和windows本地用戶不是一個(gè),所以需要在bash中再單獨(dú)生成ssh密鑰计雌,位置默認(rèn)在:{你C盤用戶目錄}\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\home\{你的bash用戶名}\.ssh文件夾下悄晃,復(fù)制公鑰到遠(yuǎn)程倉庫即可

另外還需要在bash中單獨(dú)設(shè)置git的用戶名和郵箱,否則git無法識(shí)別你的身份

使用命令

git config --global user.name 'xxx'

git config --global user.email 'xxx@123.com'

指定用戶級(jí)別的用戶名和郵箱即可

四凿滤、Git知識(shí)技巧

1妈橄、我自己的git別名分享

alias cl='clear'

alias ei='exit'

alias lo='logout'

alias g='git'

alias gi='git init'

alias gs='git status'

alias grl='git reflog'

alias gl="git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"

alias glds="git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short"

alias gllas="git log -1 HEAD --pretty='%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short"

alias gllat="git for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]'"

alias gb='git branch'

alias gbv='git branch -v'

alias gba='git branch -a'

alias gbd='git branch -d'

alias gc='git commit'

alias gcm='git commit -m'

alias gcam='git commit --amend -m'

alias gcl='git clone'

alias ga='git add'

alias gaa='git add --all'

alias ga.='git add .'

alias gpl='git pull'

alias gp='git push'

alias gpf='git push -f'

alias grb='git rebase'

alias gco='git checkout'

alias gcob='git checkout -b'

alias gf='git fetch'

alias gm='git merge'

alias gra='git remote add'

alias grm='git rm'

alias grmc='git rm --cached'

alias grv='git remote -v'

alias gcf='git config'

alias gcfl='git config --list'

alias gcp='git cherry-pick'

alias grhh1='git reset --hard HEAD^'

alias grhh2='git reset --hard HEAD@{2}'

alias ssht='ssh -T git@github.com'

alias sshk='ssh-keygen -t rsa'

#以下為方便回憶用,實(shí)際不使用的別名

alias ggsup='git branch --set-upstream-to=origin/$(git_current_branch)'

alias gpsup='git push --set-upstream origin $(git_current_branch)'

alias gstash='git stash'

alias gtam="git tag -a tagname -m 'commit message'"

alias gcfgun='git config --global user.name'

alias gcfusun='git config --unset user.name'

alias gpodm='git push origin --delete master'


2翁脆、git fetch 與 git pull 的區(qū)別:

git fetch 拉取遠(yuǎn)程分支眷蚓,新建遠(yuǎn)程分支的本地倉庫(commit id),不合并

git pull = git fetch + git merge 拉取遠(yuǎn)程分支反番,更新本地倉庫沙热,直接合并到工作區(qū)

3叉钥、git cherry-pick commitId 挑揀分支提交合并

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市篙贸,隨后出現(xiàn)的幾起案子投队,更是在濱河造成了極大的恐慌,老刑警劉巖爵川,帶你破解...
    沈念sama閱讀 206,126評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敷鸦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡雁芙,警方通過查閱死者的電腦和手機(jī)轧膘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門钞螟,熙熙樓的掌柜王于貴愁眉苦臉地迎上來兔甘,“玉大人,你說我怎么就攤上這事鳞滨《幢海” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵拯啦,是天一觀的道長澡匪。 經(jīng)常有香客問我,道長褒链,這世上最難降的妖魔是什么唁情? 我笑而不...
    開封第一講書人閱讀 55,185評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮甫匹,結(jié)果婚禮上甸鸟,老公的妹妹穿的比我還像新娘。我一直安慰自己兵迅,他們只是感情好抢韭,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恍箭,像睡著了一般刻恭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上扯夭,一...
    開封第一講書人閱讀 48,970評(píng)論 1 284
  • 那天鳍贾,我揣著相機(jī)與錄音,去河邊找鬼交洗。 笑死骑科,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的藕筋。 我是一名探鬼主播纵散,決...
    沈念sama閱讀 38,276評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼梳码,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了伍掀?” 一聲冷哼從身側(cè)響起掰茶,我...
    開封第一講書人閱讀 36,927評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蜜笤,沒想到半個(gè)月后濒蒋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡把兔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評(píng)論 2 323
  • 正文 我和宋清朗相戀三年沪伙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片县好。...
    茶點(diǎn)故事閱讀 37,997評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡围橡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缕贡,到底是詐尸還是另有隱情翁授,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評(píng)論 4 322
  • 正文 年R本政府宣布晾咪,位于F島的核電站收擦,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏谍倦。R本人自食惡果不足惜塞赂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望昼蛀。 院中可真熱鬧宴猾,春花似錦、人聲如沸曹洽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽送淆。三九已至税产,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間偷崩,已是汗流浹背辟拷。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評(píng)論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阐斜,地道東北人衫冻。 一個(gè)月前我還...
    沈念sama閱讀 45,423評(píng)論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像谒出,于是被迫代替她去往敵國和親隅俘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子邻奠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容