一、概述

1.1、git

Git 是一个开源的分布式 版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理

1.2、github

GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。

二、git

2.1、git各个区域及工作常用命令

image.png

2.2、git常用命令

2.2.1、创建

1
2
3
git clone https://github.com/xxx.git # 克隆远程仓库
git init # 初始化本地 git 仓库(新建仓库)
rm -rf .git # 已经初始化了,重新初始化,需要删掉.git文件

2.2.2、本地修改

1
2
3
4
5
6
7
git status # 查看当前版本状态(是否修改)
git diff # 显示所有未添加至 index 的变更文件及内容详情
git diff HEAD # 查看未commit的改动
git add <path> # 将该文件添加到index
git commit -m '描述' # 将index提交到仓库区
git commit --amend -m '描述' # 合并上一次提交(用于反复修改)
git commit -am '描述' # 将 add 和 commit 合为一步

2.2.3、查看提交历史

1
2
3
4
5
git log # 显示提交记录
git log --pretty=oneline # 查看当前及之前版本号
git reflog # 查看所有版本号
git show <commit> # 显示某个提交的详细内容
git blame <file> # 在每一行显示 commit 号,提交者,最早提交日期

2.2.4、分支与标签

1
2
3
4
5
6
7
8
9
git branch # 显示本地分支
git checkout <branch> # 切换分支
git branch <new-branch> # 新建分支
git checkout -b 分支名 # 创建新分支,并切换到该分支
git branch -d <branch> # 删除本地分支
git tag <tag-name> # 给当前分支打标签

git merge <branch> # 合并分支到当前分支,存在两个
git rebase <branch> # 合并分支到当前分支,存在一个

2.2.5、撤销

暂存区退到工作区

1
2
3
4
5
6
# 已经add到暂存区,修改了工作位内容后,将工作区内容恢复为暂存区的内容
git checkout -- fileName

# 将暂存区数据退到工作区(如果工作区和暂存区数据不同,则以工作区为准)
git reset HEAD
git reset HEAD fileName

切换仓库区版本

1
2
3
4
5
6
# 删掉上一个提交的版本(工作区会跟随改变)
git reset --hard HEAD^
# 查看版本切换日志(方便恢复)
git reflog
# 恢复到指定版本(工作区会跟随改变)
git reset --hard 210775453

2.2.6、忽略文件

配置隐藏文件.gitignore

1、原有的文件,修改之后,提交依旧会改变

2、新加文件,提交不会改变

image.png

2.2.7、远程更新发布

1
2
3
4
git fetch <remote> # 获取远程分支,但不更新本地分支,而是生成新的分支
git pull <remote> <branch> # 获取远程分支,并更新本地分支
git push <remote> <branch> # 推送本地更新到远程分支
git push --tags # 推送本地标签
  • 区分clone、pull、fetch
    • clone: 用于本地没建仓库,将远程仓库文件拉取到本地
    • pull:用于本地有仓库,将远程仓库文件拉取到本地,并更新本地分支
    • fetch:用于本地有仓库,将远程仓库文件拉取到本地,创建新的分支

常用 Git 命令清单-【阮一峰】

三、git与github实战

3.2、将本地项目push到github

3.2.1、配置远程仓库

创建远程仓库

image.png

配置ssh秘钥

  • 下载git

  • 生成秘钥

    1
    2
    3
    ssh-keygen -t rsa -C "github邮箱" # 过程中输入密码,最后会产生秘钥并输出秘钥所在目录
    # Enter file in which to save the key (/var/root/.ssh/id_rsa)
    cat /var/root/.ssh/id_rsa.pub # 查看秘钥复制到github
  • 配置github上的秘钥

    image.png

  • 查看是否配置成功

    1
    2
    ssh -T git@github.com
    # You've successfully authenticated

3.2.2、本地文件上传到github

  • 配置本机信息

    1
    2
    git config --global user.name "提交者"
    git config --global user.email "提交者邮箱"
  • 将文件上传到github

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # 初始化目录(把该目录变为本地的一个git仓库)
    git init
    # 提交到暂存区
    git add .
    # 提交到本地仓库
    git commit -m "初始化提交"
    # 本地与远程建立连接
    git remote add origin git@xxxxx.git
    # 上传到远程仓库
    git pull --rebase origin master # 把远程仓库的内容(比如README.md)拉到本地
    git push -u origin master # 把本地文件统一上传到远程仓库

3.2、将github项目clone到本地

1
git clone https://github.com/xxx.git # 克隆远程仓库