GIT版本控制系统(二)
貌似第二条有点用,还木有都验证过,贴过来再说~
转自:
http://www.cnblogs.com/lhb25/p/10-useful-advanced-git-commands.html
1. 导出最后一次提交修改过的文件
我一直在使用这个命令定期进行发送给其他人进行审查/整合。这条命令将把近期提交的修改过的文件导出到一个zip文件。
|
1
|
git archive -o ../updated.zip HEAD $(git diff --name-only HEAD^) |
2. 导出两次提交之间修改过的文件
同样,如果你需要导出两次提交之间修改过的文件,你可以用这一个。
|
1
|
git archive -o ../latest.zip NEW_COMMIT_ID_HERE $(git diff --name-only OLD_COMMIT_ID_HERE NEW_COMMIT_ID_HERE) |
3. 克隆一个特定的远程分支
如果你想从远程仓库克隆特定的一个分支,这条命令对你很有用:
|
1
2
3
|
git init git remote add -t BRANCH_NAME_HERE -f origin REMOTE_REPO_URL_PATH_HERE git checkout BRANCH_NAME_HERE |
4. 从无关的本地仓库应用补丁
如果您需要申请从提交的一些其他不相关的创库到本地存储库,这里是一个快捷的方式:
|
1
|
git --git-dir=PATH_TO_OTHER_REPOSITORY_HERE/.git format-patch -k -1 --stdout COMMIT_HASH_ID_HERE| git am -3 -k |
5. 检查您的分支变化是是否其他分支的一部分
cherry 命令可以让你检查你的分支的变化是否存在于其他一些分支之中。它会显示在当前分支相对于给定的分支的修改,用+或-标志提示提交合并与否。+表示不存在,而-表示存在于给定的分支。
|
1
2
3
|
git cherry -v OTHER_BRANCH_NAME_HERE #For example: to check with master branch git cherry -v master |
6. 启动一个无历史的新分支
有时候,你需要启动一个新的分支,同时想摒弃历史信息,例如,你想将代码放在公共领域(开源)又不想共享历史信息。
|
1
|
git checkout --orphan NEW_BRANCH_NAME_HERE |
7. 在不切换分支的情况下从其它分支检出文件
下面的命令是从其他分支获取文件,而不用切换分支。
|
1
|
git checkout BRANCH_NAME_HERE -- PATH_TO_FILE_IN_BRANCH_HERE |
8. 忽略跟踪文件的修改
如果你工作在一个团队,他们都是工作在同一个分支,你需要频繁的读取/合并文件。但是有时复位了你环境的特定配置,你必须在合并后每一次都再改一下。使用这个命令,你可以忽略更改特定的文件:
|
1
|
git update-index --assume-unchanged PATH_TO_FILE_HERE |
9. 检查提交的修改是否发布版本的一部分
这个 name-rev 命令可以告诉你提交相对于最新发布版本的位置。利用这一点,你可以检查你的变化是否发布版本的一部分。
|
1
|
git name-rev --name-only COMMIT_HASH_HERE |
10. 使用 pull rebase 操作替代 merge
如果你工作的团队正工作在同一个分支,那么你所要做的获取/合并或经常拉取。分支合并的 git 记录与合并提交时提示功能分支被并入主干。但在多个团队成员工作的同一分支的情况下,经常合并导致在日志中多个合并的消息引起混乱。所以你可以使用 pull rebase,以保持历史信息清除了无用合并的消息。
|
1
|
git config branch.BRANCH_NAME_HERE.rebase true |
此外,您可以配置一个特定的分支总是衍合:
|
1
|
git pull --rebase |
GIT版本控制系统(二)的更多相关文章
- Google Code项目代码托管网站上Git版本控制系统使用简明教程
作为一个著名的在线项目代码托管网站,Google Code目前主要支持三种版本控制系统,分别为Git, Mercurial和 Subversion.Subversion即SVN相信大家都已经熟知了,这 ...
- Git版本控制系统VCS
Git版本控制系统VCS 一.版本控制系统基本情况说明 版本控制是一种记录一个或者若干个文件内容的变化,以便将来查阅特定版本修订情况的系统 1.作用 记录文件的所有历史变化 随时可回复到任何一个历史状 ...
- git版本控制系统小白教程(上)
前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享. Git介绍 Git是目前世界上最先进的分布式版本控制系统.并且它是一个开源的分布式版本控制系 ...
- git版本控制系统小白教程(下)
前言:本文主要介绍git版本控制系统的一些基础使用,适合小白入门,因为内容较多,会分为两部分进行分享,查看上部请点传送门. 删除文件 git删除文件一般有三种情况,第一种是在工作区修改了文件,但是 ...
- git版本控制系统重新认识
git 版本控制系统 目标:完全搞懂git分布式版本控制系统 搭建git版本控制系统 cvs集中化版本控制系统--集中式管理的服务器 git分布式版本控制系统--会将原始代码仓库镜像下来 新项目使用g ...
- 如何选择版本控制系统 ---为什么选择Git版本控制系统
版本控制系统 "代码"作为软件研发的核心产物,在整个开发周期都在递增,不断合入新需求以及解决bug的新patch,这就需要有一款系统,能够存储.追踪文件的修改历史,记录多个版本的开 ...
- Git版本控制系统之基本使用
最早是通过接触著名的开源社区Github了解到Git的,但一直没有系统学习过.这次下定决心从头到尾系统的学一学,也将学习过程记录于此,供大家批驳.本篇文章先从以下几个方面简单了解一下Git: Git的 ...
- git版本控制系统更新
版本控制系统: 一.概念: 版本控制系统(Version Control System):是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 二.版本控制系统分类 1.本地版本控制 ...
- 初识git版本控制系统
当下git分布式版本控制系统越来越火,掌握git也是必须的一个技能.因此,对git做了如下学习. Git初级指南 1. 先安装git.(ps:在select cmponents处要勾选Git Bash ...
- git版本控制系统常见操作总结
简介 Git是强大的版本控制系统,主要功能是针对代码.配置文件等文本进行版本控制.备份等,同时个人认为还是分发代码的一个不错的方式. 常见用法 #创建远程git仓库 [root@test88 ~]# ...
随机推荐
- composer的安装和使用
由于工作中需要用到leancloud的LeanCloud PHP SDK,支持composer安装,所以就下载composer工具了, 安装之前可以用composer命令检测是否已经安装了,命令是:c ...
- SQL子查询/嵌套查询
sql子查询 嵌套SELECT语句 嵌套SELECT语句也叫子查询,一个 SELECT 语句的查询结果能够作为另一个语句的输入值.子查询不但能够出现在Where子句中,也能够出现在from子句中,作为 ...
- [转] CentOS系统目录学习
最近初学Linux 对linux的目录产生了很多疑问,看到这篇文章,让我顿时对目录有了一个清晰的认识!推荐给大家! ------------------------------------------ ...
- java代码继承。。。找出不能继承父类方法的问题
总结:当子类中没有定义name属性时,在子类的无参构造方法中,父类的姓名是不能被继承的. 输出的结果是,子类无参构造方法里的属性值,也就是是属 控制台显示: 我叫:周杰伦,今年:2岁我的姓名:周杰伦, ...
- RabbitMQ介绍
(一)RabbitMQ基本概念 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.我曾经对这门语言挺有兴趣,学过一段时间,后来没坚持.RabbitMQ是 AMQP(高级消息队列协议)的 ...
- cpu上下文切换(下)
--怎么查看系统的上下文切换情况 过多的上下文切换,会把cpu时间消耗在寄存器.内核栈以及虚拟内存等数据的保存和恢复上,缩短进程真正运行的时间,成了系统性能大幅下降的一个元凶. 查看,使用vmstat ...
- String字符串补0操作常见方法
String前补0 java的String字符串补0或空格 方法一:自己写的方法 /* *数字不足位数左补0** @param str* @param strLength*/public stati ...
- handlebars自定义helper方法
handlebars相对来讲算一个轻量级.高性能的模板引擎,因其简单.直观.不污染HTML的特性,我个人特别喜欢.另一方面,handlebars作为一个logicless的模板,不支持特别复杂的表达式 ...
- java.lang.Runtime.exec() Payload Workarounds
由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,我们需要用进行一次编码 编码工具: 地址: http://jackson.thuraisamy.me/r ...
- JavaScript基本概念B - 关于方法
方法也是对象 这个事需要反复强调.方法是 类型 Function 的对象,和其他对象一样,它也有方法. function gen() { return function ans(factor) { r ...