git是一个开源的分布式版本控制软件。Github、GitLab是基于git的运程文件托管平台。
git图示
正常提交流程
git把管理的文件分为两个区域四种状态
工作区:当前开发程序所在目录称为工作区,即:工作开发都是在该目录,该区域的文件会有状态的变化且状态由git自动检测,如果程序中文件做任何操作(增、删、改),文件状态均会被检测到,可以使用 【git status】命令查看。
版本库:工作区检测到有文件发生变化,那么意味着较上一个版本之后对程序进行了修改,修改完成之后,可以当做下一版本进行提交,那么就是执行 【git add .】 将所有文件提交到暂存区,然后再执行【git commit -m ‘又一个版本’】提交到版本库的分支即可,之后可以使用【git log】命令查看版本记录。
回滚流程
分支
常用命令
-
git config --global user.name
- 设置用户名
-
git config --global user.email
- 设置邮箱
-
git init
- 初始化git
-
git status
- 查看当前git的状态
-
git add
- 添加内容至版本库
- -A 提交所有变化
- -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
- . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件
-
git commit -m “注释内容”
- 提交到版本库,并填写版本说明,以便以后回滚
-
git log
- 查看提交历史记录
- –pretty=oneline,表示只会显示版本号和提交时的备注信息
- –oneline --graph --decorate --all, 查看提交节点树
-
git reset --hard 需要回退的版本号
- 回退版本
-
git reflog
- 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
-
git branch 新建分支名
- 新建分支
- -m 分支名称,表示创建并切换到指定分支
- -d 分支名称,表示删除分支
-
git checkout 分支名
- 切换分支
-
git merge 分支名
- 合并分支
- –no-ff:不使用fast-forward方式合并,保留分支的commit历史
- –squash:使用squash方式合并,把多次分支commit历史压缩为一次
-
git rebase
- 使用注意:永远不要rebase一个已经分享的分支(到非remote分支,比如rebase到master,develop,release分支上),也就是说永远不要rebase一个已经在中央库中存在的分支。只能rebase你自己使用的私有分支
-
git pull
- –all 拉取所有分支最新代码
-
git push
- -f -u 强制推送
使用注意点
Push之前清理本地历史
如果你正确地使用git,相信我们都会频繁地做一些原子commit.我们也要铭记以下警句:不要落入SVN人员的行为模式:commit+push,这是集中式版本控制系统的最常见工作模式:每一个commit都立即push到server上。