皇家太医院不正常人类研究中心的重度患者
分类: LINUX
2014-06-16 16:25:51
③开启颜色显示
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
.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"
分析提交后的输出
第一行显示提交在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$