Git,是一个最先进的分布式版本控制系统。目前还在学习中,会持续更新本文
以下的图很直观的展示出来Git的工作流程:
一、总结了几个常用的术语
1、仓库(Repository):简单理解为能被git管理起来的一个目录,目录下每个文件修改、删除都能被跟踪。
2、工作空间(workspace):简单理解为目前在硬盘上目前可以编辑的内容
3、暂存区(index 或者称之为 stage ):git add 之后,git commit之前暂存的文件
4、远程仓库(Remote): 便于多人合作
二、基础命令
1、git stash 可以将当前的工作状态保存到git栈
1.git stash 保存当前工作空间与暂存区的状态,把当前工作隐藏起来
2.git stash pop 默认恢复最新的一个stash
3.git stash clear 清空git栈
4.git stash list 显示Git栈内的所有备份
...
解决的问题:
1、从远程仓库pull时提示如下信息:
Your local changes would be overwritten by merge. Commit, stash or revert them to proceed
解决方法:
git stash -- git pull -- git stash pop (我直接用的webstorm)
2、git log 命令可以看到最近到最远的提交日志, git log --pretty=online,减少输出信息
$git log
commit 402ac004d0f6c1588afb33f26daa153fa4af7b96 (HEAD -> develop)
Author: Mr <490@qq.com>
Date: Fri Sep 27 17:16:02 2019 +0800
fix(basic bug#7229):修复iframe高度无法自适应问题
// 402ac004d0f6c1588afb33f26daa153fa4af7b96 为commit id 的版本号
3、git reset 退回版本
//HEAD 表示当前版本,上一个版本HEAD^, 上上个版本HEAD^^.依次类推。往上版本可以写成HEAD~100
$git reset --hard HEAD^
HEAD is now at 402ac00 fix(basic bug#7229):修复iframe高度无法自适应问题
//注意:当回退到后一个版本时,上一个版本在git log中就消失了。如果想回退,要记录 commit id 的版本号
$git reset --hard 402ac004d0f6c1588afb33f26daa153fa4af7b96
4、git reflog 用来记录每一命令
$git reflog
fb009d6 (HEAD -> develop, origin/develop, origin/HEAD) HEAD@{0}: pull --progress --no-stat -v --progress origin develop: Merge made by the 'recursive' strategy.
75fb3e2 HEAD@{1}: reset: moving to HEAD
75fb3e2 HEAD@{2}: commit: fix(basic bug#7229):修复iframe高度无法自适应问题
//fb009d6 这段编码为 commit_id
//使用 git reset --hard commit_id 即可回到相应的版本,亦可以解决看不到回退时,想回到前一个版本问题