git的安装配置与基本使用
一、安装git
1. 检查是否安装
首先查看电脑是否安装Git,终端输入
$ git
安装过则会输出:
usage: git [--version] [--help] [-C <path>] [-c name=value]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
<command> [<args>]
...
2. CentOS安装git
$ yum install -y git
3. Ubuntu安装git
$ sudo apt-get install git
4. Mac安装git
4.1 brew安装
如果没有安装过homebrew
可以使用以下命令进行安装,也可以参考homebrew官网
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装git
$ brew install git
4.2 客户端安装
下载地址为:https://git-scm.com/download/mac
**注意:**安装时,需要授权应用,点击右上角苹果图标->系统偏好->安全与隐私->仍要打开
5. Windows安装git
下载地址为:https://git-scm.com/download/win
二、创建ssh key、配置git
公钥是代码托管服务(CodeHub)识别你的用户身份的一种认证方式,通过公钥,你可以将本地git项目与代码托管服务(CodeHub)建立联系,可以很方便的将本地代码上传到代码托管服务(CodeHub)或者将代码托管服务(CodeHub)代码下载到本地了。
下面将介绍生成公钥和管理公钥的方法。
1. 设置username和email
$ git config --global user.name "你git的用户名"
$ git config --global user.email "你git的邮箱"
2. 检查是否已经有ssh秘钥
$ cd ~/.ssh
$ ls
如果有id_rsa
和id_rsa.pub
文件,就不要创建ssh key了,跳过 3.创建ssh key
步骤
3. 创建ssh key
$ ssh-keygen -t rsa -C "你git的邮箱"
输入 ssh-keygen
命令后:回车->回车->yes->密码->确认密码
输出如下内容
lcldeMacBook-Pro:~ lcl$ ssh-keygen -t rsa -C XXOO@qq.com
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/lcl/.ssh/id_rsa):
Created directory '/Users/lcl/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/lcl/.ssh/id_rsa.
Your public key has been saved in /Users/lcl/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:x8tQ+U64kKffJl9xstZZt9HZHHHXM+8HZ6HT5AFJqoY XXOO@qq.com
The key's randomart image is:
+---[RSA 2048]----+
| .o+ .|
| .o. Oo|
| o. o= O|
| .+.oooo++|
| ESo=.o+.*=|
| .B.=o .oX|
| . +o. o=|
| .... . |
| .o. |
+----[SHA256]-----+
4. 复制id_rsa.pub文件内容
$ cat ~/.ssh/id_rsa.pub
复制文件内所有内容
5. 将SSH key添加到GitHub
再做以下步骤时,请先登录你的GitHub账号
5.1 点击Settings
5.2 点击New SSH key
5.3 添加ssh key
6. 链接验证
$ ssh -T git@github.com
输出结果
The authenticity of host 'github.com (127.0.0.1)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
Enter passphrase for key '/Users/lcl/.ssh/id_rsa':
Hi XXOO! You've successfully authenticated, but GitHub does not provide shell access.
说明已经链接成功
三、创建项目
创建项目经常会遇到下面三种情况
- 在github上创建了项目,但没有克隆到本地
- 项目在本地已存在,但没有推送到远程仓库
- 本地项目已经存在,github中也有远程仓库,且两个仓库的文件不一样
1. 创建新版本库
在github上创建了项目,但没有克隆到本地
1.1 在github上创建一个版本库
1.2 填写项目信息
点击Create repository
创建项目
1.3 复制 ssh 地址
1.4 clone项目编辑后重新提交
# 把远程仓库项目克隆到本地
$ git clone git@github.com:liuchonglin/go-web-base.git
# 进入项目目录
$ cd go-web-base
# 往README.md追加一行描述信息
$ echo 'my project' >> README.md
# 添加文件
$ git add README.md
# 提交更新
$ git commit -m "update README"
# 推送到远程仓库
$ git push -u origin master
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 320 bytes | 320.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
To github.com:liuchonglin/go-web-base.git
f8c201a..9344696 master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.
1.5 查看远程仓库
可以看到my project已经被推送到远程仓库了
2. 项目在本地已经存在
项目在本地已存在,但没有推送到远程仓库
2.1 在github上创建一个版本库
2.2 填写项目信息
2.3 复制 ssh 地址
2.4 初始化git并提交到指定仓库
# 进入项目根目录
$ cd demo
# 初始化
$ git init
# 添加到远程仓库
$ git remote add origin git@github.com:liuchonglin/go-demo.git
# 添加所有文件
$ git add .
# 提交更新
$ git commit -m "Initial commit"
# 推送到远程仓库
$ git push -u origin master
2.5 查看远程仓库
3. 本地项目已经存在,github中也有远程仓库
本地项目已经存在,github中也有远程仓库,且两个仓库的文件不一样
3.1 在github上创建一个版本库
3.2 填写项目信息
注意:勾选上Initialize this repository with a README
选项时,在创建仓库时会创建.gitignore
和LICENSE
文件,所以会导致本地仓库和远程仓库形成了两个独立的仓库
3.3 复制 ssh 地址
3.4 初始化git并提交到指定仓库
# 进入项目根目录
$ cd demo
# 初始化
$ git init
# 添加到远程仓库
$ git remote add origin git@github.com:liuchonglin/go-demo.git
# 获取最新版本,并合并两个独立仓库的历史
$ git pull origin master --allow-unrelated-histories
# 添加所有文件
$ git add .
# 提交更新
$ git commit -m "Initial commit"
# 推送到远程仓库
$ git push -u origin master