Git 这点事
2015-08-17 00:37
274 查看
我参加工作已经半年多了,再过几个月就1年了。但是,我git用的毫不客气的说,就是新手,纯新手的那种。曾经一度git把我搞的晕头转向,我也曾经找了很多资料,但是结果都非常不理想,要么,写的太高深,看不懂,要么就是太简单,非常的不理想。今天周末,找了一个高手交流了一下,懂了很多,特意记录下来,方便自己以后查看,也方便需要的人查看。
首先,git是目前世界上最先进的分布式版本控制系统(没有之一)。svn是集中式,而git是分布式,有着天壤之别。
由于今天太晚,我自己尝试了很多命令行,我就先写我感受最深刻的“如何来忽略文件”。说到忽略文件,很多人都会想到.gitignore这个文件,没错,这个文件可以达到忽略文件的目的。但是,使用这个方法来忽略有个前提,那就是[b]该文件只能作用于 Untracked
Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。[/b]如果你add或者commit过,别报幻想了,用这个方法不可能达到忽略的目地。也有人会说,可以用[b]git
rm --cached这个命令,没错,这个命令可以达到暂时忽略的目的,但并非正确做法,有很多不良隐患,[/b]比如,重新克隆工程就会继续跟踪。
那么,最正确的做法是什么呢?用git
update-index --assume-unchanged 这个命令,后面参数跟文件或者文件夹。如果是文件夹,如果对bin目录进行忽略,应该这样写(bin/*)这个命令的用法是:针对git数据库里被记录的文件进行忽略,它不会理睬你对文件做的修改。所以,也有一个命令重置标识,即git
update-index --no-assume-unchanged 这个命令,后面参数跟文件或者文件夹,可以继续对它进行跟踪。
如果已经提交了,但是想回退到某个版本怎么办呢?该用哪个命令呢?
用git
reset --hard HEAD~*,*是int型,以当前所在位置为准,你想回退几个版本这个*就写几。例如,我想回退上个版本,就是1个版本,应该写:git
reset --hard HEAD~1
如果我回退了某个版本之后,我想再回到同一个分支的其他节点怎么办呢?
用git
reset --hard 版本哈希值
首先,git是目前世界上最先进的分布式版本控制系统(没有之一)。svn是集中式,而git是分布式,有着天壤之别。
由于今天太晚,我自己尝试了很多命令行,我就先写我感受最深刻的“如何来忽略文件”。说到忽略文件,很多人都会想到.gitignore这个文件,没错,这个文件可以达到忽略文件的目的。但是,使用这个方法来忽略有个前提,那就是[b]该文件只能作用于 Untracked
Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。[/b]如果你add或者commit过,别报幻想了,用这个方法不可能达到忽略的目地。也有人会说,可以用[b]git
rm --cached这个命令,没错,这个命令可以达到暂时忽略的目的,但并非正确做法,有很多不良隐患,[/b]比如,重新克隆工程就会继续跟踪。
那么,最正确的做法是什么呢?用git
update-index --assume-unchanged 这个命令,后面参数跟文件或者文件夹。如果是文件夹,如果对bin目录进行忽略,应该这样写(bin/*)这个命令的用法是:针对git数据库里被记录的文件进行忽略,它不会理睬你对文件做的修改。所以,也有一个命令重置标识,即git
update-index --no-assume-unchanged 这个命令,后面参数跟文件或者文件夹,可以继续对它进行跟踪。
如果已经提交了,但是想回退到某个版本怎么办呢?该用哪个命令呢?
用git
reset --hard HEAD~*,*是int型,以当前所在位置为准,你想回退几个版本这个*就写几。例如,我想回退上个版本,就是1个版本,应该写:git
reset --hard HEAD~1
如果我回退了某个版本之后,我想再回到同一个分支的其他节点怎么办呢?
用git
reset --hard 版本哈希值
相关文章推荐
- vi/vim高级命令集粹
- 放苹果
- 4sum leetcode
- 【3】依照django官网:创建一个web app 创建superuser/runserver
- STL
- error C1083: 无法打开包括文件:“streams.h”: No such file or directory
- 面试中HashMap的工作原理
- 078. Hashing (25)
- sys_privilege & object_privilege
- Linux内核驱动之GPIO子系统-GPIO的使用
- Unity UI和引用的管理中心
- 【2】依照Django官网,创建一个web app 创建app/创建对应的数据库表
- 字符串常用操作
- 检查程序崩溃自动DUMP
- 开发java程序的基本步骤:JDK中的其他几个工具
- HDU 5391-Zball in Tina Town(威尔逊定理)
- WPF+通过配置文件生成菜单(Menu)+源码
- [unix]sysconf、pathconf和fpathconf
- 矩阵连乘(3)
- PHP 扩展开发[从零开始编写第一个PHP扩展]