记录一些git 命令,以便自己以后查阅

基本命令

    1.git add (保存工作区的变动到暂存区)

git add . 和git add -A把整个工作区添加到暂存区

  2.git commit (保存暂存区的变动到历史)

  3.git status (查看工作和暂存区的不同)

  4.git rm (删除暂存区和工作区里文件,

  (1)注意区分rm 和 git rm 间的区别git rm 删除过的文件,执行 git commit -m "git rm" 提交时,

  会自动将删除该文件的操作提交上去。

  而对于用 rm 命令直接删除的文件,执行 git commit -m "rm" 提交时,

  则不会将删除该文件的操作提交上去

  如果rm了很多文件

  (2)git 批量删除文件夹和文件

硬盘删除文件后,执行$ git status

会提示你仍然需要$ git rm <文件>

此时如果是要删除大批量文件,这么一个一个命令下去不得累死人啊

其实可以这样(不管之前有没有已经本地物理删除)

执行 $ git rm * -r(记得,cd 到你要删除的目录下。当然 * 可以换成指定目录)

这时删除文件已经进入本地缓存区,

接下来就是正常的提交操作了
$ git add .
$ git commit -m "clear"
$ git push origin master

  5.git mv 重命名移动工作区的文件

  6.git ignore 忽略一些文件使它们不被添加到暂存和历史

*.[oa]   (忽略所有.o和.a结尾的文件)

*.dmg    (忽略所有.dmg 文件)

!test.dmg(!表示不要忽略 , 如果文件名本身带!号就要加上\ 应该这么写: \!test.dmg)

foo/ (/忽略一个目录,foo如果是文件就不会被忽略)

**/res (忽略任何名为res的目录)

7.git mv a c (把 a 重命名成c)

  8. 给git命令取别名 git config --global alias.co checkout (把checkout 取成co)

分支相关

   1.git branch develop (创建一个名为develop的分支)

   2.git checkout develop (切换到develop分支)

   3.git checkout -b develop (上面2个命令的组合)

4.git stash save -a "stash1"(保存stash)

   5.git stash list(查看stash)

   6.git stash pop --index stash@{0} (还原stash到工作区和暂存区)

7.git stash apply --index stash@{0} (保留stash,同时还原stash到工作区和暂存区)

   8.git stash drop stash@{0} (删除stash,如果不加引用默认清除最上面的,想删除全部用 git stash clear)

   9.git tag "v0" 244afbc (轻量级,只是本地引用)

  244afbc是一次commit的hash值前几位

10.git tag -a "tag example"244afbc (带注解的tag对象,存储在git仓库,需要的时候可以推送到服务器上用于共享)

   11.git merge develop (合并)

12.git merge --abort(放弃合并)

查看与对比历史记录

1.git log --oneline --decorate --graph --all( 查看历史提交)

2.git show master

3.git show master~(查看master 里的第一父提交,git show master^2 第二父提交)

4.git show --oneline master^2 (查看提交与它的父提交间的差异)

5.git show --stat master^2 (提交做出改变的统计信息)

6.git show --oneline --stat master^2(参数组合使用)

git show可以接受git对象(commit,tag,tree,blob)

7.git show --format=%T master^2 (格式化输出master的一些信息,输出了一大段头一条是一个hash)

8.git show 0fcdee (一个commit 的hash)

9.git log (输出完整历史,空格向下翻页,b向上翻页,q退出)

10.git log -p (每个commit间的差异信息)

11.git log --stat (每个commit差异的统计信息)

12.git log --oneline --stat -p (自由参数组合)

13.git diff (输出工作区和暂存区的差异,如果没有差异就没输出)

14.git diff --cached (输出暂存区和历史提交间的差异)

15.git diff HEAD~2 -- master.txt (工作区和其他历史提交的差异,后面可以加上文件)

16.git diff --cached HEAD~2 (暂存区和历史提交的差异)

17.git diff HEAD HEAD~2 (当前commit和上一间的差异)

18.git diff --color-words (单词的差异)

19.git diff --word-diff (最新的修改)

撤销修改

  1.git checkout -- 文件名 (撤销工作区的修改,用暂存区的内容覆盖工作区的内容)

  2.git reset HEAD 文件名  (撤销对暂存区的修改,用当前历史提交还原暂存区)

  3.git checkout 指向commit的引用 -- 文件名 (用这次历史提交还原工作区和暂存区)

  4.git reset 指向commit的引用 -- 文件名 (用这次历史提交还原暂存区,工作区内容不变)

  5.git clean -n (显示将会被移除的内容,默认不清理gitignore忽略的文件)

  6.git clean -f  (移除git clean -n 显示的内容 )

  7.git clean -n -X (X为大写,将会移除gitignore中忽略的文件)

  8.git clean -n -X -f (移除gitignore中忽略的文件)

  8.git revert HEAD (产生一个新的提交覆盖这次提交)

重写历史记录

  1.git commit --amend  (产生一个新的提交替换到当前所指向的提交)

  2.git rebase 分支名 (维护线性历史)

  3.git rebase --abort (放弃)

  4.git rebase --continue (继续rebase操作)

  5.git reflog (可是看到HEAD引用历史)

  6.git reflog -10(输出最近10条的引用)

  7.git reset --hard HEAD@{?} (撤销rebase操作,工作区和暂存区都还原)

  8.git reset -- soft   HEAD@{?} (撤销rebase操作,还原了暂存区,不带参数时默认使用的是这个)

  9.git reset -- mixed HEAD@{?}(撤销rebase操作,不还原工作区和暂存区)

  

git 命令整理的更多相关文章

  1. 常用git命令整理

    花了一点时间来熟悉和整理git常用命令. 推荐的git学习资料:1.搜“Git Community Book 中文版.pdf”,git社区书,内容全面且简明扼要,第一推荐2.搜“Git权威指南.pdf ...

  2. Git命令整理

    说在前面: 刚开始在实习时接触git,是用git可视化工具,但是仅限于克隆库.切换分支.抓取和推送,对于其中的原理不甚了解.看了廖雪峰老师Git教程,获益颇丰.特别要感谢我工作中的同事,是他强烈建议我 ...

  3. 常用的Git命令整理

    之前一直忙于项目苦于没有时间总结,今天刚好有时间特来总结一下在工作中常用到的代码版本管理器Git.至于为什么要用Git?Git相比SVN有哪些好处?我就不多说了,前人已经总结的很好.今天主要介绍的是常 ...

  4. 代码管理 ,git 命令整理

    //先要理解这四个概念,这是一个提交代码的流动轨迹:1.工作区(编辑器)-经过add到2- 2.暂存区 (缓存)- 经过commit3-3.本地仓库 (本地项目)-经过 push4-4.远程仓库 (线 ...

  5. 常用Git命令大全思维导图

    开发中代码管理少不了使用Git,对于初学者来说Git命令的学习是一个难过的坎,为了帮助大家记忆并快速掌握Git的基本使用,我把常用的Git命令整理成思维导图,分享给大家. 高清大图在线预览 http: ...

  6. (小组)Git 常用命令整理

    Git 常用命令整理 取得Git仓库 初始化一个版本仓库 git init Clone远程版本库 git clone git@xbc.me:wordpress.git 添加远程版本库origin,语法 ...

  7. Git使用:安装,使用及常用命令整理

    对于程序猿而言,git是最常接触的工具之一,因此需要熟练快速掌握其技巧. git安装: windwos:  [原创]Windows平台下Git的安装与配置 Ubuntu:git与github在ubun ...

  8. Git常见命令整理

    Git常见命令整理 + 注释 git init # 初始化本地git仓库(创建新仓库) git config --global user.name "xxx" # 配置用户名 gi ...

  9. Git命令的简单整理大全

    创建目录和查看路径 mkdir 创建目录  cd    进入到目录里面pwd   用于显示当前的目录cat   查看文件内容 Git命令使用说明 初始化一个目录成git的仓库(版本库)包括暂存区和ma ...

随机推荐

  1. iOS开发——消息推送跳转

    项目开发用集成是极光推送JPush     这里主要是消息推送过来处理对应界面跳转          同时看到两篇写的不错的相关博客分享一下:      http://www.jianshu.com/ ...

  2. C# 线程--第四线程实例

    概述 在前面几节中和大家分享了线程的一些基础使用方法,本章结合之前的分享来编写一些日常开发中应用实例,和编写多线程时一些注意点.如大家有好的实例也欢迎分享.. 应用实例 应用:定时任务程序 场景:系统 ...

  3. reduce + Promise 顺序执行代码

    本文地址: http://www.cnblogs.com/jasonxuli/p/4398742.html 下午的太阳晒得昏昏沉沉,和上周五一样迷糊,看一段代码半天没看明白,刚才不知不觉眯了几分钟,醒 ...

  4. NodeJS安全设计:好吃的草莓味糖果,只给好朋友小红

    上一篇文章中,我们已经建立了一个有缓冲机制的文件服务器,能给客户端响应附件类型的文件,其实,就爱莲(iLinkIT)而言,NodeJS的模块做到这样也就已经可以了,因为使用的场景就是电脑和手机之间,与 ...

  5. 【转】Linux网络编程入门

    (一)Linux网络编程--网络知识介绍 Linux网络编程--网络知识介绍客户端和服务端         网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户 ...

  6. @Autowired与@Resource用法

    官方文档中有这样一段话. If you intend to express annotation-driven injection by name, do not primarily use @Aut ...

  7. OCI-DML-更新数据库中不存在的字段

    用gtest来测试oracle中oci方式的SQL语句操作,在测试update数据库中不存在的异常案例的时候,日志没有报错,但是结束后跳出了数据库连接 gtest也没有给出正常的结果,本身update ...

  8. Ng机器学习笔记-1-一元线性回归

    一:回归模型介绍 从理论上讲,回归模型即用已知的数据变量来预测另外一个数据变量,已知的数据属性称为输入或者已有特征,想要预测的数据称为输出或者目标变量. 下图是一个例子: 图中是某地区的面积大小与房价 ...

  9. 类似QQ的应用毗邻(Pilin)即时聊天源码

      这个应用是从安卓教程网分享过了的,个人觉得这个还是挺不错的,毗邻(Pilin)即时聊天应用源码,承诺的 基于xmpp openfire asmack 的即时聊天应用,继续完善,现在只完成了文字.表 ...

  10. 安装WP8 SDK出现“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的解决办法

    今天重装系统了,在安装WP8 SDK时,安装了一小部分就提示“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的错误. 根据错误提示,貌似跟时间有关,百度了下.果真.把系统时间往前调 ...