注意:

  • 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. JQ系列:css操作

    JQ中的 .css()有三种使用方法: $('#p').css('width'); 取得ID为p的样式属性的width值;等同 return width $('#p').css('width','10 ...

  2. poj1012.Joseph(数学推论)

    Joseph Time Limit: 1 Sec  Memory Limit: 64 MB Submit: 493  Solved: 311 Description The Joseph's prob ...

  3. 什么是A记录?MX记录?CNAME记录?它们都有些什么用途?

    什么是A记录?什么是MX记录?CNAME记录又是什么?它们都有些什么用途? 好,下面就用我浅陋经验给大家介绍一下: 1. A记录:WEB服务器的IP指向 A (Address) 记录是用来指定主机名( ...

  4. vim显示行号

    在Linux环境下的编辑器有vi.vim.gedit等等.进入这些编辑器之后,为了方便我们需要编辑器显示出当前的行号,可偏偏编辑器默认是不会显示行号的.我们有二种办法可以解决: 第一种是,手动显示:在 ...

  5. ruby : Exception Notification

    https://github.com/smartinez87/exception_notification#sections Add the following line to your applic ...

  6. SVN安装与配置 SVN整合MyEclipse

    SVN安装: 1.安装服务器 ######### 安装文件:SVN服务器############### # http://www.collab.net/downloads/subversion # C ...

  7. java笔试三

    请问如何不使用第三个变量交换两个变量值?     例如   int   a=5,b=10:     如何不使用第三个变量交换a,b的值? public class T { public static ...

  8. 解决eclipse+MAVEN提示One or more constraints have not been satisfied.的问题

    应用版本:eclipse luna4.4.1 JDK:1.8 Maven:3.2.5 问题现象: 1.编译工程后总该是显示下面两个错误: One or more constraints have no ...

  9. [转]Ubuntu 系统 Update-rc.d 命令

    本文转自:http://wangyan.org/blog/ubuntu-update-rc-d.html 以防止原博客挂掉,特此做了备份. Ubuntu或者Debian系统中update-rc.d命令 ...

  10. django-jinjia 集成

    现成包可以参考这里:  http://niwibe.github.io/django-jinja/ Requirements Python 2.7, 3.3 or 3.4 Django 1.4, 1. ...