git是一個分佈式版本控制軟件,最初由林納斯·託瓦茲創做,於2005年以GPL發佈。最初目的是爲更好地管理Linux內核開發而設計。應注意的是,這與GNU Interactive Tools(一個相似Norton Commander界面的文件管理器)有所不一樣。git最初的開發動力來自於BitKeeper和Monotone。git最初只是做爲一個能夠被其餘前端(好比Cogito或Stgit)包裝的後端而開發的,但後來git內核已經成熟到能夠獨立地用做版本控制。不少著名的軟件都使用git進行版本控制,其中包括Linux內核、X.Org服務器和OLPC內核等項目的開發流程。
主要是指一下基本操做:linux
根據本身的系統進行選擇安裝方式,可使用命令行安裝,也可使用安裝包安裝,git官方安裝包地址git
安裝完成以後,須要考慮和遠程的倉庫創建鏈接,就須要帳號和密碼,不管是github
、gitlab
等,都須要一個帳戶名,能夠註冊完成,而後設置:github
git config --global user.name "yourName" git config --global user.email "yourEmail"
爲了不每次push代碼都須要密碼之類的,咱們經過ssh來配置;執行:後端
ssh-keygen
一路enter便可,在~/.ssh/
下會生成兩個文件,複製其中的公鑰:服務器
pbcopy < ~/.ssh/id_rsa.pub
進入遠程倉庫的我的中心,https://github.com/settings/profile
;會找到關於SSH and GPG keys
,有一個New SSH key
的按鈕,點擊後,能夠黏貼上剛複製的公鑰,而後Add SSH key
便可;ssh
能夠pull和push代碼測試是否成功。分佈式
Windows Terminal
,須要當前最新的win10版本,用起來挺好的,能夠再Microsoft的官方商城下載體驗。oh-my-zsh
默認安裝上了git plugin
在~/.zshrc
配置文件中,可使用不少的簡潔命令,git簡寫命令集合 git-config的官網巨長文檔,開發人員常常遇到這樣的問題,咱們的公司倉庫和我的倉庫的用戶名和郵箱配置是有區別的,爲了可以很好地區分工程上傳到不一樣的遠程倉庫,咱們須要分別處理,保證在不一樣的工程使用不一樣的帳戶gitlab
目前git的配置變量能夠放在三個地方:測試
~/.gitconfig 用戶配置,僅對當前用戶生效。
git config --global user.name "yourName" git config --global user.email "yourEmail"
projectRootPath/.git/config 項目根目錄配置,僅對當前項目生效。對應:進入工程根目錄執行
git config user.name "yourName" git config user.email "yourEmail"
三層是從3-2-1的優先級處理的,這樣咱們能夠對不一樣工程完成不一樣的配置,這個在工程數量多的時候簡直不忍直視,因此須要尋找更好的方法。
在2017年,git新發布的版本2.13.0包含了一個新的功能includeIf
配置,能夠把匹配的路徑使用對應的配置用戶名和郵箱;
在~/
目錄下面存在三個配置文件,
全局通用配置文件~/.gitconfig
裏面的內容是:主要是經過includeIf
配置匹配不用的目錄映射到不一樣配置文件上,
[includeIf "gitdir:~/self-workspace/"] path = .gitconfig-self [includeIf "gitdir:~/workspace/"] path = .gitconfig-work
我的工程配置文件~/.gitconfig-self
:
[user] name = yourname-self email = yourname-self@gmail.com
公司工程配置文件~/.gitconfig-work
:
[user] name = yourname-work email = yourname-work@yourCompanyName.com
遇到的問題:
~/.gitconfig
裏面的includeIf
後面的path最後須要/
結尾~/.gitconfig
裏面原有的user部分須要刪除