0. 初始化仓库,创建git仓库
$ git init
1. 获取秘钥,并查看秘钥
# 获取秘钥
$ ssh-keygen -t rsa -C <邮件名称>
# 查看秘钥
$ cat ~/.ssh/id_rsa.pub
2. 配置个人信息
# 配置用户名
$ git config --global user.name <名字>
# 配置邮箱
$ git config --global user.email <邮箱>
# 查看配置信息
$ git config --list
# 查看用户名
$ git config --global user.name
# 查看邮箱
$ git config --global user.email
3. 查看文件状态
$ git status
4. 将工作区文件添加到缓存区
# 提交一个文件
$ git add <文件名称>
# 提交两个文件
$ git add <文件名称1> <文件名称2>
# 提交所有变化(包括删除、修改、新增)
$ git add -A
# 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
$ git add -u
# 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
$ git add .
5. 将缓存区的文件添加到版本库
$ git commit -m "massage content"
# -m 指的是massage,和之后见到的master无关
# massage content 对本次提交内容的说明
6. 查看提交的版本日志
# 展示所有的版本
$ git log
# 用一行展示每一个版本
$ git log --pretty=oneline
7. 查看文件最新改动的地方
# 查看工作区与暂存区文件的比较
$ git diff <文件名称>
# 查看暂存区与版本库文件的比较
$ git diff --cached
# 查看工作区与版本区文件的比较
$ git diff master
-开头的行,是只出现在源文件中的行
+开头的行,是只出现在目标文件中的行
空格开头的行,是源文件和目标文件中都出现的行
差异按照差异小结进行组织,每个差异小结的第一行都是定位语句,由@@开头,@@结尾
8. 版本回退
# 回退到上一个版本
$ git reset --hard HEAD^
# 回退到上上个版本
$ git reset --hard HEAD^^
# 回退到第N个版本 N是一个整数
$ git reset --hard HEAD~N
# 回退到指定版本
$ git reset --hard 版本号
9. 查看所有版本号
$ git reflog
10. 删除操作
# 删除暂存区或分支上的文件, 同时工作区也不需要这个文件
$ git rm <文件名称>
# 强制删除文件
$ git rm -f <文件名称>
# 删除暂存区或分支上的文件, 但本地又需要使用, 只是不希望这个文件被版本控制
$ git rm --cached <文件名称>
11.git推送
# 将文件上传到github上,第一次上传远程仓库时需要加 -u ,此后的推送就可以去掉 -u 了
$ git push -u origin master
# 查看远程仓库名称 默认 origin
$ git remote
# 查看当前的远程仓库名称和对应的地址
$ git remote -v
12. 克隆
$ git clone <仓库地址>
13. 创建和删除分支
# 查看本地分支列表
$ git branch
# 新建分支
$ git branch <分支名称>
# 新建并切换分支
$ git checkout -b <分支名称>
# 切换分支
$ git checkout <分支名称>
# 删除本地分支
$ git branch -d <分支名称>
# 删除远程分支
$ git branch -D <分支名称>
14. 分支提交
$ git push origin <分支名称>
15. 更新本地仓库
# 更新git remote 中所有的远程仓库所包含分支的最新commit-id
$ git fetch --all
# 将本地库更新至远程库的最新状态
$ git pull
16. 合并文件
$ git merge <分支名称>
17. clone
远程仓库后,切换到非 master
分支
Git默认只显示master分支的数据,还需要手动切换到我们需要的分支并显示出来
# 切换分支
$ git branch
$ git checkout -b 分支名字 origin/分支名字
也可以在 clone
的时候克隆某一个分支
$ git clone -b 分支名 仓库地址