git常用命令
新整理的git文档,之后可以再进行补充说明
快速入门
写了一会儿发现写的有点多,不一定有耐心可以看完,所以写一个快速入门,只有最基本的命令
- git clone 【项目地址】 --克隆到本地
- git add 【修改的文件】 --将我们修改的某个文件添加到索引库中
- git add . --将本地所有的更改都添加到索引库中
- git commit -m “你提交的summary” --提交到本地仓库
- git push --提交到远程仓库
- git stash save "你stash的一些 message" --暂存,这个命令在你开发多个项目切分支的时候特别好用,你可以把这些更改应用到新的分支(当你新建文件修改了代码,如果没有
git add
那么你用git stash
是不能保存修改到暂存区的,但是如果你没有新建文件,只是在原有文件里进行修改,那么是可以在没有git add
的情况下保存到修改到暂存区的。) -
git stash list --查看暂存区
-
git stash pop --这个也是很常用的一个命令,不带任何参数,会恢复最新的一个暂存版本
-
git stash apply 【暂存的版本】 --恢复指定的暂存版本
2. git pull --rebase 将远程的覆盖到本地
3. git mergetool 如果有冲突的话,使用解决冲突的工具进行解决,具体配置冲突解决工具可以进行百度,两个命令即可
4. git rebase --continue 解决完冲突之后,继续覆盖(为什么我要加 rebase,以及pull的时候也强制覆盖,因为这样不会产生merge更改集,这是一个很恶心的东西,如果需要对merge更改集之前的版本进行操作会很麻烦,而且merge更改集使用 - git revert 根本不管用)
5. git push --推到远程仓库
新建工程
一般我们都是已经有远程仓库了,从远程仓库进行克隆,以我们mms项目为例
从coding上找到我们的代码地址,复制,执行命令 - git clone xxx.git 即可
这样,代码就clone下来了。如果要对我们的项目进行操作,需要切换到该项目的.git目录下
也就是这个目录
之后,我们就可以使用git命令对该项目进行操作啦~~~
分支管理
查看分支
如果需要查看一下我们所在的分支,执行命令 - git branch 即可
- git branch
当然,你也可以在我圈起来的地方看到
如果要查看所有分支的话,那么只需要执行命令 - git branch -a 即可
这样就能看到我所有的分支了,*所在的是当前分支
切换分支
目前我们这里总有5个分支,如果我想去test-dev进行开发,那么我只需要执行 - git checkout test-dev 即可
- git checkout test-dev
新建分支
如果我们需要新建一个分支,只需要执行命令 - git checkout -b 【然后加上你的分支名即可,这个括号没有哦~】即可
比如我要新建一个分支名为 test-zq 的分支
- git checkout -b test-zq
你会发现我不仅新建了一个分支,还切换到这个分支了,这是因为这个命令其实是整合了 - git branch 【分支名】与 - git checkout 【分支名】这两个命令
当然,这个时候只是在你本地新建了一个分支,远程是没有的,也就是说,别人如果从远程clone下来代码是看不到你这个分支的,必须得推到远程分支才能够被其他人看到
使用命令 - git push origin 【分支名】即可
由于我这边只是做一个简单的演示,就不推了,不然还得再删除,如果后期有需要可以再进行补充
删除分支
一般大家应该很少用到,所以就暂时不写了,如果有需要后期可以进行补充
简单说一下就是删除分支的时候不仅要删除本地分支,还得删除远程分支
也就是说需要执行以下两个命令
- git branch -d 【分支名】
- git push origin --delete【分支名】
如果只是删除本地的,那么只需要执行第一个命令即可
合并分支
这个我们可能用的比较多一些,一般master分支是我们线上的分支,我们进行开发都是拉一个新的分支出来,或者有几个项目并行的时候,都是在各自的分支上进行提交,测试通过后再合并到master
比如我们的一个项目已经在 test-zq 分支测试通过了,想要上线,那么我需要先将master的代码合并到我当前的分支(在合并之前记得先pull,一定要pull,记得!!!!)
- git merge master
然后再切换到master分支,将我们的 test-zq 分支合并到master
- git merge test-zq
这样就完成了合并,记得要push哦~
提交代码
最常用的命令就是这个了,如果我现在在本地做了一些修改,想要查看我修改了那些文件,使用命令 - git status 即可
可以看到我修改了 .gitignore 文件
如果这个时候我想要把这个文件提交,那么我首先要把它提交到缓存区,然后推到本地仓库,最后再推送到远程
提交到缓存区,我们一般使用 - git add【你的文件】命令,如果要提交所有的文件,那么我们使用 - git add . 多了一个点哦~,这个命令会把你新增的文件也检测到
这个时候再查看下状态,会发现有变化,提醒我们需要提交到本地仓库
然后执行 - git commit -m "你提交的summary" 提交到本地仓库,这个时候再查看下状态,会发现有变化(如果没有后面的 -m参数的话,会跳到另外一个界面让你输入提交的summary)
会提醒你需要push到远程分支,执行 - git push 命令即可
这样,我们提交的代码别人只要 - git pull 就可以看到啦~
解决冲突
使用命令行也可以解决冲突,但是vim模式编辑起来太蛋疼了,所以我们一般会和其他工具配合起来来使用,我这边配置的是Beyond Compare 这个如果有需求后期可以再进行补充
查看记录
查看有哪些提交记录使用 - git log即可
回退版本
比如我要看以下项目详情页这个版本的各个文件是什么样子的,那么我可以使用 - git reset --hard 【版本号】即可
如果需要丢弃一个已经push过的提交,那么我们可以曲线救国,使用 -git revert 【版本号】即可,使用这个命令可以将你的回退作为一次新的提交
原文地址:https://www.cnblogs.com/zhangqian27/p/11587973.html
- [C#1] 6-方法
- 如何删除WordPress 的“多站点”模式(multisite)?
- 部分Sonos及Bose扬声器爆安全漏洞,被黑客入侵后发出特定音频
- TCP - WAIT状态及其对繁忙的服务器的影响
- 在Windows 7/Server 2008 R2上部署asp.net 1.1程序
- CSS Auto Reload:解放F5 键,自动刷新浏览器的前端利器(Chrome 扩展)
- zepto 基础知识(3)
- 1.[Andriod]之Andriod布局 VS WinPhone布局
- WordPress自定义url 中的“author” 别名
- ASP.NET 4 AppFabric 输出缓存提供程序
- WordPress 中禁止编辑“已发布”的文章
- Windows Server 2008 R2 网络负载平衡 (NLB)资料汇总
- 0.[Andriod]之从零安装配置Android Studio并编写第一个Android App
- WordPress 后台编辑文章页面添加自定义提示文字
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 搞它!!!Linux系统上DHCP服务器的配置(理论加实验,分分钟搞定!!!)
- 搞它!!!Linux——引导、排障及修复
- 排障集锦:九九八十一难之第一难!linux发现交换文件无法打开文件!
- 排障集锦:九九八十一难之第三难!搭建DNS错误:Host xxxx not found: 2(SERVFAIL)
- 搞它!!!linux远程控制 openssh
- 搞它!!!Linux构建远程YUM仓库与NFS共享存储服务
- 排障集锦:九九八十一难之第四难! yum下载软件发现已存在的 RPM 数据库问题,无法下载,
- 搞它!!!深入了解DNS域名解析服务,教你搭建一个属于自己的DNS服务器(正向解析、反向解析、泛域名解析、邮件交换解析、别名解析、分离解析,主从结构解析)
- Nginx Ingress 高并发实践
- 搞它!!!2020年了,你还不会PXE+kickstart 一键式部署安装系统么
- shell脚本快速入门系列—————— shell脚本编程规范
- shell脚本快速入门系列之------条件语句(if、case)
- 搞它!!!2020年了你还不会Cobbler自动装机么(装机步骤,优化内容详解,导入系统镜像步骤,cobbler-web管理认证方式
- 搞它!!!深入了解FTP文件传输服务
- 搞它!!!CentOS 7.6 安装和配置samba文件共享服务