zoukankan      html  css  js  c++  java
  • git2

    title: Git(2)-基础操作
    date: 2017-11-18 08:22:24
    tags: 
      - git
      - 版本控制
    categories: 
      - Git
    

    版本库的基础操作

    版本库也可以称为仓库, 也就是一个目录 , 这个目录里面的所有文件都被Git管理起来 , 每个文件的修改 删除等 , Git都能追踪 <!-- more -->

    创建版本库

    #定位到需要创建仓库的目录下执行
    git init

    执行以后就把这个目录变为git可以管理的仓库 该目录下就会多了一个.git目录 , 这个目录是git用来追踪管理版本的 , 勿手动修改

    添加文件到版本库

    #添加全部暂存区和历史区不存在的或者有更改的.c文件
    git add *.c

    #添加全部暂存区和历史区不存在或者有更改的文件
    git add .

    #添加指定文件到版本库
    git add test.c

    使用git status可以查看当前版本库的状态 例如 这个版本库当中有01.txt是已经添加到版本库但是没有提交的新文件 ( 该文件当前的状态就是staged - 已暂存 ) 使用git rm --cached 01.txt可以从暂存库当中移除01.txt , 相当于是add的逆操作 02.txt是没有添加到版本库的文件

    提交文件

    提交操作针对的是暂存区当中的文件 ( 或者说是已暂存状态的文件 )

    #提交暂存区所有的内容到版本库
    git commit -a

    #提交暂存区中指定的文件到版本库
    git commit 01.txt

    提交时可以直接使用-m参数来添加提交的注释 例如 git commit -a -m "我是注释" 如果未添加 , 提交时则会自动调用vi编辑器来编辑提交注释信息 也可以修改core.edit来设定喜欢的编辑器

    如果提交01.txt完毕以后 , 再次修改了01.txt 此时该文件的状态就是modified - 已修改 使用git add可以将其添加到暂存区

    比较差异

    git diff命令用于比较指定文件的差异

    #查看所有有变动的文件
    git diff

    #查看指定文件的变动
    git diff 01.txt

    #查看暂存区中文件的变动
    git diff --staged

     

    查看提交历史记录

    使用git log可以按照提交时间列出所有的提交

    #仅显示最近x次的提交 git log -x
    git log -2 #查看最近2次的提交

    #简略显示每次提交的内容变动
    git log --stat

    # --pretty对展示内容进行格式化
    git log --pretty=oneline #在一行内仅显示每次提交的hash码与注释

    #自定义格式化
    git log --pretty=format:"%h - %an,%ar : %s"

    format当中的占位符含义

    选项说明
    %H 提交对象(commit)的完整哈希字串
    %h 提交对象的简短哈希字串
    %T 树对象(tree)的完整哈希字串
    %t 树对象的简短哈希字串
    %P 父对象(parent)的完整哈希字串
    %p 父对象的简短哈希字串
    %an 作者(author)的名字
    %ae 作者的电子邮件地址
    %ad 作者修订日期(可以用 –date= 选项定制格式)
    %ar 作者修订日期,按多久以前的方式显示
    %cn 提交者(committer)的名字
    %ce 提交者的电子邮件地址
    %cd 提交日期
    %cr 提交日期,按多久以前的方式显示
    %s 提交说明

    撤销操作

    重新提交

    如果执行git commit之后发现了漏掉了一个文件 , 再进行一次提交又显得多余 这时候可以使用amend进行重新提交

    git commit --amend
    取消暂存

    执行了git add 之后 , 如果要进行撤销 ( 与git rm作用类似 )

    git reset HEAD 03.txt

    但是reset还可以对已提交的内容进行版本的回退

    #回退当上一个版本
    git reset --hard HEAD^

    如果要回退当上上个版本就是HEAD^^ 也可以使用简便写法git reset --hard HEAD~100表示回退到100个版本之前

    此时执行了回退 , 我们发现最后一次提交所做的修改已经没有了 如果还想找回来 , 可以执行git reflog来查看操作记录 , 找到最后一次提交的版本号 执行以后发现是8725f93 于是执行git reset --hard 8725F93 即可再次恢复到最新版本

    撤销修改

    当文件被修改 , 但还没有git add到暂存区 ( 或者从暂存区当中撤销回到工作区也一样 )

    git checkout -- filename

    注意 : 该操作会导致修改彻底丢失 , 无法恢复

  • 相关阅读:
    线程池略略观
    spring-mvc的工作原理
    openstack cinder-backup流程与源码分析
    为何说只有 1 种实现线程的方法?
    经典排序算法原理解析与优劣对比
    Java中List和ArrayList的区别
    openstack-taskflow 组件记录
    递归:如何利用递归求解汉诺塔问题?
    登录MySQL提示ERROR 1045 (28000)错误解决方法
    回归JavaScript基础(九)
  • 原文地址:https://www.cnblogs.com/wangtaolearning/p/13130874.html
Copyright © 2011-2022 走看看