1. 安装git
#Ubuntu系统
sudo apt-get install git
#windows系统
下载安装msysGit
2. 安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "git-username"
$ git config --global user.email "git-email"
git config是用于进行一些配置设置,有三种不同的方式来指定这些配置适用的范围:
- git config
针对一个git仓库,默认当前目录是一个git仓库,假设我们有一个仓库叫git_test,它所修改配置保存在git_test/.git/config文件 - git config --global
针对一个用户,适用于当前用户,也就是说只要是这个用户操作任何git仓库,那么这个配置都会生效,这种配置保存在/.gitconfig当中,msysGit的根目录是C:\Users\用户名下,linux系统在用户目录下。 - sudo git config --system
针对一个系统,所以必须使用sudo,适用于一个系统中所有的用户,也就是说这里的配置对所有用户都生效,那什么样的配置需要放在这里呢,比如我们在执行git commit会弹出一个默认的编辑器,一般是vim,那作为系统的管理员,可以将vim设置为所有用户默认使用的编辑器
在不同的配置文件中,对同一个变量进行了设置,最终哪个会生效呢?
其优先级是:1)>2)>3),优先遵守当前文件夹所在的仓库的配置信息。
例如:
# 配置全局账户(配置文件位于 ~/.gitconfig中)
git config --global user.name "your_name" # 如果是提到github上,your_name最好是你的github账户的名字
git config --global user.email "your_email@example.com" # 如果是提到github上,your_email@example.com最好是你的github账户的邮箱
# 配置本地仓库账户 (配置文件位于当前仓库目录的.git/config中)
git config [--local] user.name "your_name_in_company" # 如果是提到github上,your_name最好是你的github账户的名字
git config [--local] user.email "your_company_email@example.com" # 如果是提到github上,your_email@example.com最好是你的github账户的邮箱
3. git用户与github用户的建立联系
- GitHub信息:
- 注册时,需要设置github-username、github-email、github-password
- 注册后,可以另外设置自己的name和email,只是用于对外展示(和注册时的github-username、github-email没有关系)
- Git信息
- 安装后,需要设置用户名,邮箱
$ git config --global user.name "git-username"
$ git config --global user.email "git-email"
- 关联ssh-key
本地Git仓库和GitHub仓库之间的传输是通过SSH加密的
ssh-key的配置:
1. Windows下打开Git Bash,创建SSH Key,按提示输入密码,可以不填密码一路回车,由于这个Key也不是用于军事目的,所以也无需设置密码。
$ ssh-keygen -t rsa -C "git-email"
2. 然后用户主目录/.ssh/下会生成两个文件,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。id_rsa.pub文件里面的内容就是key的内容
3. 登录GitHub,打开"Settibgs->SSH Keys"页面,然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
4. 测试ssh key是否成功,使用命令“ssh -T git@github.com”,如果出现You’ve successfully authenticated, but GitHub does not provide shell access。这就表示已成功连上github。
- 联系
关联ssh-key保证了:设置为git-email的git用户可以对注册为github-email的github用户的仓库进行操作
如果git-email和github-email不一致,则即使github-username和git-username用户名相同,用户在本地git和在github上操作也会被认为是不同的用户在操作,意味着:github-email用户创建了仓库,git-email用户从本地上传的代码
如果git-email和github-email一致,则认为是同一用户,意味着:用户在本地git上操作再push到github上,和直接在github上操作没有区别