linux git 学习笔记
2014-07-23 18:08
260 查看
最近在机子上装了个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
将分离头指针指的东西合并当当前分支中来,不丢失
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
将分离头指针指的东西合并当当前分支中来,不丢失
相关文章推荐
- 学习笔记:Linux驱动开发git基本使用流程
- git 学习笔记2-linux上安装git
- Linux学习笔记——搭建Git服务器
- 【Linux 学习笔记】戏说Git (上)
- Linux下git学习笔记(一)
- linux git入门学习笔记
- 转载:写得蛮好的linux学习笔记
- linux学习笔记
- Linux学习笔记
- 写得蛮好的linux学习笔记(压缩命令,vi一般用法,认识SHELL,正规表示法)
- rh9 linux服务配置学习笔记---------Apache
- Linux下汇编学习笔记之三--(Professional Assembly Language)
- 写得蛮好的linux学习笔记(linux目录架构)
- Linux学习笔记-与系统管理有关的命令[转帖]
- Linux 学习笔记( LINUX运行的硬件基础1)
- rh9 linux服务配置学习笔记--------dns
- linux学习笔记
- 学习笔记-Linux 系统管理学习笔记(一)
- Linux基础知识学习笔记(一)--文件系统的权限管理
- 学习嵌入式Linux系统的笔记和体会