标签:
在使用git之前,一直用的是svn版本管理;与svn最大不同的是,git有两个仓库,一个是本地仓库,一个是服务器上共享的仓库;本地仓库是每个开发者自己独有的,即使commit提交也只是提交到本地仓库;这只是git流行起来的一个优势之一,另外linux作者开发的这套版本管理工具,很接地气,也是流行起来的一大亮点。扯了这么多没用的,言归正卷,那么在日常开发工作中,哪些git命令是我们常用到的呢?下面就说说几个常用命令的常用场景,至于这些命令详细使用就不在本文讨论之内。
使用过git的都知道,git的有些命令名有些长,每次在使用改命令时都要输入这些,尤其是一些命令语句;怒长的一串文字字符串打起来很费劲,开发者也很不爽;这时我们的git alias功能可以费墨登场了。下面是本人的一些常用命令的alias配置:
命令 | 别名 |
commit | ci |
checkout | co |
status | st |
merge origin/master | mom |
注意:以上git命令别名的设置是在计算机用户目录下.gitconfig文件全局设置的,这样所有git分支都能运用设置的别名。当然,根据不同开发者的个人喜好,可以有自己的别名设置;
这个命令用于检出某个分支、提交或者对应的某个分支、提交的文件。根据不同的参数来检出不同的内容;那么其常用场景如下:
该命令用于暂存本地文件的修改。
某天,开发者在一个分支上开发某个需求,突然这种自我happy的开发方式被打断,某个提测的分支有bug需要马上修复;擦,本地的代码还没有提交呢,但是又不想因临时的提交本地代码导致如何描述临时提交的描述。于是乎就可以使用git stash来存取本地变更的代码;然后切换有bug的分支解决问题,最后回到本分支使用git stash pop即可复现之前没有提交的本地变更代码;该命令是不是用起来很爽。
但是,使用该命令需要注意以下两点:
用与撤销某此提交的变更内容。这个revert与webstrom等IDE中提供的revert掉git的某些文件不同,后者其实最终还是利用到git checkout。
该命令的最大场景是:代码发布上线后,由于某种原因需要代码回滚,这时基于当前分支发布的分支在线上代码回滚后merge master时,本地新开发的需求代码丢失了,因为回滚到上线之前的代码,这个时候还不存在回滚掉的代码;怎么恢复merge掉的代码呢,这时就需要git revert了,具体步骤如下:
该命令用于重置指定区域的内容,可以操作提交,也可以操作文件;该命令的三个参数--hard、--mixed、--soft表示重置的范围,这个命令也是最常用的命令之一;
使用该命令得记住一点,它会对git的提交历史做修改,可能会删掉一些历史提交点导致不能恢复。
用于创建、显示分支等与分支相关的命令,工作中常用到的情况:
git checkout branchName //切换到新建的分支上 git push //将当前分支推送服务器 git branch -u origin HEAD //建立当前分支与服务器同名分支的上传流
git checkout -b branchName origin/master git push -u origin HEAD
用于与服务器仓库同步代码,该命令的用法不做赘述,该命令的一个常用情况就是删除服务器端某个指定的分支,命令如下:
git push origin 空格:remote_branch_name
该命令用于删除分支中的文件,他可以只删除暂存区的文件,也可以同时删除暂存区和工作区的文件,参数不同,决定删除的文件范围也不同,具体如下:
git rm --cached filename //删除暂存区的某个文件,工作区的不会删除 git rm filename //同时删除暂存区和工作区的该文件
git rm filename的场景:为满足某次需求,新增了一些代码文件,在开发中可能不小心将某个无用的新文件加到工作区而被git add到暂存区,这时需要同时删掉暂存区和工作区的该文件;
用于提交暂存区代码到本地仓库;说一下git commit --amend选项
git commit --amend 的使用场景:某次需求开发提交中,由于某种原因导致提交的结果不是期望的,需要重新提交,但是又不希望前一次的提交使git提交历史树变长,那么可以使用git commit --amend来用暂存区的内容修正前一次的提交。 如果不使用带--amend的提交,结果是git提交历史树会变长。git commit --amend的原理图如下:
在多人协作开发的项目中,想要知道某个文件的历史改动情况,可以使用该命令来完成,具体如下:
git blame -L line1, line2 file
上面是查看file文件的第line1行到line2行代码的改动情况,如下图是查看本地某个文件的192到193行的改动情况,看出是adam23有最新改动
上面介绍的都是自己用的比较频繁的git命令和对应的场景,当然有些情况不一定值得借鉴,或者还有不妥的地方,这些都希望大家批评指正!!
标签:
原文地址:http://www.cnblogs.com/wonyun/p/5350551.html