注意:

  • 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. ExtJS学习之路第一步:对比jQuery,认识ExtJS

    最近纷杂的事情比较多了,奔波ing!所以,Node.js 和Canvas动画系列都停止了,等稳定了再重拾书本继续学习!因为某种原因最近在看ExtJS,分享下学习的心得,希望对同道中人有所帮助. 第一用 ...

  2. cocos2d-x避免手动修改android.mk文件来编译

    编辑android.mk文件,替换为如下内容 LOCAL_PATH := $(call my-dir) LOCAL_PATH := $(call my-dir) include $(CLEAR_VAR ...

  3. [Effective JavaScript 笔记] 第8条:尽量少用全局对象

    初学者容易使用全局变量的原因 创建全局变量毫不费力,不需要任何形式的声明(只要在非函数里用var 你就可以得到一个全局变量) 写得代码简单,不涉及到大的项目或配合(写hello world是不会有什么 ...

  4. Linux下的网络管理工具—OpenNMS

    导读 OpenNMS的是一个运营商级别的,高度集成的,开放源码的平台,用于构建网络监控解决方案.OpenNMS有两个发行版:Meridian and Horizon.使用Meridian是可取的,对企 ...

  5. Linux 浅谈Linux 操作系统的安全设置

    如今linux系统安全变的越来越重要了,这里我想把我平时比较常使用的一些linux下的基本的安全措施写出来和大家探讨一下,让我们的linux系统变得可靠. 1.BIOS的安全设置 这是最基本的了,也是 ...

  6. django-cms 代码研究(四)CMS_TEMPLATE标签

    CMS_TEMPLATE 继承这个东东可以在实现很灵活的布局,如下:

  7. 【SpringMVC】SpringMVC系列14之SpringMVC国际化

    14.SpringMVC国际化 14.1.概述 14.2.用户切换选择语言

  8. ASP.NET MVC 的URL路由介绍

    在这个教程中,向你介绍每个ASP.NET MVC一个重要的特点叫做URL路由.URL路由模块是负责映射从浏览器请求到特定的控制器动作. 在教程的第一部分,你将学习标准路由表如何映射到控制器的动作.在教 ...

  9. Java中必须了解的常用类

    1.Java的包装类 基本数据类型我们都很熟悉,例如:int.float.double.boolean.char等,基本数据类型不具备对象的特征,不能调用方法,一般能实现的功能比较简单,为了让基本数据 ...

  10. codeforces A. Sereja and Bottles 解题报告

    题目链接:http://codeforces.com/problemset/problem/315/A 题目意思:有n个soda bottles,随后给出这n个soda bottles的信息.已知第 ...