【Git】(2)---checkout、branch、log、diff、.gitignore
常用命令
一、命令
1、checkout 切换分支
git checkout 分支名 #切换分支
#如果在当前分支上对文件进行修改之后,没有commit就切换到另外一个分支b,
这个时候会报错,因为没有commit的文件在切换分支之后会不覆盖。所以Git 报错提示。
git checkout -f 分支名 #强制切换到分支
#如果在当前分支上对文件进行修改之后强制切换另一个分支,那么当前分支修改东西直接丢弃,所以-f 参数一定一定要非常非常小心使用,一般情况下不建议使用,除非真的要强制去执行 git checkout - # 切换到上一个分支
git checkout . # 撤销工作区中当前目录中的所有更改
2、branch 查看新建分支
git branch # 列出所有本地分支
git branch -r # 列出所有远程分支
# 新建一个分支,但依然停留在当前分支 这个时候本地已经有新分支了,但远程还没有,只有切换到新分支push后,远程就有了
git branch [branch-name]
git checkout -b [branch] # 新建一个分支,并切换到该分支
git branch -d [branch-name] #删除分支 已合并的分支 *不能删除当前所在的分支
git branch -D dev #强行删除分支 分支未合并
git push origin --delete [branch-name] # 删除远程分支
3、log 查看提交记录
git log -数字 #表示查看最近几次的提交
git log -p -2 #显示最近两次提交的不同点
git log --author #查看具体某个作者的提交
git log --online #输出简要的信息
4、merge 合并分支
git merge [branch] #合并指定分支到当前分支
5、diff 解决冲突 制作补丁
合并分支时,如果两个分支都对同一文件进行修改,那么合并的时候就会有冲突。
git diff HEAD #比较当前工作区和上一次提交时文件的差异
git diff HEAD^ #比较上一次提交和上上次提交的文件差异
git diff 分支名 #查看当前分支跟指定的分支的差异
git diff 分支名1 分支名2 #查看两个指定分支(已提交的)的差异,分支2 跟分支1的差别
git diff --name-only --diff-filter=U #查看冲突文件 这个太有用啦
HEAD用法
HEAD 最近一个提交
HEAD^ 上一次提交
HEAD^ ^ 上一次的 上一次的提交(倒数第三次)
HEAD^^^ 倒数 第四次的 提交
6、reset 版本回退
语法:git reset --hard 版本号 注意:回退只是在本地进行回退,远程仓库还是最新的,所以之后要先pull
git reset --hard HEAD^ #将 Git 回退到上一个版本 也就是上上次提交的时候,这样就可以撤销当次提交的信息
git reset --hard 4b2a0c8 #版本号(commit id)没必要写全,一般写前七位就够了,Git会自动去匹配。
二、.gitignore 文件
大量与项目无关的文件全推到远程仓库上,同步的时候会非常慢,且跟编辑器相关的一些配置推上去之后,别人更新也会受其影响。所以,我们使用该文件,
对不必要的文件进行忽略,使其不被git追踪。
一把情况下,.gitignore文件,在项目一开始创建的时候就创建,并推送到远程服务器上。这样大家初次同步项目的时候,就是用到该文件,避免以后,团队
成员把与项目无关的文件,传到远程服务器上。
*.log #表示忽略项目中所有以.log结尾的文件
123?.log #表示忽略项目中所有以123加任意字符的文件
/error.log #表示忽略项目中根目录中的error.log 这个文件
src/main/test/* #表示忽略/src/main/test/目录下的所有文件
**/java/ #匹配所有java目录下的所有文件
!/error.log #表示在之前的匹配规则下,被命中的文件,可以使用!对前面的规则进行否定
对于已经提交到远程或本地仓库的文件,.gitignore配置之后不会生效。我们必须先删除本地暂存区里的文件,之后在加上.gitignore 文件,最后再把变更提交到远程仓库上。
git rm --cached 文件名 #从暂存区删除某个文件
git rm -rf --cached 文件夹 #表示递归删除暂存区该文件夹的所有东西
三、案例
1、commit后,需要回到上一个版本,这个版本数据全部不要
(1)为保险起见,我们可以先切一个分支出来,保存当前版本,必然以后
elasticsearch-head是elasticsearch(下面称ES)比较普遍使用的可监控.测试等功能的集群管理工具,是由H5编写的单独的网页程序.使用方法网上很多,这里教大家一个超简单安装h ... MVC图片上传.浏览.删除 1.存储配置信息 在web.config中,添加配置信息节点 <appSettings> <add key="UploadPath" ... 上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [View ... 上一篇博客我们已经带大家简单的吹了一下IoC,实现了Activity中View的布局以及控件的注入,如果你不了解,请参考:Android 进阶 教你打造 Android 中的 IOC 框架 [View ... <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ... 截取自:第一部分软件测试综述——软件测试背景[软件测试](美)Ron Patton中文电子版(有需要的可以关注我) 第一部分软件测试综述 对手的程序死掉叫崩溃.自己的程序死掉叫“身体不良反应(idio ... 笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题. [Unity Shader](三) -- ... 一.连接和关闭 1.mysql_connect('example.com:3307', 'root', '123456') --打开一个到 MySQL 服务器的非永久连接 2.mysql_pconne ... 新进阶的程序员可能对async.await用得比较多,却对之前的异步了解甚少.本人就是此类,因此打算回顾学习下异步的进化史. 本文主要是回顾async异步模式之前的异步,下篇文章再来重点分析async ... 1.接口响应结果,通常为HTML.JSON格式的数据,对于HTML的响应结果的提取,可以通过正则表达式,也可以通过XPath 来提取. 2.对于JSON格式的数据,可以通过正则表达式.JSON Ext ... 在搭建完android studio 后使用虚拟机或真机调试程序,出现如下错误. 在运行里输入cmd,打开命令行工具,使用netstat -aon|findstr 5037查看adb.exe的50 ... 方式一: /** * 两个线程要是可见的所以要加上votalile */public class Test_01 { public static void main(String[] args) { ... 简介grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能 ... 1.首先,我们必须得连上我们的MYSQL数据库.个人遇到连不上MYSQL数据的问题主要有:数据库的权限问题.数据库表权限的问题 同时获取数据库中的数据等. //==================== ... wget https://codeload.github.com/sqlcipher/sqlcipher/zip/v3.4.2 ./configure --enable-tempstore=yes C ... 以下错误: ORA-00922: 选项缺失或无效 ORA-00922: missing or invalid option 是由于: execute(sql)语句多了个分号 ; 你没看错!!! 在sq ... 如何在IIS7或IIS7.5中导入导出站点及应用程序池. 为实现负载平衡,我们可能会使用多个WEB服务器,也就会需要给多个IIS配置同样的站点和应用程序池.那么我们需要一个一个的重新建吗?当然不用,我 ... 这个build.xml是由eclipse neon 2016.6生成的 我的情况是,所有文件都使用了UTF-8编码,build.xml第一行也好好写着UTF-8,但build时仍然有乱码,并且提示失败 ... Filter简介 Filter也称之为过滤器,它是Servlet技术中最实用的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件 ...【Git】(2)---checkout、branch、log、diff、.gitignore的更多相关文章
随机推荐