linux git 学习笔记

最近在机子上装了个ubuntu系统,开始学习一些关于linux的东西。。虽然有点讽刺哈。。但还是决定先用网络进行备份了- -

git --version

git config --global user.name/user.email +属性值(不加属性值表示查看属性值)

         git配置包括三个范围,系统配置/etc/gitconfig,用户配置/home/用户名/.gitconfig,以及针对某个版本控制案例的配置.../案例名称根目录/.git/config

分别用--system/--global/???表示

    git config -e 在案例根目录下执行,表示欲进行此版本控制案例的配置

    git config -e --global 修改全局配置文件

    git config -e --system 修改系统配置文件

    git config --unset --global user,name/uesr.email取消之前的配置

git init

        版本库创建命令,可以打开要进行控制的目录输入命令git init,也可在其上一层输入git init <案例名称>,直接创建此目录并创建版本库(.git存在于次目录下)

git add

        用与添加更新的文件到版本库,直接跟文件名即可

git commit

       选项-m <提交描述>,不加此选项也会自动让你添加的。。

       --allow-empty 允许不修改文件的提交。。

       --amend 表示修改上次提交,不产生新的提交记录,只是更改上次提交记录的时间等信息

       -a 对本地所做变更直接提交到版本库,但不包含版本库不存在的文件(也就是必须用add 添加新的文件到版本库)不推荐使用,因为无法灵活应用暂存区

git log

       查看提交记录 (--stat//--pretty-fuller详细显示/oneline简要信息...)

       --graph 查看日志追踪

git grep “。。。”

       在此目录下搜所含有“。。。”内容的文件

所有落实到具体案例的git命令均应该在<案例名称>/的子目录中进行。

git rev-parse --git-dir

        任意子目录中寻找版本库.git目录所在的位置

git rev-parse --show-toplevel

        案例根目录

git rev-parse --show-prefix

        当前目录相对于案例根目录的相对路径

git rev-parse --show-cdup

        后退到根的深度

strace -e 'trace=file' git status 跟踪执行git status命令时的磁盘访问(貌似与git关系不大哈~)

git diff

        查看此案例中本地所有文件与暂存区文件的差异

git diff master/HEAD

         查看此案例中本地所有文件与版本库中文件的差异

git diff --cached

         查看此案例中暂存区所有文件与版本库中文件的差异

git status (-s)

         查看文件状态:

             红M(中间)表示本地修改,未同步到暂存区,不能提交;

             绿M(左边)表示本地修改已同步到缓存区但未提交到版本库,可以提交;



git ls-files (-s)

           显示暂存区的目录树,第三个字段是暂存区编号

git ls-tree (-l) +object名称(如HEAD)

           显示目录树,第三个字段是文件大小(这是与上条指令的第一点不同),不展开(目录大小未知-   这是与上条指令的第二点不同)并非写入暂存区就能在此树中显示(这是与上条指令的第三点不同),要想显示必须手动将工作区树写入    git对象中:

  git write-tree(将会产生SHA1 ID)

  git ls-tree -l -r(第二点不同。。手动递归显示)  -t(保留中间过程所有树节点)  <上一步产生的ID>

git stash

           保存当前工作进度,清理工作区。之前的改动以及三个地方的状态都被保存起来。

git cat-file -t(种类) -p(内容)  [commit/tree/blob..]

           查看对象的种类,内容等

git reset

           直接git reset或git reset HEAD ,使用HEAD指向得目录树重置暂存区,工作区不受影响。相当于之前用GIT ADD命令更新到暂存区得内容撤出暂存区。HEAD引用未改变。

           -- (HEAD)filename 仅将文件filename得改动撤出暂存区,暂存区其他文件不变

           --soft HEAD^  工作区和暂存区不变,只是引用向前回退一次(用于提交描述失误或者提交效果不满意)

           --hard HEAD^ 彻底撤销最近提交,引用回退,工作区暂存区均回到提交前状态(可用reflog补救)

           --(mixed) HEAD^ 间于以上二者之间,引用回退,暂存区改变,工作区不变。为默认重置。

git reflog

            挽救错误的重置

            要求git config core.logallrefupdates = true

            git reflog show master

            git reset --hard master@{}想回到哪就写哪

git checkout

           与reset不同,只改变HEAD的指向,使其指向具体值非引用。而master的指向不该变。

           检出的主要目的是用暂存区的内容或者指定文件覆盖工作区,而重置是用HEAD指向的内容覆盖暂存区。

          git checkout  branch 三个动作:HEAD指向branch,branch 指向的树更新暂存区和工作区

          git checkout (HEAD) 汇总显示工作区、暂存区与HEAD的差异

          git checkout --filename 用暂存区中的filename覆盖工作区中的filename

          git checkout branch --filename  用branch分支指向的提交中的filename替换暂存区和工作区的filename

          git checkout -- . 暂存区内容直接覆盖本地文件

git merge

           将分离头指针指的东西合并当当前分支中来,不丢失

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值