Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21173
  • 博文数量: 7
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 80
  • 用 户 组: 普通用户
  • 注册时间: 2012-09-18 13:16
个人简介

皇家太医院不正常人类研究中心的重度患者

文章分类

全部博文(7)

文章存档

2015年(3)

2014年(4)

我的朋友

分类: LINUX

2014-06-16 16:25:51

安装Git

在Ubuntu中安装Git

  1. t@odooserver:~$ sudo apt-get install git
查看下git版本

  1. t@odooserver:~$ git --version
  2. git version 1.9.1

Git配置文件

Git通过gitconfig配置文件来控制git工作环境,配置文件被分别存放于不同的路径,作用于不同的范围

配置Git基本环境

①配置用户名和邮件

tatye@tatye-ubuntu:~$ git config --global user.name "blgpl"

tatye@tatye-ubuntu:~$ git config --global user.email

用户名和邮件用于提交版本库

②设置别名,精简命令

tatye@tatye-ubuntu:~$ git config --global alias.st status

tatye@tatye-ubuntu:~$ git config --global alias.ci commit

tatye@tatye-ubuntu:~$ git config --global alisa.co checkout

tatye@tatye-ubuntu:~$ git config --global alias.br branch

③开启颜色显示

tatye@tatye-ubuntu:~$ git config --global color.ui true

初始化版本库

进入demo目录,使用命令 git init 初始化版本

tatye@tatye-ubuntu:~/gitworkspace/demo$ pwd
/home/tatye/gitworkspace/demo
tatye@tatye-ubuntu:~/gitworkspace/demo$ git init
初始化空的 Git 版本库于 /home/tatye/gitworkspace/demo/.git/

从输出结果可以看出init命令 创建了一个隐藏目录 .git

image

.git 就是版本库,也叫做仓库

/home/tatye/gitworkspace/demo

.git目录所在的demo目录 称为工作区

在工作区中新建文件welcome.txt

tatye@tatye-ubuntu:~/gitworkspace/demo$ echo "Hello Git !" >welcome.txt
tatye@tatye-ubuntu:~/gitworkspace/demo$ ls -a
.  ..  .git  welcome.txt

将文件添加到版本库中

tatye@tatye-ubuntu:~/gitworkspace/demo$ git add welcome.txt

正式提交

tatye@tatye-ubuntu:~/gitworkspace/demo$ git commit -m "init git"

  • image 
    tatye@tatye-ubuntu:~/gitworkspace/demo$ git commit -m "init git"
    [master (根提交) 6502b84] init git
    1 file changed, 1 insertion(+)
    create mode 100644 welcome.txt

分析提交后的输出

第一行显示提交在master分支上,且是根提交,提交ID为6502b84

第二行显示,一个文件被改变,一行的插入

定位版本库

Git的版本是在工作区根目录下的。所以版本库的定位跟工作区密切相关

①在非git工作区执行git命令时,会因为找不到.git目录报错

tatye@tatye-ubuntu:~$ git status
fatal: Not a git repository (or any of the parent directories): .git

②在工作区子目录中执行命令 ,会在目录中依次向上递归查找.git目录

下面演示下,

在工作区中的路径访问顺序

strace -e 'trace=file' git status
execve("/usr/bin/git", ["git", "status"], [/* 22 vars */]) = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
open("/dev/null", O_RDWR)               = 3
open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
getcwd("/home/tatye/gitworkspace/demo", 4096) = 30
stat(".", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
stat(".git", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
access(".git/objects", X_OK)            = 0
access(".git/refs", X_OK)               = 0
lstat(".git/HEAD", {st_mode=S_IFREG|0664, st_size=23, ...}) = 0
open(".git/HEAD", O_RDONLY)             = 3
access("/etc/gitconfig", R_OK)          = -1 ENOENT (No such file or directory)
access("/home/tatye/.config/git/config", R_OK) = -1 ENOENT (No such file or directory)
access("/home/tatye/.gitconfig", R_OK)  = 0
open("/home/tatye/.gitconfig", O_RDONLY) = 3
access(".git/config", R_OK)             = 0
open(".git/config", O_RDONLY)           = 3
stat(".", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
getcwd("/home/tatye/gitworkspace/demo", 1024) = 30
chdir(".")                              = 0
getcwd("/home/tatye/gitworkspace/demo", 4096) = 30
lstat("/home/tatye/gitworkspace/demo", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
chdir("/home/tatye/gitworkspace/demo")  = 0
stat(".git", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
access("/etc/gitconfig", R_OK)          = -1 ENOENT (No such file or directory)
access("/home/tatye/.config/git/config", R_OK) = -1 ENOENT (No such file or directory)
access("/home/tatye/.gitconfig", R_OK)  = 0
open("/home/tatye/.gitconfig", O_RDONLY) = 3
access(".git/config", R_OK)             = 0
open(".git/config", O_RDONLY)           = 3
stat(".git", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
getcwd("/home/tatye/gitworkspace/demo", 1024) = 30
chdir(".git")                           = 0
getcwd("/home/tatye/gitworkspace/demo/.git", 4096) = 35
lstat("/home/tatye/gitworkspace/demo/.git", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
chdir("/home/tatye/gitworkspace/demo")  = 0
chdir("/home/tatye/gitworkspace/demo")  = 0
stat(".git", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
lstat(".git/HEAD", {st_mode=S_IFREG|0664, st_size=23, ...}) = 0
open(".git/HEAD", O_RDONLY)             = 3
lstat(".git/refs/heads/master", {st_mode=S_IFREG|0664, st_size=41, ...}) = 0
open(".git/refs/heads/master", O_RDONLY) = 3
open(".git/index", O_RDONLY)            = 3
open("/home/tatye/gitworkspace/demo/.gitmodules", O_RDONLY) = -1 ENOENT (No such file or directory)
access("/etc/gitconfig", R_OK)          = -1 ENOENT (No such file or directory)
access("/home/tatye/.config/git/config", R_OK) = -1 ENOENT (No such file or directory)
access("/home/tatye/.gitconfig", R_OK)  = 0
open("/home/tatye/.gitconfig", O_RDONLY) = 3
access(".git/config", R_OK)             = 0
open(".git/config", O_RDONLY)           = 3
lstat(".git/MERGE_HEAD", 0x7fffd2c5fe20) = -1 ENOENT (No such file or directory)
lstat(".git/CHERRY_PICK_HEAD", 0x7fffd2c5fe20) = -1 ENOENT (No such file or directory)
lstat("welcome.txt", {st_mode=S_IFREG|0664, st_size=12, ...}) = 0
readlink(".git/index", 0x7fffd2c5ee60, 4096) = -1 EINVAL (Invalid argument)
open(".git/index.lock", O_RDWR|O_CREAT|O_EXCL, 0666) = 3
unlink(".git/index.lock")               = 0
lstat(".git/HEAD", {st_mode=S_IFREG|0664, st_size=23, ...}) = 0
open(".git/HEAD", O_RDONLY)             = 3
lstat(".git/refs/heads/master", {st_mode=S_IFREG|0664, st_size=41, ...}) = 0
open(".git/refs/heads/master", O_RDONLY) = 3
lstat(".git/refs/HEAD", 0x7fffd2c5ca00) = -1 ENOENT (No such file or directory)
open(".git/packed-refs", O_RDONLY)      = -1 ENOENT (No such file or directory)
lstat(".git/refs/tags/HEAD", 0x7fffd2c5ca00) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c910) = -1 ENOENT (No such file or directory)
lstat(".git/refs/heads/HEAD", 0x7fffd2c5ca00) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c910) = -1 ENOENT (No such file or directory)
lstat(".git/refs/remotes/HEAD", 0x7fffd2c5ca00) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c910) = -1 ENOENT (No such file or directory)
lstat(".git/refs/remotes/HEAD/HEAD", 0x7fffd2c5ca00) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c910) = -1 ENOENT (No such file or directory)
lstat(".git/HEAD", {st_mode=S_IFREG|0664, st_size=23, ...}) = 0
open(".git/HEAD", O_RDONLY)             = 3
lstat(".git/refs/heads/master", {st_mode=S_IFREG|0664, st_size=41, ...}) = 0
open(".git/refs/heads/master", O_RDONLY) = 3
lstat(".git/refs/HEAD", 0x7fffd2c5c210) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c120) = -1 ENOENT (No such file or directory)
lstat(".git/refs/tags/HEAD", 0x7fffd2c5c210) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c120) = -1 ENOENT (No such file or directory)
lstat(".git/refs/heads/HEAD", 0x7fffd2c5c210) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c120) = -1 ENOENT (No such file or directory)
lstat(".git/refs/remotes/HEAD", 0x7fffd2c5c210) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c120) = -1 ENOENT (No such file or directory)
lstat(".git/refs/remotes/HEAD/HEAD", 0x7fffd2c5c210) = -1 ENOENT (No such file or directory)
stat(".git/packed-refs", 0x7fffd2c5c120) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, ".git/refs/", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
stat(".git/refs/heads", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
stat(".git/refs/tags", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0
stat(".git/packed-refs", 0x7fffd2c5e510) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, ".git/objects/pack", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
open(".git/objects/info/alternates", O_RDONLY|O_NOATIME) = -1 ENOENT (No such file or directory)
access(".git/objects/65/02b84e0193a0fd9ed3d89e599700d0dbf042d8", F_OK) = 0
open(".git/objects/65/02b84e0193a0fd9ed3d89e599700d0dbf042d8", O_RDONLY|O_NOATIME) = 3
open(".git/objects/65/02b84e0193a0fd9ed3d89e599700d0dbf042d8", O_RDONLY|O_NOATIME) = 3
open(".git/info/grafts", O_RDONLY)      = -1 ENOENT (No such file or directory)
stat(".git/shallow", 0x7c50a0)          = -1 ENOENT (No such file or directory)
open(".git/objects/bc/6ffb70b80f813f702356c03c5d3ec034dd24b0", O_RDONLY|O_NOATIME) = 3
access(".git/info/exclude", R_OK)       = 0
open(".git/info/exclude", O_RDONLY)     = 3
access("/home/tatye/.config/git/ignore", R_OK) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, ".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 3
stat(".git/MERGE_HEAD", 0x7fffd2c5fc20) = -1 ENOENT (No such file or directory)
stat(".git/rebase-apply", 0x7fffd2c5fc20) = -1 ENOENT (No such file or directory)
stat(".git/rebase-merge", 0x7fffd2c5fc20) = -1 ENOENT (No such file or directory)
stat(".git/CHERRY_PICK_HEAD", 0x7fffd2c5fc20) = -1 ENOENT (No such file or directory)
stat(".git/BISECT_LOG", 0x7fffd2c5fc20) = -1 ENOENT (No such file or directory)
stat(".git/REVERT_HEAD", 0x7fffd2c5fc20) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 3
open("/usr/share/locale/zh_CN/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale/zh/LC_MESSAGES/git.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/locale-langpack/zh_CN/LC_MESSAGES/git.mo", O_RDONLY) = 3
open("/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 3
位于分支 master
lstat(".git/HEAD", {st_mode=S_IFREG|0664, st_size=23, ...}) = 0
open(".git/HEAD", O_RDONLY)             = 3
lstat(".git/refs/heads/master", {st_mode=S_IFREG|0664, st_size=41, ...}) = 0
open(".git/refs/heads/master", O_RDONLY) = 3
access("/etc/gitconfig", R_OK)          = -1 ENOENT (No such file or directory)
access("/home/tatye/.config/git/config", R_OK) = -1 ENOENT (No such file or directory)
access("/home/tatye/.gitconfig", R_OK)  = 0
open("/home/tatye/.gitconfig", O_RDONLY) = 3
access(".git/config", R_OK)             = 0
open(".git/config", O_RDONLY)           = 3
无文件要提交,干净的工作区
+++ exited with 0 +++
tatye@tatye-ubuntu:~/gitworkspace/demo$

 

通过命令直接查找版本库

git rev-parse --git-dir

/home/tatye/gitworkspace/demo/.git

显示工作区的目录

tatye@tatye-ubuntu:~/gitworkspace/demo/a/b/c/d$ git rev-parse --show-toplevel

/home/tatye/gitworkspace/demo

显示从当前目前回到工作区的深度

tatye@tatye-ubuntu:~/gitworkspace/demo/a/b/c/d$ git rev-parse --show-cdup

../../../../

阅读(1627) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Vi_千里之行,始于足下

给主人留下些什么吧!~~