用 git init 在目录中创建新的 Git 仓库。 
$ mkdir test
$ cd test/
$ git init
Initialized empty Git repository in /Users/chenm/www/test/.git/
# 在 /www/test/.git/ 目录初始化空 Git 仓库完毕。

可以看到在你的项目中生成了 .git 这个子目录(隐藏文件)。 这就是你的 Git 仓库了,所有有关你的此项目的快照数据都存放在这里。
ls -a

不使用--bare选项时,就会生成.git目录以及其下的版本历史记录文件,这些版本历史记录文件就存放在.git目录下;而使用--bare选项时,不再生成.git目录,而是只生成.git目录下面的版本历史记录文件,这些版本历史记录文件也不再存放在.git目录下面,而是直接存放在版本库的根目录下面

”git init –bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到下面的错误(”This operation must be run in a work tree”)

版本库位于工作区根目录下的.git目录中,仅此一处,工作区执行git 命令会依次向上查找.git,非工作区执行git命令会因找不到.git目录而报错。
显示工作区根目录:
git rev-parse —show-toplevel

版本库.git位置:

git rev-parse —git-dir

仓库级配置文件位置
当前仓库下,路径.git/,文件名为config,这个配置中的设置只对当前所在仓库有效仓库级配置文件内容
全局级配置在用户目录下,文件名为.gitconfig
系统级配置文件:本地git的安装目录下,\Git\etc,文件名为:gitconfig

 

命令参数 –list, 简写 -l
格式:git config [–local|–global|–system] -l
查看仓库级的config,即.git/.config,命令:git config -–local -l
查看全局级的config,即C:\Users\zuoyu.ht\.gitconfig,命令:git config -–global -l
查看系统级的config,即D:\Program Files\Git\etc\gitconfig,命令:git config -–system -l
查看当前生效的配置,命令:git config -l,这个时候会显示最终三个配置文件计算后的配置信息

git命令自动补齐

git 命令并不支持自动补全功能,为了使我们的工作更加高效,就非常有必要用到自动补全功能。实现这个功能需要用到 git 源码中的一个脚本文件。

方法一:
1.下载git 源码 git clone https://github.com/git/git

源代码下有个 contrib/completion 目录,有个 git-completion.bash 文件

cd git/contrib/completion/

2.将该文件复制到主目录(~)下

cp git-completion.bash ~/.git-completion.bash

3.在 .bashrc 中加入:

vim ~/.git-completion.bash
source ~/.git-completion.bash

4. 重启Terminal

方法二:

首先下载自动补齐脚本,使用curl命令如下:

curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash \
-o ~/.git-completion.bash

编辑~/.profile 文件,在最后增加如下代码:

if [ -f ~/.git-completion.bash ]; then
source ~/.git-completion.bash
fi

重启终端后应该就可以使用tab自动补全

 
彩色git 输出
git config  --global color.ui true
或者编辑git配置文件:vi ~/.gitconfig
[color]
ui = true
设置好以后,当输出到终端时,Git 会为之加上颜色。其他的参数还有false和always,false意味着不为输出着色,而always则表明在任何情况下都要着色,即使 Git 命令被重定向到文件或管道。让diff输出的改变信息以粗体、蓝色前景和黑色背景的形式显示
$ git config --global color.diff.meta “blue black bold”

可以参考git config帮助页

其他

$ touch README  //创建一个文件
$ touch hello.php
$ vim README $ git grep mmap //搜索仓库里使用'mmap'函数的地方
git add welcome.txt
//git add 后git diff显示无差异
//git diff HEAD(版本库头指针)/master 会显示差异
git commit //如果你没有设置 -m 选项,Git 会尝试为你打开一个编辑器以填写提交信息。 如果 Git 在你对它的配置中找不到相关信息,默认会打开 vim。 git-ls-tree - List the contents of a tree object
git-ls-files - Show information about files in the index and the working tree
git-ls-remote - List references in a remote repository git checkout 重写工作区
git checkout [-q] [commit] [—] <path>…
git checkout [branch]
git checkout [-m] [-b | —orphan new_branch] [start_point] //创建及切换新分支,新分支从<start_point>指向新的提交开始创建 git checkout —fileName //暂存区fileName文件覆盖工作区,即取消上次操作
git checkout branchName —fileName //branchName所指向的fileName覆盖暂存区和工作区
git checkout --. / git checkout . //全覆盖
 
 

Git 常用命令(二)的更多相关文章

  1. git常用命令二、:git stash

    Git stash 储藏工作现场(当你不得不新建分支,或者切换分支,但是当前工作区的修改并不想提交) git stash Saved working directory and index state ...

  2. git常用命令二

    http://www.jianshu.com/p/08c3f1804b36http://backlogtool.com/git-guide/cn/stepup/stepup1_1.html   git ...

  3. Git常用命令(二)

    git clone + URL 获取该项目源代码 $ git log 回顾提交历史 $ git log -p -(数字) 用来显示每次提交的内容差异+(数字)表示看最近几条 $ git log --s ...

  4. Git 常用命令详解(二)

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  5. 【转】 Git 常用命令详解(二)----不错

    原文网址:http://blog.csdn.net/ithomer/article/details/7529022 Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如: ...

  6. git常用命令(二)

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  7. Git 常用命令详解

    Git 是一个很强大的分布式版本管理工具,它不但适用于管理大型开源软件的源代码(如:linux kernel),管理私人的文档和源代码也有很多优势(如:wsi-lgame-pro) Git 的更多介绍 ...

  8. 转收藏:Git常用命令速查表

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  9. git常用命令2

    一. Git 常用命令速查 git branch 查看本地所有分支git status 查看当前状态 git commit 提交 git branch -a 查看所有的分支git branch -r ...

  10. Git常用命令(转)

    目前开发的新项目使用的版本控制工具基本用的都是Git,老项目用的还是Svn,网上Git资源也很多,多而杂.我整理了一份关于Git的学习资料,希望能帮助到正在学习Git的同学. 一. Git 命令初识 ...

随机推荐

  1. week1 四人小组项目

    小组名称:nice! 项目组长:李权 组员:于淼 刘芳芳 杨柳 项目选题:东北师范大学论坛 作为东北师范大学同学间的信息交流平台,要满足的需求如下: 1.校内信息及公告 2.毕业生招聘信息 3.课程查 ...

  2. java.awt.AWTError: Can't connect to X11 window server using ':20' as the value of the DISPLAY variable

    1.使用pio在Linux服务器上创建window文件时,需要使用到Linux的图形界面服务,出现以下问题需确认用户权限. 参考文献:https://zhidao.baidu.com/question ...

  3. TCP/IP协议与OSI协议

    OSI协议是一个理想化的协议,它把网络传输过程分为七层模型,以达到形象化的理解的效果,在实际应用中没有被使用.TCP/IP协议可以看作是它的简化版,是目前应用最广泛的网络协议,许多协议都是以它为基础而 ...

  4. bootstrap 有些控件需要调用锚点,会与angular 路由 冲突

    最简单的方法 就是 在 #号前加/, 但有人说 在服务器上回失效,也不知道是什么原理.慎用 最靠谱的方法 就 是 使用bootstrap中的js控制控件, 比如轮播图的上一页 下一页,就可以在 ang ...

  5. jsp当做第二个servlet request的生命周期 请求 响应 不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束 request的域消失

    jsp当做第二个servlet  request的生命周期   请求 响应  不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束  request的域消失

  6. 威锋网(Weiphone) BBS排序插件

    body,td,p { // 这对大括号里描述网页的背景 margin-left:40px; margin-right:40px; font-size: 10pt; } div.vim { width ...

  7. [洛谷P3950]部落冲突

    题目大意:给你一棵树,有$3$个操作: $Q\;p\;q:$询问$p,q$是否连通 $C\;p\;q:$把$p->q$这条边割断 $U\;x:$恢复第$x$次操作二 题解:可以在割断时把这条边赋 ...

  8. POJ2406:Power Strings——题解

    http://poj.org/problem?id=2406 就是给一个串,求其循环节的个数. 稍微想一下就知道,KMP中nxt数组记录了所有可与前面匹配的位置. 那么如果我们的循环节长度为k,有n个 ...

  9. [Leetcode] Maximum depth of binary tree二叉树的最大深度

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  10. LibreOJ #6190. 序列查询(线段树+剪枝)

    莫队貌似是过不了的,这题是我没见过的科技... 首先区间按右端点排序,然后一个扫描线,扫到某个区间右端点时候计算答案,线段树上节点的信息并不需要明确定义,我们只要求线段树做到当前扫到now时,查询[L ...