git~

421 阅读1分钟

1. 简介

分布式版本控制系统 && 集中式

git 优势:

  1. 可以不联网
  2. 强大的分支管理

2. 基本概念

  1. repository: 版本库,简单理解为一个目录,里面所有的文件都可被git管理
  2. 工作区 && 暂存区 && 远程仓库
    远程仓库: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 到项目中
  1. .git 文件

常见命令

git工作基本流程

  1. git init: 初始化git仓库, 生成.git文件

  2. 添加文件到repository

- git add: 把要提交的所有修改放到暂存区(Stage),可多次添加
- git commit:一次性把暂存区的所有修改提交到分支
  1. git status: 查看工作区文件更改
  2. git diff: 查看确切更改内容
git diff: 查看工作区 与 暂存区 区别
git diff HEAD: 查看工作区 与 当前分支 区别
  1. git log:查看提交历史
git log --graph --pretty=oneline --abbrev-commit: 查看线上提交历史记录
  1. git reflog: 查看命令历史
  2. 撤回
git checkout . // 未提交到暂存区,清空工作区修改,保持与暂存区一致
git reset HEAD <file>  // 已提交到暂存区,清空暂存区, 不过工作区有修改~
【线上】
git revert HEAD                撤销前一次 commit
git revert HEAD^               撤销前前一次 commit
  1. 删除远程分支
git branch -r -d origin/branch-name
git push origin :branch-name
  1. git rebase

非常用命令

git completion && git bash 提示符

$:stash 中存在内容

+:stage中存在内容,即git add,尚未commit

*:工作区存在修改

<: 本地分支落后于远程分支

>: 本地分支超前于远程分支

【参考文章】

  1. git:深挖 .git文件夹
  2. git-scm.com/