当前位置:首页 > 开发 > 研发管理 > 正文

git常用命令整合

发表于: 2014-03-03   作者:cuiyaoonan2000   来源:转载   浏览:
git
摘要: ls -F $(dirname $(dirname $(git --html-path)))/gitwebecho  $(dirname $(dirname $(git --html-path)))/gitweb-----------------------系统配置------------------------------------git config --global color.

ls -F $(dirname $(dirname $(git --html-path)))/gitweb
echo  $(dirname $(dirname $(git --html-path)))/gitweb

-----------------------系统配置------------------------------------
git config --global color.ui true  //开启颜色支持
git config --global core.quotepath false  //支持utf-8编码
git config --global user.name cuiyaonan
git config --global user.email cuiyaonan2000@163.com
-----------------------系统配置------------------------------------


----------------------------------grep内容搜索---------------------
git  grep ""  //git中的文档内容搜索
----------------------------------grep内容搜索---------------------

mkdir -p a/b/c

git rev-parse --git-dir //显示.git目录所在位置    版本库
git rev-parse --show-toplevel //显示工作区根目录
git rev-parse --show-prefix //相对工作区的相对目录
git rev-parse --show-cdup //后退到工作区的根的深度  显示../../类似的情况
git rev-parse master  //显示对应的提交ID
git rev-parse HEAD //显示对应的提交ID
git rev-parse refs/heads/master //显示对应的提交ID


--------------------------------config属性文件操作-------------------------------------
 git config -e [-global | |--system] //git中查看config 配置文件的命令是
 git config core.bare //显示 core.bare的值
 git config core.bare true //修改core.bare中的值
 git config --unset --global user.name// 删除全局变量中的user.anme的值
--------------------------------config属性文件操作-------------------------------------


-------------------------------------commit提交操作---------------------------------------
git commit -a  //对所有的 修改删除直接提交.条过git add 命令 但是对违背追踪的文件无效
 git commit --allow-empty -m "empty commit" //空提交
git commit --amend --allow-empty --reset-author// amend:对刚刚的提交进行修补, reset-author将坐着的id同步进行修改
-------------------------------------commit提交操作---------------------------------------


------------------------------------------日志操作-------------------------------------------
 git log --pretty=fuller //显示最全的日志
git log --stat // stat 可以看到每次提交的文件变更统计
git log --pretty=oneline  // 精简显示日志
git log --graph --oneline //比上面的更精简些
git log --pretty=raw //日志的详细输出
git log --pretty=raw --grap  <id> //根据id显示该链路 参见P85
git log --oneline --decorate -4 //decorate 同是显示里程碑  ,-4表示显示前4条记录
------------------------------------------日志操作-------------------------------------------



-------------------------当前状态status命令------------------------------
git status //显示状态
git status -s  //精简显示状态
git status -s -b //精简显示内容. b表示显示当前工作分支
-------------------------当前状态status命令------------------------------




------------------------------diff对比命令-------------------------------------
git diff //工作区与暂存区比较
git diff HEAD //工作区和分支比较
git diff --cached //暂存区 和 版本库中的比较
------------------------------diff对比命令-------------------------------------


--------------------------------相关文件地址---------------------------------------
.git/config  // 配置文件保存地方
.git/index   //索引文件保存地方 建立了和对象库中的对象实体建的对应关系 目录树
HEAD 指向   refs/heads/master 指向 master
--------------------------------相关文件地址---------------------------------------



-----------------------------------checkout命令----------------------------------
git checkout -- [文件名称]  //暂存区的全部文件或者指定文件,替换工作区的文件.删除工作区添加到暂存区的改动
关于分离头和 checkout 命令详解参见P97
-----------------------------------checkout命令----------------------------------


--------------------------------------reset命令-------------------------------------
git reset HEAD  // 暂存区目录树会被master重写,工作区不受影响
git reset --hard HEAD^ //暂存区目录树会被master重写,工作区不受影响(如果已经跟版本库同步则受到影响) hard会破坏工作区未提交的改动慎用
git reset --hard master@{2}  //恢复以前的2步骤. 详见P96
--------------------------------------reset命令-------------------------------------




git reflog show master | head -5 //显示非 裸版本库 的日志前5条


-------------------------------------关于stash工作区命令-------------------------------------------------
git stash //保存当前工作进度 所有工作区尚未提交的改动,包括咋存取都不见了.
git stash list//显示以保存的工作进度
git stash pop //从最近保存的进度中进行恢复
stash详情见P108
git branch //显示当前工作分支
-------------------------------------关于stash工作区命令-------------------------------------------------




-----------------------------------------------根据id展示对象类型,及内容命令-------------------------------
git cat-flie -t  <id>  //根据id显示对象类型
git cat-file -p <id> //根据id 显示对象内容
-----------------------------------------------根据id展示对象类型,及内容命令-------------------------------



-------------------------------------------------------关于里程碑----------------------------------------
git tag -m 'say bye-bye to all previous practice' old_practice
ls ./git/refs/tags/old_practice
git re-parse  old_practice
git describe
里程碑详情见P234
-------------------------------------------------------关于里程碑----------------------------------------



--------------------------------------------------------关于删除文件-----------------------------------
git rm --cached <file> // 直接从暂存区删除文件 工作区不做出改变
git rm 文件 //本地 暂存区同时删除 多个文件以空格隔开
git clean -fd //删除工作区中尚未放入版本库中的文件和目录
git clean -nd //显示那些本地的会被删除
git add -u  //本地文件的变更(删除,修改)不包括添加,全部直接记录到暂存区,可以直接commit
--------------------------------------------------------关于删除文件-----------------------------------



-------------------------------------关于add命令--------------------------------------------------------
git add -u  //本地文件的变更(删除,修改)不包括添加,全部直接记录到暂存区,可以直接commit
gtt add -i //根据数字进行选择
git add -A  //将所有的新增文件及修改文件全部添加到暂存区,可以直接commit
git add . 当下所有的文件添加到暂存区
-------------------------------------关于add命令--------------------------------------------------------


----------------------------------------------恢复之前删除的文件----------------------------------
git cat-file -p HEAD~1:welcome.txt > welcome.txt  //恢复上一个历史版本中的welcome.txt文件
git show HEAD~1:welcome.txt > welcome.txt //恢复上一个历史版本中的welcome.txt文件
git checkout HEAD~1 -- welcome.txt        //恢复上一个历史版本中的welcome.txt文件
git add -A  //将所有的新增文件及修改文件全部添加到暂存区,可以直接commit
----------------------------------------------恢复之前删除的文件----------------------------------



-------------------------------------------------------------显示版本库中的文件----------------------------------------------
git ls-tree -l HEAD // 显示版本库中的目录树  l 表示显示文件大小.关于暂存区的目录树参见P79中

git ls-files --with-tree=HEAD^  //显示暂存区中上一个版本中的文件

git cat-file -p HEAD^:welcome.txt // 显示暂存区中上一个历史版本中 welcome.txt中的内容
-------------------------------------------------------------显示版本库中的文件----------------------------------------------


------------------------------------------mv移动命令--------------------------------
git mv welcome.txt readme  //将welcome.txt 改名为 readme .相当于 rm + add 命令集合;
------------------------------------------mv移动命令--------------------------------




 git rev-list HEAD|wc -l            //统计总共提交了多少次


 ----------------------------------------悔棋操作----------------------------------------------------------
git commit --amend -m 'go back b' 修改备注
 ----------------------------------------悔棋操作----------------------------------------------------------

------------------------------------------反转提交----------------------------------------------------
git revert HEAD|ID   //在不改变提交的前提下,撤销其对某些操作的修改
------------------------------------------反转提交----------------------------------------------------



 --------------------------------------------变基操作----------------------------------------------------
P167 没搞明白
 --------------------------------------------变基操作----------------------------------------------------



---------------------------------------------对等工作区-------------------------------------
git clone /path/to/my/workspace/demo/ /path/to/my/workspace/demo-backup //对等工作区克隆
git push /path/to/my/workspace/demo-backup/    //上有工作区推送 克隆工作区报错.必须在克隆工作区 pull

git rmote -v  //在克隆库中查看 上有版本库的信息 也可以在.git/config中查看
---------------------------------------------对等工作区-------------------------------------



--------------------------------------------裸版本库-----------------------------------------------
git  clone --bare  上有仓库地址   裸版本地址   //创建裸版本仓库
git push 裸版本地址    //上游仓库中推送数据到 裸版本地址
git  --git-dir=裸版本地址  log --oneline         //应为不能在裸版本目录下直接执行所以要添加参数  --git-dir
--------------------------------------------裸版本库-----------------------------------------------


-----------------------------------------------初始化工作区--------------------------------------
git init 初始化工作区目录,可以是绝对也可以是相对目录

git  init --bare 裸版本库地址
git push 裸版本库地址  master:master //如果第一次向裸版本库中推送 需要加上master:master
-----------------------------------------------初始化工作区--------------------------------------









author:cuiyaonan2000@163.com


































git常用命令整合

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号