1.安装:
- 安装默认版本git(一般不是最新版本,想安装最新版使用下面的方式)
yum install git
- 安装最新版git
yum install -y epel-release
# cenost6使用这个:rpm -ivh https://centos6.iuscommunity.org/ius-release.rpm
rpm -ivh https://centos7.iuscommunity.org/ius-release.rpm
yum list git2u
yum install -y git2u
git --version
2.生成公钥和私钥
#需进入到此位置
cd ~/.ssh/
# 执行此命令会生成id_rsa(私钥)和id_rsa.pub(公钥),后面全部回车就行
ssh-keygen
3.在代码托管平台配置公钥(这里以github为例)
- 为什么要配置公钥:
因为本地和Git服务器交互有两种方式,一是使用Https协议,二是使用SSH协议
Https协议:每次交互都要输入用户名和密码(比较麻烦)。
SSH协议:每次交互使用公钥和密钥配对认证(比较方便)。基本上Git服务器都会使用SSH公钥来进行授权认证,Git服务器上存储的是公钥(即id_rsa.pub),你本地存储的是私钥(即id_rsa),当你本地代码库与远程代码库交互时,服务器会要求你出示私钥,并且用你的私钥和它的公钥来配对认证。 - 查看公钥
cat id_rsa.pub
- 复制公钥到github并保存,这样在本地与GIt服务器交互时就会配对成功。如下图位置
4.克隆代码到本地
- Https方式,需要输入用户名和密码,链接位置看下图
#自行选择文件位置
cd /tmp
#克隆下载
git clone https://github.com/qixingcxy/myProject.git
- SSH方式,复制链接进行克隆,链接位置看下图
#自行选择文件位置
cd /tmp
#克隆下载
git clone git@github.com:qixingcxy/myProject.git
5.推送代码到远程仓库
- 推送代码之前需要配置全局邮箱和用户名(因为需要知道是谁推送的)
git config --global user.email 'qixingcxy@foxmail.com'
git config --global user.name 'qixingcxy'
- 提交(将改动文件提交到本地的仓库中)
#本命令相当于git add和git commit -m的缩写(-m 为添加备注)
git commit -am 'first push'
- 推送到远程仓库
语法1:git push <远程主机名> <本地分支名>:<远程分支名>
# 将本地的master分支推送到origin主机的master分支,
#如果该远程分支不存在,则会被新建(新建分支内容和本地分支的内容一致)。
git push origin master:master
语法2(省略远程分支名):git push <远程主机名> <本地分支名>
# 如果省略远程分支名,则推送到与本地分支有关系的远程分支(两者基本同名),
# 如果该远程分支不存在,则会被新建。(新建分支内容和本地分支的内容一致)。
git push origin master
6.拉取合并远程代码
fetch 为将远程仓库的代码拉取到本地,本地仓库的代码不更新
语法:git fetch 远程主机名 远程分支名
git fetch origin master
然后将代码合并到本地仓库中
git rebase origin/master
pull 为将远程仓库拉取到本地,并更新合并到本地仓库
语法:git pull 远程主机名 远程分支名
git pull origin master
知识普及: git在本地本地存储分为工作区、暂存区、本地仓库,我们平常编辑修改的是工作区,每次增删改都会记录到.git/objects中,然后想要让本地仓库知道哪些文件要提交就需要把要提交的文件放到暂存区中(即git add),想要知道这个时间点自己改了什么,就需要做一个快照(snapshot),即使用git commit生成快照,项目的历史就是由不同时间节点的快照构成,所以Git 可以将项目恢复到任意一个快照(也可以使用git commit -a 一起执行暂存和快照)。