SSH 配置与远程仓库连接
Git 是分布式版本控制系统,实际中可以找一台电脑充当服务器的角色,每天 24 小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。 分布式版本系统的最大好处之一是可以离线工作,联网时提交推送更新即可。
How to keep your git repository private?
- github 创建 private 仓库
- 自己动手,搭一个 Git 服务器,因为是你自己的 Git 服务器,所以别人也是看不见的。公司内部开发必备。
SSH 配置
SSH 密钥配置
读取 global 级别的配置:
git config --global --list
,查看是否设置 username 和 email使用
ssh-keygen
生成 public/private rsa key pair.ssh-keygen -t rsa -C "xxx@qq.com"
, 后面的邮箱改成 github 注册邮箱 执行之后会提示一系列操作,注意确认秘钥的保存路径的时候,我一般偏向自己针对网站修改一下,否则后续多个 ssh 密钥就不好处理了。添加 rsa 公钥到 github 远程仓库
github 配置页: Settings -- SSH and GPG keys -- New SSH key, 将本地生成的 id_rsa.pub 的内容复制粘贴即可
测试是否配置成功
ssh -T git@github.com
本地设置多个 ssh 密钥 解决办法就是:生成两个(或多个)不同的公私密钥对,用 config 文件管理它们。 在
~/.ssh
目录下创建名为config
的文件:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22# gitee and github
# 注意:多个Host公用一个公钥时,
# 对应的HostName和Port必须跟在Host后面
Host gitee.com
HostName gitee.com
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
# gitlab.company.com
Host gitlab.company.com
HostName gitlab.company.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/company_rsa
# 其他的统一用 id_rsa 文件登陆,或者密码。
# 注意:这里的第二行后面有个 password,就是同时允许密码登陆
# 不然第一次没加公钥,密码也登陆不了,会提示错误:Permission denied (publickey,password).
Host *
PreferredAuthentications publickey,password
IdentityFile ~/.ssh/id_rsa参考资料:git 配置多个 SSH Key
本地代码纳入 git 管理,并上传至 github
在 github 上手动创建仓库(假设仓库名为:mybackup)
初始化本地仓库
1
2cd mybackup
git initgit init
将当前目录变成 Git 可以管理的仓库, 具体表现为: 执行命令后,在当前目录下生成.git
目录,是 Git 来跟踪管理版本库的。添加文件到暂存区
git add -A
或者git add 文件或文件夹
提交到本地仓库
git commit -m your comment
-m 后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
配置远程仓库
git remote add origin https://github.com/YOURGITHUBID/mybackup.git
将本地仓库 push 到远程仓库
git push -u origin master
由于远程库是空的,我们第一次推送
master
分支时,加上了-u
参数,Git 不但会把本地的master
分支内容推送的远程新的master
分支,还会把本地的master
分支和远程的master
分支关联起来,在以后的推送或者拉取时就可以简化命令。
新建项目直接用 Git 管理
假设代码仓库从零开发,步骤如下
github 网页新建远程仓库
复制仓库链接,使用 git clone 从远程库克隆
git clone 支持通过
https
,ssh
两种协议Use a password-protected SSH key. Use Git using the web URL.
1
2git clone https://github.com/username/repo_name.git
git clone git@github.com:username/repo_name.git如果有必要的话,可以再对当前的仓库设置个人信息。
1
2git config --local user.name "your_name"
git config --local user.email "your_email"注意: local 的个人信息优先级高于 global 的个人信息,即:在设置了 global 情况下,再对某个仓库单独设置 local 也是可以。
把本地库的所有内容推送到远程库上:
git push origin master
把本地库的内容推送到远程,用git push
命令,实际上是把当前分支master
推送到远程。