git 查看天
curl [wttr.in/xiamen](qq://txfile/#)
*****
**升级:**
1.打开[Epel-release](https://link.segmentfault.com/?enc=qr2EIlv7AkSinX9wx4gVgw%3D%3D.NPUBGgvcZzOgmTndP7KBoeXCcsQigHnzEtvwxCcPhP7YlEvyLLplKAp4yw0jh%2BMSQnZjq9%2Fx1eLxhFRF9rb%2Bnsw2fHf0c8X%2FB595cBMybZM%3D)搜索git,并用yum安装rpm包
~~~awk
yum install https://packages.endpointdev.com/rhel/7/os/x86_64/endpoint-repo.x86_64.rpm
~~~
2.安装即可
~~~cmake
yum install git
~~~
*****
查看月相。
curl wttr.in/moon
查找 commit 提交的关键字
git log --grep 版本号变更
git log --grep=word
git log --author=word
BUG分支
git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list 查看stash
git stash apply 恢复现场
git stash drop 删除保存的stash
git stash pop 恢复并删除stash
git stash apply stash@{0} 多次stash,恢复指定的stash
[https://github.com/k88hudson/git-flight-rules/blob/master/README\_zh-CN.md](https://github.com/k88hudson/git-flight-rules/blob/master/README_zh-CN.md)
git init 初始化
git config user.name "test" 配置用户名
git config usre.email "test@qq.com" 配置用户邮箱
git status 查看状态
git add a.txt 添加,有工作区到暂存区
git commit a.txt 提交, 由暂存区到版本区
git log 查看日志
git log -1 查看最近一次提交的日志
git log -2 最近两次
git log --oneline 以一行显示
git log -l -p 查看具体提交信息
git log --pretty=oneline
git log --pretty=oneline --abbrev-commit
git commit -am 'ceshi' add commit 组合
git push 仓库地址 从本地到远程仓库
git pull 从远程仓库到本地
git clone 从远处仓库克隆一个到本地
git diff 比较工作区与缓存区之间的差别
git diff --cached 比较缓存区与版本之间的差别
git diff HEAD 比较工作区与版本库之间区别
git checkout 取出历史版本
[https://www.cnblogs.com/smuxiaolei/p/7484678.html](https://www.cnblogs.com/smuxiaolei/p/7484678.html)
//git 回退版本号处理
第一种是:git reset --hard HEAD^
那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset --hard HEAD~100 即可。未回退之前的readme.txt内容如下:
第二种 git reset --hard HEAD^ ^ 以此类推
第三种 git reset --hard HEAD~100
第四种 git reset --hard 版本号
git reset --hard 版本号 ,但是现在的问题假如我已经关掉过一次命令行或者333内容的版本号我并不知道呢?要如何知道增加3333内容的版本号呢?可以通过如下命令即可获取到版本号:git reflog 演示如下:
第五种 git reflog 在执行 git reset --hard 版本号
三:理解工作区与暂存区的区别?
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
我们前面说过使用Git提交文件到版本库有两步:
第一步:是使用 git add 把文件添加进去,实际上就是把文件添加到暂存区。
第二步:使用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支上。
我们继续使用demo来演示下:
我们在readme.txt再添加一行内容为4444444,接着在目录下新建一个文件为test.txt 内容为test,我们先用命令 git status来查看下状态,如下:
![](C:/Users/Administrator/AppData/Local/YNote/data/qq687938EA3FCF98736CBB3342CDC12736/ed016481694a4dce88d8c7a90c51b353/clipboard.png)
现在我们先使用git add 命令把2个文件都添加到暂存区中,再使用git status来查看下状态,如下:
![](C:/Users/Administrator/AppData/Local/YNote/data/qq687938EA3FCF98736CBB3342CDC12736/06fdbe7a42d843b6a10203ea498f09f2/155323068088.png)
接着我们可以使用git commit一次性提交到分支上,如下:
![](C:/Users/Administrator/AppData/Local/YNote/data/qq687938EA3FCF98736CBB3342CDC12736/3bc52224d1c4495c931b6b70e97bbb60/155323704968.png)
三 Git 编辑撤销处理
1.未添加到缓冲区
2.已添加到缓冲区
注意:命令git checkout -- readme.txt 中的 -- 很重要,如果没有 -- 的话,那么命令变成创建分支了。
总结
Git基本常用命令如下:
mkdir: XX (创建一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成可以管理的git仓库,生成隐藏.git文件。
git add XX 把xx文件添加到暂存区去。
git commit –m “XX” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff XX 查看XX文件修改了那些内容
git log 查看历史记录
git reset --hard HEAD^ 或者 git reset --hard HEAD~ 回退到上一个版本
(如果想回退到100个版本,使用git reset –hard HEAD~100 )
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout -- XX 把XX文件在工作区的修改全部撤销。
git rm XX 删除XX文件
git remote add origin [https://github.com/tugenhua0707/testgit](https://github.com/tugenhua0707/testgit) 关联一个远程库
git push –u(第一次要用-u 以后不需要) origin master 把当前master分支推送到远程库
git clone [https://github.com/tugenhua0707/testgit](https://github.com/tugenhua0707/testgit) 从远程库中克隆
git checkout –b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来 等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git remote 查看远程库的信息
git remote –v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上
//创建本地分支 并切换
git checkout –b dev 创建dev分支 并切换到dev分支上
//删除本地分支
git branch -d
$ git checkout -b 新切的本地分支名 origin/v0.9rc1
#从远程分支拉取 到本地分支
git checkout -b 本地分支名称 origin/远程分支名称
git创建远程分支命令步骤:
1、git branch 查看下当前分支
2、git branch \*\*\*(分支名称)
3、git push origin \*\*\*(分支名称) 其他的Cimmit,push操作都可以在IDEA界面化操作
git创建远程分支
git push --set-upstream origin 分支名称
//提交到远程 的dev 分支
$ git push origin HEAD:dev
方法是找到历史提交的commit id,然后打上就可以了:
$ git log --pretty=oneline --abbrev-commit
GIT 导出两个版本之间变动的文件
git archive --format=zip HEAD `git diff --name-only 新的commit 旧的commit` > a.zip
git diff f973239da8 c51d8ac78e8 --name-only | xargs zip -r ~/20190213-update4
比较两个版本之间变动的文件
git diff 456bcb 93593a --name-only
想要忽略掉 logs 文件夹下所有的日志文件,但是想保留 logs 文件夹以保持项目文件夹结构的完整性。可以在 logs 文件夹里新建 .gitignore 文件,文件内容如下:
1. \# ignore all except .gitignore file
2. \*
3. !.gitignore
git pull : //取回远程主机某个分支的更新,再与本地的指定分支合并。
git fetch origin master:tmp //从远程仓库master分支获取最新,在本地建立tmp分支 git diff tmp //將當前分支和tmp進行對比 git merge tmp //合并tmp分支到当前分支
[git删除远程分支和本地分支](https://www.cnblogs.com/luosongchao/p/3408365.html)
(1)删除远程分支
如上所示,使用命令 git push origin --delete Chapater6 可以删除远程分支Chapater6(分支名)
再次使用命令 git branch -a 可以发现,远程分支Chapater6已经被删除。
(2)删除本地分支
使用命令,git branch -d Chapater8 可以删除本地分支(在主分支中)
//小黑屋祖传代码
Git Commands
开始使用git
设置用户名
全局配置
git config --global user.name "linjinkun"
git config --global user.email "380993970@qq.com"
解决重复输入用户名密码
1\. 在终端下执行
git config --global credential.helper store
2\. 可以看到~/.gitconfig文件,会多了一项:
\[credential\]
helper = store
创建仓库(当前目录)
git init
添加文件
git add 添加指定文件
git add . 添加所有改变的文件
注:如果add后又修改了文件,还要再add一次之后再commit
提交
git commit -m "提交说明"
查看状态
git status
查看修改
git diff 查看单个文件的更改
git diff 查看所有文件的更改
查看历史提交
git log
git log --pretty=oneline 一次提交显示为一行
git blame 查看一个文件的修改记录(谁在什么事件修改了什么)
查看历史命令
git reflog
版本控制
版本回退
git reset --hard HEAD 撤销所有未提交的操作,包括add
git reset --hard HEAD^ 回退到上一个版本
git reset --hard HEAD^^ 回退到上两个版本
git reset --hard HEAD~100 回退到上100个版本
git reset --hard 回退到指定版本
git checkout -- 丢弃工作区的修改,如果文件add到了暂存区又做了修改,则恢复到暂存区,否则恢复到版本库的状态,如果文件删除了,则回复到版本库的文件
git reset HEAD 把暂存区的修改撤销掉,重新放回工作区
注:
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令 git checkout --
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令 git reset HEAD ,就回到了场景1,第二步按场景1操作
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退,不过前提是没有推送到远程库
删除/重命名
git rm 删除文件,尽管文件已经添加到暂存区(add)
git rm --cached 把文件从版本库、暂存区删掉,但是保留硬盘文件
git mv 重命名文件
远程仓库
创建ssh密钥
ssh-keygen -t rsa -C "youremail@example.com"
注:一路回车,在用户主目录里找到.ssh目录,里面有id\_rsa和id\_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id\_rsa是私钥,不能泄露出去,id\_rsa.pub是公钥,可以放心地告诉任何人,复制内容,在github上添加
远程仓库
git remote add origin git@github.com:michaelliao/learngit.git 关联远程仓库,远程库的名字就是origin,这是Git默认的叫法,也可以改成别的,但是origin这个名字一看就知道是远程库
git push -u origin master 我们第一次推送master分支时,加上了-u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令
git push origin master 把本地master分支的最新修改推送至GitHub
git clone git@github.com:michaelliao/gitskills.git 从远程仓库克隆,Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin
git remote 查看远程库的信息
git remote -v 查看远程库的详细信息
git push origin master 推送远程分支,就是把该分支上的所有本地提交推送到远程库
git pull 从远程库拉取
git checkout -b origin/ 创建远程origin的branch分支到本地
git branch --set-upstream origin/ 指定本地dev分支与远程origin/dev分支的链接
git push origin --delete 删除远程分支
分支管理
创建分支
git checkout -b 创建分支并切换过去,相当于执行了 git branch 和 git checkout
git branch 查看当前分支
git checkout 切换分支
git merge 合并分支到当前分支,有冲突修改后再add、commit
git merge --no-ff -m "合并信息" 禁止快速合并
git branch -d 删除分支
git branch -D 强行删除分支(未合并的分支)
BUG分支
git stash 把当前工作现场“储藏”起来,等以后恢复现场后继续工作
git stash list 查看stash
git stash apply 恢复现场
git stash drop 删除保存的stash
git stash pop 恢复并删除stash
git stash apply stash@{0} 多次stash,恢复指定的stash
标签管理
创建标签
git tag 创建标签
git tag 查看所有标签
git tag 在指定的版本版本id打标签
git show 查看标签信息
git tag -a -m "说明" 创建带有说明的标签
操作标签
git tag -d 删除标签
git push origin 推送某个标签到远程仓库
git push origin --tags 一次性推送全部尚未推送到远程的本地标签
git push origin :refs/tags/ 删除远程标签(删除远程标签之前要先删除本地标签)
导出
git archive -o /d/www/update.zip HEAD $(git diff HEAD HEAD^ --name-only) 导出和上个版本差异的文件
git archive -o /d/update/project.zip master -0 导出纯净项目源码
git config core.quotepath false 如果导出的文件有中文显示成Unicode导致导出失败,配置这个
其他配置
git config core.gitproxy=socks5://127.0.0.1:1080 设置socket5代理
git config core.filemode false 忽略文件权限差异
3.查看分支时间 和分支状态
git reflog show --date=iso 分支名
git 对比两个分支差异
![](C:/Users/Administrator/AppData/Local/YNote/data/qq687938EA3FCF98736CBB3342CDC12736/1fe51c2678384fc1bf22c8470190f111/a4f21c40998.jpeg)
[笨笨翔](https://www.jianshu.com/u/db9978035875)关注
2018.10.13 10:16 字数 227 阅读 417评论 0喜欢 0
1\. 显示出branch1和branch2中差异的部分
git diff branch1 branch2 --stat
2\. 显示指定文件的详细差异
git diff branch1 branch2 具体文件路径
3\. 显示出所有有差异的文件的详细差异
git diff branch1 branch2
4\. 查看branch1分支有,而branch2中没有的log
git log branch1 ^branch2
5\. 查看branch2中比branch1中多提交了哪些内容
git log branch1..branch2
注意,列出来的是两个点后边(此处即dev)多提交的内容。
6\. 不知道谁提交的多谁提交的少,单纯想知道有是吗不一样
git log branch1...branch2
7\. 在上述情况下,在显示出没个提交是在哪个分支上
git log --lefg-right branch1...branch2
注意 commit 后面的箭头,根据我们在 –left-right branch1…branch2 的顺序,左箭头 表示是branch2的。
- 空白目录
- containerd
- php
- php常用函数
- 点语法
- 依赖注入
- 反射
- 迭代器和yield
- array_walk
- str_replace
- openssl_decrypt
- array_merge
- 闭包
- 深拷贝与浅拷贝
- 面向对象
- 魔术方法
- __invoke
- __isset 和 __unset
- __clone
- 常用知识点
- 访问权限
- 抽象类
- 多态
- php框架
- tp
- tp3
- tp5
- job
- laravel
- 中间件
- laravel闭包
- symfony
- 小工具
- phpexcel
- xlswrite
- 设计模式
- 事件event
- 里氏替换原则
- 借鉴
- RESTful API
- 环境安装
- 编译安装
- 编译安装后扩展补充
- php小记录
- php-fpm
- 容器(Container)
- composer
- composer踩坑
- mysql
- 基础知识
- 外键
- 索引
- 触发器
- 定时器
- 分表
- 分区
- 连接查询
- 事务
- 锁机制
- 视图
- 存储过程
- 查询
- 字符截取
- 批量修改表名(前缀)
- explain
- when_case
- pdo
- mysql优化
- 主从复制
- 权限分配
- 实用例子
- 查询用户
- 常见问题
- 5.7group by问题
- 远程链接慢问题
- 查看进程
- 远程访问
- 常用小记
- mysqldump
- 备份还原
- 系统盘迁移数据盘
- 安装sql
- 安装MariaDB
- docker
- 安装docker
- 配置centos开发环境
- docker运行程序
- rabbitmq
- 删除无用镜像
- 解决Centos firewalld导致的docker容器内无法访问外网,无法访问其他容器(host没办法解析)
- docker-compose
- docker-selenium
- ports 配置
- docker-compose-settings
- 安装
- docker-compose常用配置
- docker常用命令
- build
- docker-hub加速
- docker-run
- Dockerfile
- apt-get update 无法升级
- 阿里打标签
- 打包流程
- docker-network
- ufw 允许 docker 容器联网
- 安装containerd
- linux
- centos7
- 常用语法
- chmod
- chown
- find
- grep
- /etc/passwd
- chattr
- In软连接
- 文件目录大小
- xargs
- 管道用法
- top
- free
- 端口占用
- 压缩解压
- tar
- gzip
- zip
- 2>&1
- 环境变量
- 服务管理
- systemctl
- sed
- shell脚本
- time
- journal
- history
- linux-set
- linux-curl
- cp
- umask
- mkdir
- http状态码
- awk
- lsof
- crontab
- supervisor
- 常用命令汇总
- 用户权限
- 普通用户添加sudo权限
- sudo su
- 添加用户
- 查看用户信息
- 修改用户信息
- 特殊权限
- 系统命令
- 常用小技巧
- vim小技巧
- 防火墙
- 常用规则
- iptables
- 磁盘清理
- 分区挂载
- linux-sh
- tmux
- 多命令执行
- 常用工具
- telnet
- ip转发
- nohup
- watch
- dig
- 查看磁盘IO
- ssh
- 修改ssh端口
- ssh免密登录
- 配置文件
- 公钥分发
- xsync
- 国内镜像站
- github加速
- 测网速
- 网卡
- 清理日志备份
- 配置sftp
- shell
- rpm
- 安全
- 安装openssl
- 安装openssh
- 禁用selinux和防火墙
- lanp环境安装
- versionTool
- git
- git基本用法
- Gogs搭建
- git钩子
- git的习惯配置
- phpStorm设置git bash
- git bash 设置代理
- gitignore 不起作用的解决办法
- gitea搭建
- 同步主干到fork
- git修改地址
- svn
- svn基本操作
- svn 钩子应用
- svn多版本操作
- Go语言
- Go语言基础
- 安装环境
- linux安装
- window安装
- 工具使用教程
- linux终端分屏Screen
- keepass 帐号密码管理
- phpstorm
- 去掉window换行符
- php_cs
- 自定义快捷模块
- phpstorm快捷键
- curl
- 正则
- 设计架构
- 设计模式的六大原则
- 计算机基础
- TCP三次握手
- OSI7层
- http状态返回码
- 前端框架
- Vue
- Angular
- React
- node
- 服务端渲染(SSR)
- MVVM
- nuxt
- pm2
- js
- Promise
- es6
- 常用站点
- 工具类
- 学习类
- ps常用命令
- nginx
- 缓存
- 配置
- TCP
- 常用配置
- ng优先级
- vhost注意点
- nginx第一层验证
- 转发(跨域问题)
- 404
- nginx日志格式化
- 重启脚本
- 宝塔禁用境外ip访问
- ng统计
- ng编译安装
- 防盗链
- 技术相关了解
- ddos
- xss
- mysql防注入
- csrf攻击
- 邮箱系统原理
- DNS
- python
- Selenium
- 微信
- 公众号
- 公众号配置
- 用户授权
- 小程序
- 公有云
- 华为云
- JAVA
- springboot
- windows
- service
- WSL
- 目录迁移
- wsl2 踩坑
- NoSql
- mongodb
- 安装mongodb
- redis
- redis-windows
- redis-linux
- openstack
- ====副业====
- 撸茅台
- 网络
- 单位换算
- DB
- clickhouse