zoukankan      html  css  js  c++  java
  • git学习 本地常用操作01

    注意:

    • 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
  • 相关阅读:
    java.io.FileNotFoundException: D:workspacegbrmWebRoot空缺职位列表20140414093026.xls (系统找不到指定的路径。)
    select * from (select t.*,rownum as rowno from (select * from j_kqzw where 1=1 and DEADLINE >='2013-04-14' and DEADLINE <='2014-04-14' ) t)where rown
    hibernate的映射文件字段长度和数据库里面的字段长度
    八门神器
    计算机
    c语言
    捕鱼达人
    桂林力港网络科技有限公司
    cocos2d-x
    3gp 编辑
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4168947.html
Copyright © 2011-2022 走看看