Git
一、简介
Git 是一个开源的分布式版本控制系统(Distributed Version Control System, DVCS),用于高效地处理任何或小或大的项目。与集中式版本控制系统(如 CVS、SVN)不同,Git 采用了分布式的设计,使得每个开发者都可以在自己的本地机器上克隆(clone)整个项目的代码仓库,并在本地进行代码的修改、提交等操作,然后再将本地的改动推送到远程代码仓库中。
二、Git工作的基本流程
-
从远程仓库克隆到本地仓库
-
把本地仓库的信息剪切到代码目录下
-
提交前需将文件上传到暂存区下
-
将暂存区的文件提交到本地仓库
-
将本地仓库的文件推送到远程仓库
三、常用命令
3.1 设置用户信息
#设置用户名
git config --global user.name "用户名"
#设置用户邮箱
git config --global user.email "邮箱"
3.2 查看配置信息
#查看全部配置信息
git config --list
#查看用户配置信息
git conig --gloabl --list
3.3 操作git库
#初始化一个git空仓库
git init
#克隆远程仓库到本地
git clone 远程仓库链接
3.4 操作文件
#查看文件状态
git status
#查看文件状态(简化版)
git status -s
#添加文件到暂存区
git add 文件名
#添加所有文件到暂存区
git add .
#将暂存区的文件提交到本地仓库
git commit -m "备注提交的信息"
#将本地仓库的文件推送到远程仓库
git push
#拉取远程仓库的master分支并合并到当前分支里
git pull origin master
3.5 回测版本
#查看本地仓库版本控制日志
git log
#查看本地仓库版本控制日志(简化版)
git log --pretty=oneline
#根据id(查询日志可见)回归版本
git reset --hard 版本id
#回测到上一版本
git reset --hard HEAD^
#回测到指定版本(命令里的3代表本地库向上回测3次)
git reset --hard HEAD~3
3.6 操作分支
#列出本地所有分支
git branch
#列出所有远程分支
git branch -r
#创建分支
git branch 分支名
#切换分支
git checkout 分支名
#合并分支到当前分支
git merge 分支名
#推送分支至远程仓库分支
git push origin 分支名
#删除本地分支
git branch -d 分支名
#删除远程仓库分支
git push origin --delete 分支名
四、理论
4.1文件状态
Untracked 未跟踪(未加入版本控制)
Unmodified 未修改状态(在版本控制里,未被修改,即本地文件与本地库内容相同)
Modified 已修改状态(在版本控制里,已被修改,即本地文件与本地库内容不同)
Staged 已暂存状态(已加入暂存区里)
五、bug专区
5.1 git push后错误
#报错
master -> master (non-fast-forward)
原因:Git仓库中已经有一部分代码,所以它不允许你直接把你的代码覆盖上去。远程仓库和本地仓库存在差异。
解决方法
#拉取远程仓库的master分支并合并到当前分支里,就可以消除差异了
git pull origin master