zoukankan      html  css  js  c++  java
  • Git 学习笔记(一)基础命令

     

    git config --global user.email "user@example.com"

    cd [project_path]

    git init


    git add

    ——(--all 或 -a,添加所有)(--interactive 可以开启交互模式,选取具体的修改加入待提交的队列)

    —— 将指定的修改加入暂存区(staging area,索引 index)

    —— 通过 git reset HEAD filename 可以将已加入暂存区的文件移出暂存区(如果文件在被 git add 之后有新的修改,则新的修改将被丢弃

    —— 在项目的根目录下创建 .gitignore 文件,其中列举不需要提交的文件(具体文件、包含在某个目录里的文件、具有特定模式的文件、例外文件等),那么在文件加入暂存区的时候就会忽略指定的文件。如果只在子目录里创建 .gitignore 文件,则只影响相应目录下的结果。如果要忽略一个已经被加入到版本里的文件,那么可以用 update-index 命令的 --assume-unchanged。

    —— 每一次 add 操作只将已经发生的更改添加到暂存区,add 操作之后发生的修改需要再次执行 add 才会被加入暂存区。

    git stash

    —— 将工作区和暂存区中的修改保存在储藏栈(stash stack,缓存区)

    —— 通过 git stash list 可以查看位于储藏栈的修改

    —— 通过 git stash pop 恢复位于栈顶的修改

    —— 通过 git stash pop stash@{1} 恢复指定的修改

    git rm

    —— 不在追踪某个文件的变化

    git commit

    —— 选择性提交有利于某些修改之间的隔离。将不同的修改分多次提交可以使得被提交的历史记录更清晰,而且更方便后期定位和获取(git checkout)某个单一的修改。


    git status

    —— 可查看当前工作区中已经发生的所有修改(包含增删文件),以及已经加入暂存区的修改。使用 --short 选项可以让输出显示更紧凑。

    —— 已加入暂存区可以提交的修改:changes to be committed

    —— 未加入暂存区的修改:changed but not updated

    —— 未被跟踪的文件(新增文件):untracked files

    git diff <a> <b> <c>

    ——(a、b 可以是不同的分支、标签、散列值、HEAD等;其中 “版本标识^!” 表示比较当前提交与上一次提交;c 可以用于指定是哪个目录或文件的比较)

    ——(git diff --stat <a> <b> 可以统计每个文件中的修改的数量)

    ——(git diff --staged 可以查看 HEAD 与暂存区,即已经加入待提交队列的文件的区别)

    ——(git diff 可以查看工作区与暂存区之间的差别)

    git log

    ——(-n 显示最近几次的提交)

    ——(--oneline 单行显示每一次提交,--format 格式化输出)

    ——(--stat 只显示被修改的文件,--dirstat 显示那些包含被修改文件的目录,--shortstat 显示项目中有多少文件被修改、新增或删除)

    ——(--graph 图形化显示各提交之间的关系)


    git clone

    git pull(= git fetch + git merge)

    git push


    git checkout <版本标签或散列值>   ——    恢复/回滚到某个版本

    git fsck    ——    验证版本库的完整性


    版本库:

    项目版本库(blessed repository)

    子项目的版本库(子模块,submodule)

    裸版本库(bare repository)


    git 的文件存储机制

    —— git hash-object -w filename 可以得到一个文件对象的 hash 值

    —— git cat-file -p hash值 可以 cat 该 hash 值对应的文件的内容

    —— git 通过维护文件对象的 hash 值来管理文件的存储

  • 相关阅读:
    解决spring整合quartz,tomcat关闭后,quartz还在运行
    注解 @Resource
    spring 跟 诠释及区别
    This is usually caused by using Struts tags without the associated filter.
    离开中心村进国企——北漂18年(21)
    Android开源项目分类汇总
    AndroidManifest.xml文件详解(service)
    Android相关属性的介绍:android:exported
    Android:关于声明文件中android:process属性说明
    关于 android receiver
  • 原文地址:https://www.cnblogs.com/shilxfly/p/9437060.html
Copyright © 2011-2022 走看看