注意:

  • Microsoft的Word格式是二进制格式,因此,版本控制系统是没法跟踪Word文件的改动
  • 不要使用Windows自带的记事本编辑任何文本文件

开始git项目:

  • 初始化本地项目:

    • 初始化:git init; //git init dir 同时创建文件夹并初始化;
    • 将文件纳入版本控制: git add  *.js      //git add -A    加入全部文件
    • 提交:git commit -m 'message';
  • 从其他地方克隆项目:

    • 克隆:git clone url (newfilename);//也可以clone本地的项目;
    • git clone -b <branch> url
  • 初始化一个裸仓库
    • 初始化: git init --bare;
    • 裸仓库没有working dir,不能进行git操作,纯粹是为了共享;
    • 常用的创建git私有仓库方法

查看提交历史

  • git log ; //git log --stat;显示每次提交文件变更;

    • --pretty=oneline :只显示一行信息,包括一个 SHA-1 校验和提交说明;
    • --pretty=short :不包括日期;
  • git show ($id); 显示最新(某个ID )具体的提交信息和变化;

版本号及回退

  • HEAD表示当前版本;上一个版本就是HEAD^,上上一个版本就是HEAD^^,往上可以简写成HEAD之前第n个版本:HEAD~n。
  • 回退到上一个版本:git reset --hard HEAD^
  • 此时如果想返回先前的,只能使用commit id, 如5位commit id; git reset --hard 63e01
  • Git的版本回退速度非常快,因为Git在内部有个指向当前版本的HEAD指针
  • 如果暂时找不到之前的commit id, 可以使用git reflog来显示HEAD指针指到过版本

项目状态:

  • 工作目录下面的所有文件包括两种状态:

    • 已跟踪:指本来就被纳入版本控制管理的文件,在上次快照中有它们的记录,工作一段时间后,它们的状态可能是未更新,已修改或者已放入暂存区。
    • 未跟踪:其他文件都属于未跟踪文件。初次克隆某个仓库时,工作目录中的所有文件都属于已跟踪文件,且状态为未修改。

  • 检查当前状态:git status;  //与最近一次提交的比较;[工作区,暂存区和版本库比较]

    • git status -s //精简显示

添加与修改:

  • 将修改的文件放到暂存区:git add;  //添加全部文件  git add .
  • 建立忽略文件:.gitignore            //注意,实际上所有的git操作也是可以使用文件匹配模式的,一般会在最前面添加 \

    • *a             以a结尾;
    • !add.js       除了add.js以外的文件
    • doc/           doc文件夹下的所有文件
    • doc/**/      doc/directory下的所有文件
  • 查看更新修改:
    • git diff  //修改但未暂存;  [工作区和暂存区比较]
    • git diff  --staged/--cached    //修改暂存但未提交;[暂存区和版本库比较]
  • 跳过暂存区域:git commit -a -m 'message';  //注意如果是本来未跟踪的话,还是要运行一次git add;

撤销操作:

  • 取消文件的修改:git checkout < file>, git checkout .; 全部

    • 只对已跟踪的文件有效
    • 让这个文件回到最近一次git commit或git add时的状态。
  • 取消已经暂存的文件:git reset HEAD file
    • 一般是针对刚刚git -add的文件
  • 修改最后一次提交:git commit --amend -m 'message'; //会修改最近一次提交的信息,如果和上次信息相同,等于覆盖了上次的提交;

移除版本管理://都是对已跟踪的文件而言

    • 修改还未暂存:

      • git rm -f 'flie';
    • 已经暂存:
      • 删除文件'file'之后,运行git rm 'file'   //最好在任何修改之后运行git status查看;
      • 直接运行git rm 'file' ;
    • 仅是移除版本管理,而不删除文件: git rm --cached 'file'   //包括修改后已暂存或未暂存;
  • 修改文件名:
    • 手动直接修改:相当于手动删除文件然后添加新文件;需要使用git rm 'oldfile'; git add 'newfile';
    • 使用git修改:    git mv 'oldfile' 'newfile';

恢复删除:

  • 如果是删除还未提交的话,可以使用git checkout -- file

    • git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”;但只能恢复文件到最新版本
  • 如果是已经提交了,则使用版本回退

修改提交历史:

  • 改变最近一次提交 : git commit --amend -m 'new commit message'

分支重命名:

  • git branch -m oldname newname
  • git branch -m newname

git学习 本地常用操作01的更多相关文章

  1. Git单人本地仓库操作

    本地仓库是个.git隐藏文件 以下为演示Git单人本地仓库操作 1.安装git sudo apt-get install git 密码:skylark 2.查看git安装结果 git 3.创建项目 在 ...

  2. git入门(4)团队中git保管代码常用操作

    在团队中协作代码时候,一定要熟练使用以下git命令,不至于把代码库弄乱, PS:一定要提交自己代码(git push)时候,先进行更新本地代码库(git pull),不然提交异常 git常用命令 1· ...

  3. Git安装与常用操作

    Git作为一个版本控制工具,使用前需进行下载安装:可自行到官网下载. 一.安装(windows) 1.双击下载好的文件进行安装,弹窗中点击"next" 2.默认勾选,继续点击&qu ...

  4. ubuntu的学习教程(常用操作)

    摘要 最近在学习linux,把自己学习过程中遇到的常用操作以及一些有助于理解的内容记录下来.我主要用的是ubuntu系统 命令提示符 '~' 这个是指用户的家目录,用户分为root用户和普通用户,ro ...

  5. Git入门与常用操作简述

    下载gitbash及使用指南: http://rogerdudler.github.io/git-guide/index.zh.html 初次使用 配置用户名和邮箱: $ git config --g ...

  6. Git学习 --> 个人常用命令add,commit以及push

    Git命令行配置1 安装Github2 安装msysgit3 要配置用户名和油箱  git config --global user.name <用户名> 我的命令就是:git confi ...

  7. Git介绍及常用操作演示(一)--技术流ken

    Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发 ...

  8. CI 知识 :Git介绍及常用操作

    Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发 ...

  9. git工作中常用操作总结

    这篇文章主要记录下工作中常用的git操作.主要是对之前文章记录的问题做个总结,这个其实在idea中操作更加简单 别名配置 在敲git 命令时,其实可以使用别名,比如 commit可以配置为ci 下面是 ...

随机推荐

  1. JSP 内置对象(request response session application out pageContext)

    request对象  javax.servlet.http.HttpServletRequest接口的实例 request.setCharacterEncoding("utf-8" ...

  2. 在iphone上安装多个微信 【微信营销必备】

    做微信营销有很多因素会影响,xmyanke认为微信消息的活跃度会让你的微信公众号在微信搜索排名靠前,既然那样,我们可以通过运营几个小号来达到目的.每每当你在几个微信小号之间切换的时候有没要奔溃的赶脚? ...

  3. 表单元素的写法及与后台php的交互

    1.<select class="textEnaSty" name="Port" size="1" onchange="Ob ...

  4. Android EditText的设置

    1.输入法Enter键图标的设置: 软件盘的界面替换只有一个属性android:imeOptions,这个属性的可以取的值有normal,actionUnspecified,actionNone,ac ...

  5. [BZOJ1477]青蛙的约会

    [BZOJ1477]青蛙的约会 试题描述 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面.它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止.可是它们出发之前忘 ...

  6. mysql中binary相加的问题

    我在mysql中有这样一段代码 SQL code   ? 1 2 3 4 5 6 7 8 declare @byte1 binary(1) declare @byte2 binary(1) decla ...

  7. 【leetcode】Sort List

    Sort List Sort a linked list in O(n log n) time using constant space complexity.   需要采用归并排序对链表进行操作. ...

  8. yum缓存配置

    引自:http://www.cnblogs.com/xiaochaohuashengmi/archive/2011/10/09/2203916.html $ cat /etc/yum.conf    ...

  9. Java for LeetCode 189 Rotate Array

    Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array ...

  10. Intellij Idea无法从Controller跳转到视图页面的解决方案

    解决方案: 第一步,确认配置了Spring支持,如下图: 一般情况下,配置完上面就可以正常导航了,但是今天要说的不是一般情况,否则也就不说了,如果经过第一步设置后,还是不能正常导航的同学,可以接着看第 ...