文档章节

几个非常有用的 Git 命令

牛头人之怒
 牛头人之怒
发布于 2014/03/04 21:39
字数 882
阅读 94
收藏 9
点赞 0
评论 0

1. 导出最后一次提交修改过的文件

 我一直在使用这个命令定期进行发送给其他人进行审查/整合。这条命令将把近期提交的修改过的文件导出到一个zip文件。

git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^)


2. 导出两次提交之间修改过的文件

  同样,如果你需要导出两次提交之间修改过的文件,你可以用这一个。

git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE)


3. 克隆一个特定的远程分支

  如果你想从远程仓库克隆特定的一个分支,这条命令对你很有用:

git init  
git remote add -t BRANCH_NAME_HERE -f origin REMOTE_REPO_URL_PATH_HERE  
git checkout BRANCH_NAME_HERE

4. 从无关的本地仓库应用补丁

  如果您需要申请从提交的一些其他不相关的创库到本地存储库,这里是一个快捷的方式:

git --git-dir=PATH_TO_OTHER_REPOSITORY_HERE/.git format-patch -k -1 --stdout COMMIT_HASH_ID_HERE| git am -3 -k

5. 检查您的分支变化是是否其他分支的一部分

  cherry 命令可以让你检查你的分支的变化是否存在于其他一些分支之中。它会显示在当前分支相对于给定的分支的修改,用+或-标志提示提交合并与否。+表示不存在,而-表示存在于给定的分支。

git cherry -v OTHER_BRANCH_NAME_HERE 
#For example: to check with master branch  
git cherry -v master

 

6. 启动一个无历史的新分支

  有时候,你需要启动一个新的分支,同时想摒弃历史信息,例如,你想将代码放在公共领域(开源)又不想共享历史信息。

git checkout --orphan NEW_BRANCH_NAME_HERE

 

7. 在不切换分支的情况下从其它分支检出文件

  下面的命令是从其他分支获取文件,而不用切换分支。

git checkout BRANCH_NAME_HERE -- PATH_TO_FILE_IN_BRANCH_HERE

 

8. 忽略跟踪文件的修改

  如果你工作在一个团队,他们都是工作在同一个分支,

git update-index --assume-unchanged PATH_TO_FILE_HERE

你需要频繁的读取/合并文件。但是有时复位了你环境的特定配置,你必须在合并后每一次都再改一下。使用这个命令,你可以忽略更改特定的文件:

 

9. 检查提交的修改是否发布版本的一部分

  这个 name-rev 命令可以告诉你提交相对于最新发布版本的位置。利用这一点,你可以检查你的变化是否发布版本的一部分。

git name-rev --name-only COMMIT_HASH_HERE

 

10. 使用 pull rebase 操作替代 merge

  如果你工作的团队正工作在同一个分支,那么你所要做的获取/合并或经常拉取。分支合并的 git 记录与合并提交时提示功能分支被并入主干。但在多个团队成员工作的同一分支的情况下,经常合并导致在日志中多个合并的消息引起混乱。所以你可以使用 pull rebase,以保持历史信息清除了无用合并的消息。

git config branch.BRANCH_NAME_HERE.rebase true

  此外,您可以配置一个特定的分支总是衍合:

git pull --rebase


本文转载自:http://www.cnblogs.com/lhb25/p/10-useful-advanced-git-commands.html

共有 人打赏支持
牛头人之怒
粉丝 5
博文 7
码字总数 8955
作品 0
常州
程序员
Git使用手册2 —— 基础操作(中)

三、 查看提交历史 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史. 完成这个任务最简单而又有效的工具是 命令。 接下来的例子会用我专门用于演示的 simplegit 项目,...

常大鹏 ⋅ 2016/06/19 ⋅ 0

git命令行扩展工具--Git Extras

git-extras 是TJ出品的git命令行扩展工具。它提供了很多有用的命令,包括: git-[feature|refactor|bug] [finish] 通过name来创建给定的feature,refactor,bug分支,如: git checkout maste...

cgcgbcbc ⋅ 2013/09/15 ⋅ 1

Git 撤销修改

增补提交   git commit –C HEAD –a --amend   -C表示复用指定提交的提交留言,这个例子中是HEAD,实际上可以指定其他有效的提交名称。   如果参数是小写的-c,就会打开预先设置好的编...

sflfqx ⋅ 2014/08/20 ⋅ 0

Git 改变了分布式 Web 开发规则

版本控制系统是大部分开发项目的核心组件,无论是开发应用程序、网站还是操作系统。大部分项目都涉及多个开发人员,往往位于不同的位置。分布式版本控制系统并不是新事物,但是 Git 版本控制...

红薯 ⋅ 2009/10/19 ⋅ 1

JavaScript 包管理器--Component

Component 是一个对客户端 JavaScript 包进行管理的工具,用于更好的构建 Web 应用。 特点: 编写模块化 commonjs 组件 编写包含样式、图片、脚本等内容的组件 无需注册表发布或者帐号,使用...

匿名 ⋅ 2013/02/01 ⋅ 0

Git详解之六 Git工具

Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程。你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力...

小米米儿小 ⋅ 2013/08/08 ⋅ 0

git stash pop 冲突,git stash list 中的记录不会自动删除的解决方法

在使用git stash代码时,经常会碰到有冲突的情况,一旦出现冲突的话,系统会认为你的stash没有结束。 导致的结果是git stash list 中的列表依然存在,实际上代码已经pop出来了。 处理的方式非...

钱天兵 ⋅ 2017/06/30 ⋅ 0

学习PHP精粹,编写高效PHP代码之质量保证

一、使用静态分析工具测量质量 我们用静态分析测量代码而不运行它。实际上,我们将这些工具用于评估代码、读取文件、衡量它所写的要素。使用这些工具,可以帮助我们对代码库有一个完整的层次...

风格时光 ⋅ 2014/06/08 ⋅ 0

有关git的问题,请教!!!

最近在给项目建git库,遇到了几个问题,一时没法搞定,特来向大家请教: 1. git clone的时候能否只clone版本库的某一个分支呢?如果可以的话,在git clone命令中如何指定这个分支?如果不可以...

Jasper Brown ⋅ 2012/06/18 ⋅ 2

一个很流行的版本控制系统Git学习笔记

什么是Git   Git是一种非常流行的分布式版本控制系统,它和其他版本控制系统的主要差别在于Git只关心文件数据的整体是否发生变化,而大多数版本其他系统只关心文件内容的具体差异,这类系统...

2012hjtwyf ⋅ 2017/06/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

火狐浏览器各版本下载及插件httprequest

各版本下载地址:http://ftp.mozilla.org/pub/mozilla.org//firefox/releases/ httprequest插件截至57版本可用

xiaoge2016 ⋅ 19分钟前 ⋅ 0

Java学习路径及练手项目合集

Java学习路径及练手项目合集

颖伙虫 ⋅ 35分钟前 ⋅ 0

Docker系列教程28-实战:使用Docker Compose运行ELK

原文:http://www.itmuch.com/docker/28-docker-compose-in-action-elk/,转载请说明出处。 ElasticSearch【存储】 Logtash【日志聚合器】 Kibana【界面】 答案: version: '2'services: ...

周立_ITMuch ⋅ 今天 ⋅ 0

使用快嘉sdkg极速搭建接口模拟系统

在具体项目研发过程中,一旦前后端双方约定好接口,前端和app同事就会希望后台同事可以尽快提供可供对接的接口方便调试,而对后台同事来说定好接口还仅是个开始、设计流程,实现业务逻辑,编...

fastjrun ⋅ 今天 ⋅ 0

PXE/KickStart 无人值守安装

导言 作为中小公司的运维,经常会遇到一些机械式的重复工作,例如:有时公司同时上线几十甚至上百台服务器,而且需要我们在短时间内完成系统安装。 常规的办法有什么? 光盘安装系统 ===> 一...

kangvcar ⋅ 昨天 ⋅ 0

使用Puppeteer撸一个爬虫

Puppeteer是什么 puppeteer是谷歌chrome团队官方开发的一个无界面(Headless)chrome工具。Chrome Headless将成为web应用自动化测试的行业标杆。所以我们很有必要来了解一下它。所谓的无头浏...

小草先森 ⋅ 昨天 ⋅ 0

Java Done Right

* 表示难度较大或理论性较强。 ** 表示难度更大或理论性更强。 【Java语言本身】 基础语法,面向对象,顺序编程,并发编程,网络编程,泛型,注解,lambda(Java8),module(Java9),var(...

风华神使 ⋅ 昨天 ⋅ 0

Linux系统日志

linux 系统日志 /var/log/messages /etc/logrotate.conf 日志切割配置文件 https://my.oschina.net/u/2000675/blog/908189 logrotate 使用详解 dmesg 命令 /var/log/dmesg 日志 last命令,调......

Linux学习笔记 ⋅ 昨天 ⋅ 0

MVC——统一报文格式的异常处理响应

在我们写controller层的时候,常常会有这样的困惑,如果需要返回一个数据是,可能为了统一回去构造一个类似下列的数据格式: { status:true, msg:"保存成功!", data:[]} 而且在写...

alexzhu592 ⋅ 昨天 ⋅ 0

android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app

开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。 如果手机本身...

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部