git 是什么
最强大的分布式版本控制系统,没有之一
版本控制: 完成一项任务,最终的成果可能是经过中间修修修改n次得到的,在这n个版本之间的切换就叫版本控制。
集中式的版本控制svn,cvs缺点: 需要联网,还很慢
git 主要特点:
(1)直接记录快照,而不是记录差异
(2)几乎所有的操作都是本地完成,除了与远程仓库之间的互动需要联网,其他无需网络,而且git记录了之前做的所有操作,想看一个月之前的,无需将旧版本拉下来,git已经记录下来了
(3)git 保证完整性,git数据库中保存的信息都是以文件内容的哈希值来索引,而不是文件名,属于你的任何操作,git都很清楚
github:一个网站,https://github.com/ 基于git的代码托管仓库,某种程度上就是一种代码网盘,上面放着各种开源的代码(也有私有的仓库)
Workspace:工作区
Index / Stage:暂存区
Repository:仓库区(或本地仓库)
Remote:远程仓库
git的安装
centos系统
yum install -y git
git初始化
mkdir git # 创建用于git管理的文件夹 git cd git # 进入该文件夹 git init # 将该文件夹变成一个本地可以管理的仓库,该文件夹下多一个.git的文件夹 用来管理版本库
配置git
git config --global user.name " " git config --global user.email " "
git 工作流程
- 修改,添加工作区的目录,文件
- 将修改文件的提交到缓存区
- 提交缓存区的文件到仓库
git 基本操作
#查看修改的文件 git diff 文件名 git diff id id 查看两次修改的差别 #查看工作状态 git status # 将修改的提交到缓存区 git add 文件名,这个步骤代表文件变成已跟踪状态 # 提交到仓库 git commit -m “add message”# 查看日志git logsgit log --pretty=oneline(精简显示) --graph --abbrev-commit
git 分支
# 建立分支 git checkout -b mygit # 根据远程的分支建立自己的的分支 git checkout -b mygit origin/develop # 远程分支更新 git checkout develop 切换到develop分支 git fetch 拉取远程分支 get merge 将远程分支合并到本地develop 分支 # 更新自己的分支 git checkout -B mygit origin/develop#合并分支git merge 分支名 合并“分支名”到当前分支#删除分支git branch -d 分支名 删除本地分支git push origin --delete 远程分支名 删除远程分支
git 远程仓库
#直接clone 就可以得到远程github分支 git clone url #添加远程仓库 git remote add origin git@github:地址 #显示远程信息 git remote 远程分支的名(origin) git remote -v 远程仓库地址 # 推行到远程 git push origin -u mygit (第一次推 需要-u 远程会建立一个跟本地一样的mygit 分支,两者自动关联)
git 退回 撤销操作
git 较难理解的指令
git rebase
git checkout
来源:https://www.cnblogs.com/fayuzhang/p/11161463.html