本文是在Git操作指南基础上衍生出来的高级操作,如果你对git不是很熟悉,建议你先阅读Git操作指南。

一、忽略提交特定文件

如果你不想让一些文件上传到git仓库中,可以让Git忽略特定文件或是目录,通过vi ~/.gitconfig编辑git的配置文件,可以使用感叹号(注意英文)来指出例外的情况。

 !*.a                        //所有文件后缀为a的都不提交
!/demo/ //文件demo下的所有文件都不提交

二、查看仓库历史记录

git log 用来查看仓库历史记录,有三个参数:

  1. oneline——把每次提交间显示的信息压缩成缩减的hash值和提交信息,在一行显示。
  2. graph——该选项会在输出界面的左手边用一种基于文本的图形表示法来显示历史。用来查看所有分支,单独分支无效
  3. all——显示全部分支的历史

三、查看丢失文件

如果你通过硬重置(hard reset)使其回到了之前的状态。在这个过程中你丢失了一些其他的信息,想要查看丢失的内容。可以使用git reflog(显示的是所有head移动的信息)命令,它是在本地的,而不是你仓库的一部分,不会包含在推送(push)和合并中(merge)。

git reflog在大型仓库中是不好使的,这时候需要使用git fsck,可以使用git show [commit_hash]来查看这些提交所包含的改动或者是使用git merge [commit_hash]来恢复它

git reflog 与 git fsck 的最大不同是当你删除了一个远端分支并且克隆了仓库,使用fsck命令你可以搜索并恢复该远端分支。

四、从不同的分支里选择某次提交并且把它合并到当前的分支来

实现改功能的命令就是git cherry-pick [commit_hash]。

比如说有如下场景,当一个团队在开发时,两个人在解决一个问题,但是他们所处的分支不同,这是后一个人把自己写的代码提交到自己所处的分支,那么另一个人要想看到效果,就得把刚才那个人提交的代码合并到自己的分支,这时候就需要使用git cherry-pick [commit_hash] commit_hash是提交时的标签,

小结:

在使用git时,不同的场景有不同的需求,上面是我在使用git时遇到的一些问题及解决方法,如果你有其他问题或者有好的解决方法,可以@me,希望此文能对你有所帮助。

Git高级操作的更多相关文章

  1. 版本控制工具——Git常用操作(上)

    本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...

  2. Git - 高级合并

    Git - 高级合并https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%AB%98%E7%BA%A7%E5%90%88%E5%B9%B6 ...

  3. Git高级使用教程

    Git 与 SVN 区别 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...

  4. Git远程操作详解

    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...

  5. Git远程操作

    Git远程操作 // */ // ]]>   Git远程操作 Table of Contents 1 Git远程命令概览 2 Git远程仓库与本地仓库的关系图 3 git clone 4 git ...

  6. Git / 程序员需要知道的12个Git高级命令

    众所周知,Git目前已经是分布式版本控制领域的翘楚,围绕着Git形成了完整的生态圈.学习Git,首先当然是学习Git的基本工作流.相比于SVN等传统版本控制系统来说,Git是专为分布式版本控制而生的强 ...

  7. [转]Git远程操作详解

    原文:http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多 ...

  8. Git基础操作

    配置秘钥 1.检查本机有没有秘钥 检查~/.ssh看看是否有名为d_rsa.pub和id_dsa.pub的2个文件. $ ~/.sshbash: /c/Users/lenovo/.ssh: Is a ...

  9. Git 远程操作详解

    Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Gi ...

随机推荐

  1. angular学习笔记(二十二)-$http.post

    基本语法: $http.post('url',{},{}).success(function(data,status,headers,config){ }).error(function(data,s ...

  2. 使用vuex保存singer每个歌星的基本信息

    1.建src/store文件夹,建立以下文件来存储歌星信息 2.state.js const state = { singer:{} } export default state 2.mutation ...

  3. asp.net 获取客户端IP

    一.名词 首先说一下接下来要讲到的一些名词. 在Web开发中,我们大多都习惯使用HTTP请求头中的某些属性来获取客户端的IP地址,常见的属性是REMOTE_ADDR.HTTP_VIA和HTTP_X_F ...

  4. 修改mysql root账户登录密码

    打开mysql.exe(如果你配置了path的话,打开cmd即可)键入: mysqladmin -u root -p password [你的新密码][回车] 然后会要求你输入你当前的密码,就修改成功 ...

  5. WEB开发的标准目录结构

    刚才在书上看到的,感觉很重要,简单做个笔记 把你的jsp.css.js代码分别放到3个文件夹中(这3个文件夹就名为jsp,css,js),文件夹中设置子目录,这些子目录最好命名与html文件的子目录命 ...

  6. registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

    问题是tomcat的版本问题,tomcat新检测机制导致的这个问题,换版本可以解决问题,但不建议这么做,租用服务器不是你说换就换的.其实问题根源是BasicDataSource,BasicDataSo ...

  7. ucos-III前言

    年 uC/OS-III实时操作系统面世以来,uC/OS-III的性能和稳定性已经日趋完善.uC/OS-III对前面版本取精弃粕,推陈出新,功能和性能比起 uC/OS-II已经上了很大一步台阶.uC/O ...

  8. gvim配置到命令行可以使用

    下载安装gvim后,把gvim的安装目录添加到环境变量.

  9. J2EE面试题集锦_

    一.基础问答 不能被继承的类有[Long  Double  Float  Short  Void  Class  Math  String] 他们都被final修饰         类可以被继承[Th ...

  10. 【C#】List列表的深复制,引用类型深复制

    需求:深复制该列表. Student实体类: public class Student { public string Name { get; set; } public int Age { get; ...