初始化

创建版本库

git 基于文件夹(工作树)进行版本控制,在一个文件夹中创建 git版本库:

$ cd project/  
$ git init   
1Initialized empty Git repository in .git/   

1

输出信息:在当前文件夹的 .git/ 目录下创建版本库

将文件提交到 git索引:

git add file1 file2 file3 ……  

更方便的作法是将当前文件夹中的所有文件全部加入到索引中

git add .  
  • 可以在 .gitignore 文件中设置排除的文件(通常把临时文件排除)
[注意] 注意
git 只负责管理被索引的文件

此时,文件还没有被提交到版本库。向版本库提交第一个版本:

git commit1
git commit -m "备注"  

1

调用系统默认编辑器编辑备注内容

版本库状态

使用 git status 命令查看版本库状态。先创建一个演示版本库:

mkdir sandbox                 #新建一个文件夹
cd sandbox/                   #进入该文件夹
git init                      #初始化版本库
touch a b                     #新建 a b 两个文件
git add .                     #将这两个文件提交到索引
git commit -m "创建git版本库"  #将第一个版本提交到版本库   

这时使用 git status 查看版本库状态:

# On branch master
nothing to commit (working directory clean)    

对文件进行一些操作:

vi a      #编辑 a
rm b      #删除 b
touch c   #新建 c 

再用 git status 查看:

# On branch master          #在 master 分支上
# Changes to be committed:  #已提交到索引,等待提交到版本库(其实本例中没有这一段)
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:  e 
#       modified:  f 
#
# Changed but not updated:  #改动未提交到索引
#   (use "git add/rm <file>..." to update what will be committed)
#
#       modified:   a
#       deleted:    b
#
# Untracked files:           #文件未提交到索引
#   (use "git add <file>..." to include in what will be committed)
#
#       c
no changes added to commit (use "git add" and/or "git commit -a")    
[注意] 注意
如果只是想删除该文件夹中的版本库,只要删除 .git/ 目录即可
rm -rf .git    

配置

git 初始化后,会在.git/目录下创建一个版本库,其中.git/config为配置文件。

用户信息

为当前版本库添加用户信息[62]

[user]
    name = kardinal
    email = [email protected]  

也使用全局用户信息,在~/.gitconfig中写入上述内容,或者使用命令:

			
git config --global user.name "kardinal"
git config --global user.email [email protected]  

语法高亮

~/.gitconfig文件中添加如下语句,使用容易阅读的彩色来输出信息:

[color]
    branch = auto
    diff = auto
    status = auto    

或者自己定义:

branch.current          # color of the current branch
branch.local            # color of a local branch
branch.plain            # color of other branches
branch.remote           # color of a remote branch
diff                    # when to color diff output
diff.commit             # color of commit headers
diff.frag               # color of hunk headers
diff.meta               # color of metainformation
diff.new                # color of added lines
diff.old                # color of removed lines
diff.plain              # color of context text
diff.whitespace         # color of dubious whitespace
status                  # when to color output of git-status
status.added            # color of added, but not yet committed, files
status.changed          # color of changed, but not yet added in the index, files
status.header           # color of header text
status.untracked        # color of files not currently being tracked
status.updated          # color of updated, but not yet committed, files    


[62] 这是必需的,请不要忽略