git log
多屏显示控制 : 空格向下翻页 b 向上翻页 q 退出
历史记录一行显示 若果日志太多屏幕放不下
git log --pretty=oneline
输出历史记录但是hash直选中其中一部分 (一行显示)
git log --oneline
显示到哪个版本需要移动几步
git reflog
HEAD@{移动到当前版本去要第几步}
回退任意版本信息
git reset --hard 35851ba [ 35851ba 索引值 ]
reset 命令的三个参数 :
–soft 仅仅在本地库移动 HEAD 指针
–mixed 在本地库移动head 指针 重置暂存区
–hard 在本地库移动head 指针 重置暂存区 重置工作存区
回退上一版本
git reset --hard HEAD^ [ 回退到上一个版本 ]
git reset --hard HEAD^^ [ 回退到上二个版本 (以此类推)]
git reset --hard HEAD~2 [ 回退到上二个版本 (以此类推)]
删除文件恢复文件
rm file.txt
恢复回退版本即可
前提 删除前,文件存在的状态提交到了本地库
git reset --hard 35851ba [ 删除操作已经提交到本地库 35851ba指针位置 ]
git reset --hard HEAD [ 删除操作尚未提交到本地库 ]
比较内容的差异 (将工作区的文件内容与本地历史记录里的内容比较差异 )
不带指定文件名比较多个
git diff 练习git.txt [练习git.txt文件名字]
git强制推送push(慎用)
git push -f origin master
如何删除git暂存区的文件
git rm -r --cached 文件名
- 使用reset命令 回退到最近一次push后的状态并清空暂存区,但是工作区修改的内容也会被回退
git reset HEAD 文件名
清除缓存
npm cache clean -f
查看全局安装的包
npm list -g --depth=0
删除node-modules包
npm i -g npkill
删除
npkill
全局安装 npm i -g npkill
进入想清理的文件夹 cd 文件路径
输入npkill 会自动查找该文件中node-models
光标上下移动来选择要清理的目录,释放宝贵的空间
按空格删除
git 分支
初始化之后是有一个master 主分支 (骨干)
-u
如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。 git push -u origin master
分支的好处
- 同时并行推进多个功能开发。提高开发效率。
- 各个分支在开发过程中。如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除,重新开始即可。
创建分支
git branch hot_fix - hot_fix [ hot_fix 分支名字]
删除分支
git branch -d [分支名字]
查看分支
git branch -v
切换分支
git checkout hot_fix [ hot_fix 分支名字]
新建一个本地分支并切换
git checkout -b dbg_lichen_star [dbg_lichen_star 分支名字]
合并分支
切换到要合并的分支上面 git merge 进行合并
git checkout hot_fix [ hot_fix 分支名字]
git merge hot_fix [ hot_fix 分支名字]
分支冲突
只要你的代码和我的代码在同一行修改了,我们合并分就会冲突,他会显示自动合并失败,然我们解决分支,然后找到对应的文件夹,里面的内容会用 大于号小于号等号分割开来,找到修改代码的人,我们要商量好,就决定要用哪个代码。把多余的代码删除即可。再去执行 git add . 即可 ,再去用 git commit -m “结束合并” 不能带文件名字 结局完毕。
git add .
git commit -m “日志信息” [不能带文件名字]
补充:
-
如果不是基于GitHub,远程库的最新版。所做的修改。不能推送,必须先拉取
-
拉下来后,如果进入冲突状态。则按照分支。是冲突解决操作即可。
git hash 算法
hash是一个系列的加密算法。各个不同的哈希算法虽然加密强度不同。但是有以下几个共同点。
-
不管输入数据量有多大。输入同一个哈希算法,得到加密结果长度固定。
-
哈希算法确定。输入数据确定。输出数据能够保证不变。
-
哈希算法确定输入数据有变化,输出数据一定有变化,而且通常变化很大。
-
哈希算法不可逆。
git底层的是sha-1算法。git hash 指的就是哪个数字和英文的结合相当于 一个 id
线上分支
在线上添加创建一个分支
git push origin dbg_lichen_star
删除线上分支
删除远程分支:git push origin --delete dbg_lichen_star (dbg_lichen_star分支名)
我比较喜欢的简单方式,推送一个空分支到远程分支,其实就相当于删除远程分支:
git push origin :dbg_lichen_star
推送到远程的线上分支
- 把新建的本地分支push到远程服务器,远程分支与本地分支同名(当然可以随意起名):
git push origin dbg_lichen_star:dbg_lichen_star
git push <远程主机名> <本地分支名>:<远程分支名>
查看远程分支
git branch -r
同步本地与线上仓库
git pull --rebase origin master
本地分支和远程分支进行关联合并
git push --set-upstream origin 新分支名
git 保存项目路径,推送项目,克隆项目
查看项目路径
git remote -v
保存路径
git remote add origin sunzhihao: 2022孙志豪案例 [-origin 是给这个路径设置的别名,跟上路径]
推送项目
git push origin master [origin 是路径的名字(看上一条) master 分支名字(主分支)]
克隆项目
git clone 有三个效果 1、 完整把项目下载到本地 2、 创建远程别名3、初始化本地仓库
git clone sunzhihao: 2022孙志豪案例 [git clone 跟上地址]
拉取代码
pull = fetch + merge
pull fetch [远程库地址名] [远程库分支名]
git fetch [远程库地址别名/远程分支名]
git pull [远程库地址名] [远程库分支名]
git push -u origin “master”