Git高级操作

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

一、忽略提交特定文件

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

1 !*.a                        //所有文件后缀为a的都不提交
2 !/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,希望此文能对你有所帮助。

时间: 2024-10-11 05:14:56

Git高级操作的相关文章

线程高级操作(二)

之前在线程高级操作中说到了线程的高级操作包括修改线程的属性和进行线程之间的同步操作.线程的同步有两种方式,一种是使用互斥量一种是使用读写锁.上一篇文章说的是互斥量,这篇文章主要介绍的是读写锁. 读写锁与互斥量类似,但是读写锁相对于互斥量来说最大的特点就是并行性高.互斥锁每次只有一个线程可以得到锁进行操作,其他的线程处于阻塞状态.多线程的意义就在于高并发性,但是使用互斥量就会将并行操作编程串行操作,程序的效率会大打折扣. 读写锁的优点是读写锁分为两种,读线程和写线程.读线程只对共享资源进行读操作,

数据库的高级操作

高级操作 复制表结构 语法: ????create table 表B like 表A; 示例: 复制表中的数据 语法: ????create table 表B select *或字段列表 from 表A; 蠕虫复制 语法: ????insert into 表名[(字段列表)] select *或字段列表 from 表名; 修改操作 ????限制修改指定的行数. 语法: ????update 表名 set 字段=值... [where子句] limit n; 说明: ????在执行update语句

Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git clone 远程操作

Git大法好——2.Git本地操作指令详解

Git大法好--2.Git本地操作指令详解 引言 上节给大家讲解了有关于Git的一些概念,Git的引入,Git的四个组成部分,Git文件的状态,以及 Git的下载安装:前面也讲过Git和SVN有个明显的差别就是,Git可以不需要网络就可以进行版本 控制,这是因为Git中每个电脑都拥有一个本地的版本库,而远程的仓库仅仅是作为我们交换修改 的一个工具!即使失去这个工具,我们也可以干活,只是交换修改不方便罢了,假如是SVN,远程 服务器挂了-所以,我们使用Git的时候大部分时间都是在进行Git的一些本

你需要知道的12个Git高级命令

众所周知,Git目前已经是分布式版本控制领域的翘楚,围绕着Git形成了完整的生态圈.学习Git,首先当然是学习Git的基本工作流.相比于SVN等传统版本控制系统来说,Git是专为分布式版本控制而生的强大工具.使用Git时常用的命令有pull.commit.push等,貌似很简单.不过,有时你会遇到合并冲突的情况,Git这时会将冲突标记出来,需要你手工来解决.有时,你会不小心将代码提交到错误的分支上,并且又推送到了远程仓库.还有些时候,你需要切换到不同的分支,但Git却不让你这么做,因为还有未保存

git 入门操作指令

git add [commit file list] 将已经修改的代码添加索引 git commit -m [commit message] 将已经索引的代码修改提交至本地的库 git push origin [branch_name] 将分支 branch_name 的代码推送至服务器 git pull origin [branch_name] 获取分支 branch_name上的最新代码 git pull --rebase origin [branch_name] 将当前 branch 从

Git 更新操作

修改现有函数 Tom 执行克隆操作后,看到新的文件string.c,他想知道这个文件到存储库?目的是什么?于是,他执行 git 日志命令. [[email protected] ~]$ git clone [email protected]:project.git 上面的命令会产生以下结果. Initialized empty Git repository in /home/tom/project/.git/ remote: Counting objects: 6, done. remote:

git 常用操作集锦

创建仓库 新建普通仓库: [email protected]:~/workspace/git$ git init Reinitialized existing Git repository in /home/jxdong/workspace/git/.git/ 新建 bare 仓库: [email protected]:~/workspace/git.git$ git init --bare Initialized empty Git repository in /home/jxdong/wor

【Git】Git远程操作详解

Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能. Git有很多优势,其中之一就是远程操作非常简便.本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作. git clone git remote git fetch git pull git push 本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解.同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值. 一.git clone 远程操作