1. 简介
分布式版本控制系统 && 集中式
git 优势:
- 可以不联网
- 强大的分支管理
2. 基本概念
- repository: 版本库,简单理解为一个目录,里面所有的文件都可被git管理
- 工作区 && 暂存区 && 远程仓库
远程仓库:Gerrit、gitlab、github、gitee等等。gitlab\github,二者都是基于web的Git仓库; GitHub作为开源代码库及版本控制系统,拥有超过140万的开发者用户,目前仍然是最火的开源项目托管系统。GitHub同时提供公共仓库和私有仓库,但如果要使用私有仓库,是需要付费的。 而GitLab解决了这个问题,你可以在上面创建私人的免费仓库。
以github为例,由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,需配置:
1. 创建sshkey,判断本地主目录下有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步,如果没有:
$ ssh-keygen -t rsa -C "youremail@example.com"
2. 添加id_rsa.pub 到项目中
- .git 文件
常见命令
git工作基本流程
-
git init: 初始化git仓库, 生成.git文件
-
添加文件到repository
- git add: 把要提交的所有修改放到暂存区(Stage),可多次添加
- git commit:一次性把暂存区的所有修改提交到分支
- git status: 查看工作区文件更改
- git diff: 查看确切更改内容
git diff: 查看工作区 与 暂存区 区别
git diff HEAD: 查看工作区 与 当前分支 区别
- git log:查看提交历史
git log --graph --pretty=oneline --abbrev-commit: 查看线上提交历史记录
- git reflog: 查看命令历史
- 撤回
git checkout . // 未提交到暂存区,清空工作区修改,保持与暂存区一致
git reset HEAD <file> // 已提交到暂存区,清空暂存区, 不过工作区有修改~
【线上】
git revert HEAD 撤销前一次 commit
git revert HEAD^ 撤销前前一次 commit
- 删除远程分支
git branch -r -d origin/branch-name
git push origin :branch-name
- git rebase
非常用命令
- git tag: git tag创建、远程推送、回退以及强推push -f
git completion && git bash 提示符
+:stage中存在内容,即git add,尚未commit
*:工作区存在修改
<: 本地分支落后于远程分支
>: 本地分支超前于远程分支
【参考文章】