关于 shell
在 linux 中建议安装 oh-my-zsh,这样可以更加方便的使用 git 命令
centos 默认的shell 是 bash,可以使用如下命令查看,当前系统中安装了哪些 shell
cat /etc/shells
然后使用如下命令,查看当前使用的默认shell
echo $SHELL
可以按照如下方式安装新的 shell,on-my-zsh,相较于 bash ,拥有更多的主体,更漂亮的界面和更丰富的功能
首先安装 zsh,因为 on-my-zsh 基于 zsh
yum install zsh
然后安装oh-my-zsh
安装方法有这么几种
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
或者
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
或者使用 git 安装,计算机上要安装 git 才能使用
git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh
cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc
安装好之后,可以在 shell 之间切换
切换为 zsh
chsh -s /bin/zsh
切换为默认的 bash
chsh -s /bin/bash
还可以更新 oh_ny_zsh
upgrade_oh_my_zsh
或者删除
uninstall_oh_my_zsh
关于用户名和邮箱
git 的提交需要用户身份,设置用户名和邮箱即可
首先可以使用下面的命令,分别检查当前是否设置用户名以及邮箱
git config user.name
git config user.email
如果结果为空,可以使用下面的命令创建用户名和邮箱
git config user.name 'xxx'
git config user.email 'xxx@xx.com'
拉取和提交数据
从远程仓库克隆仓库时,有两种方式,分别是 http 和 ssh
http 方式
使用如下命令克隆仓库
git clone 版本库地址 [本地文件夹名称]
后面的本地文件夹名称,如果不提供,会使用远程仓库的名称
拉取过程中,需要提供远程仓库的用户名和密码,如果你的远程仓库在码云上,那么用户名和密码就是你的码云账号和密码
ssh 方式
此种方式省区了,每次都要输入用户名和密码的烦恼,但是需要在自己电脑上创建 ssh-key
此种方式需要用户在计算机中创建公钥和私钥,并将公钥添加到仓库的公钥中
- 如果只是从远程仓库拉取数据,添加到公钥即可
- 如果还要向远程仓库提交数据,添加到私钥才可以
比如,我们在码云上创建了一个仓库,想以 ssh 方式拉取到本地,会执行下面命令
可见,会出现错误信息,此时需要创建公钥和私钥
创建 ssh-key
下面命令用于创建 ssh-key
ssh-keygen
.ssh 文件会被创建在 当前用户(root)目录下
如果是 windows 系统,一般也会创建在当前用户目录下,在创建时会询问的
如,我的就创建在如下目录
C:\Users\csdny\.ssh
查看 ssh-key
cat ~/.ssh/id_rsa.pub
添加 ssh-key
以码云为例,找到需要操作的仓库,在 “管理” 中找到“添加公钥”
注意:如果仅仅是用于拉取数据,添加“部署公钥“即可
如果需要提交数据,则需要添加”个人公钥“,方式是将原来的公署公钥删除,然后将公钥内容添加到个人公钥中
最后,重新拉取1次仓库,就成功了
需要注意的是,拉取的时候会询问用户是否继续连接,这时候一定要输入 yes,而不能直接回车,否则仍然无法拉取成功(输入yes后,会在.ssh 目录下创建known_hosts文件,记录拉取记录)
多个仓库公用一个公钥
如果在码云上再次创建一个仓库 test1,在本地克隆的时候,会出现如下错误
表示公钥出错了,原因在于上面生成的公钥只用于某个仓库
如果想在 test1 仓库中使用此公钥,直接再次添加公钥是不行的,需要按照如下操作
启用之后,就可以使用 git clone 命令克隆这个 test1 仓库了