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部分须要删除