Git入门

接触git有一段时间了。关于学习git,我主要是看廖雪峰老师的官网git教程

Git:分布式
SVN:集中式

安装

Git官网
一路安装,最后

1
2
git config --global user.name "Your Name"
git config --global user.email "email@example.com"

因为我使用git主要是上传一些代码到github,所以我只说一些我常用的,比较少用的等以后用到了再说喽。

Git的简单使用

初始化

首先找个地方,创个空目录

1
2
3
4
mkdir learngit
cd learngit
pwd
git init

learngit只是一个目录名。注意:不要使用中文命名目录!免得乱七八糟的问题出现。
pwd用于显示当前路径。
初始化完成之后,会发现原本的空目录中多出了一个.git的目录,没有的话,可能隐藏了,或者初始化失败。

添加文件

把需要上传的文件添加到初始化好的仓库目录,再使用git add命令告诉Git,把文件添加到仓库。

1
git add file.name

file.name只是我瞎编的一个文件,如果有多个文件,可以

1
git add .

不过使用以上命令的话要小心,因为有多个文件改动的话,出问题的时候挺麻烦的,而我每次只是添加文件,所以就没这个顾虑。

提交仓库

用命令git commit告诉Git,把文件提交到仓库

1
git commit -m "message"

每次git commit记得加上-m "改动信息",养成良好习惯,方便出错时迅速找到问题。

Github

首先要有一个Github账号,由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以需要设置SSH Key。文章最后会介绍多个ssh key的设置。

创建远程仓库

创建完远程仓库后,我们在本地仓库运行一下命令

1
git remote add origin git@github.com:XXXXX/XXXX.git

内容推送

把本地库的所有内容推送到远程库上

1
git push -u origin master

第一次推送加-u,之后就不用了。

克隆仓库

当然我们也可以把仓库内容下下来。

1
git clone 仓库地址

使用这种方法,在改动了文件之后,直接

1
2
3
git add 文件名
git commit -m "改动信息"
git push origin master

即可

多个ssh key

生成新的ssh key

假设我们之前已经有了ssh key,现在我们需要添加一个新的key。我们知道生成ssh key的基本步骤

1
2
3
4
5
#新建SSH key:
$ cd ~/.ssh # 切换到C:\Users\Administrator\.ssh
ssh-keygen -t rsa -C "mywork@email.com" # 新建工作的SSH key
# 设置名称为second
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa): second

给key命名主要是为了区分不同的ssh key。以上名称设置随意。
打开.ssh文件夹,发现新的key已经生成成功,但当我们要添加到github账户时,它会报错。我们还需一下步骤

config文件

.ssh文件夹下新建一个config文件,文件不需要后缀名。我自己的内容如下:

1
2
3
4
5
6
7
8
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa
Host second.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/second

设置完以上内容,就可以使用不同的本地仓库来将内容推送到不同的远程仓库了。