初始化

创建版本库

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

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

1

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

将文件提交到 git索引:

  1. git add file1 file2 file3 ……

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

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

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

  1. git commit
  2. git commit -m "备注"

1

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

版本库状态

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

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

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

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

对文件进行一些操作:

  1. vi a #编辑 a
  2. rm b #删除 b
  3. touch c #新建 c

再用 git status 查看:

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

配置

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

用户信息

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

  1. [user]
  2. name = kardinal
  3. email = 2999am@gmail.com

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

  1. git config --global user.name "kardinal"
  2. git config --global user.email 2999am@gmail.com

语法高亮

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

  1. [color]
  2. branch = auto
  3. diff = auto
  4. status = auto

或者自己定义:

  1. branch.current # color of the current branch
  2. branch.local # color of a local branch
  3. branch.plain # color of other branches
  4. branch.remote # color of a remote branch
  5. diff # when to color diff output
  6. diff.commit # color of commit headers
  7. diff.frag # color of hunk headers
  8. diff.meta # color of metainformation
  9. diff.new # color of added lines
  10. diff.old # color of removed lines
  11. diff.plain # color of context text
  12. diff.whitespace # color of dubious whitespace
  13. status # when to color output of git-status
  14. status.added # color of added, but not yet committed, files
  15. status.changed # color of changed, but not yet added in the index, files
  16. status.header # color of header text
  17. status.untracked # color of files not currently being tracked
  18. status.updated # color of updated, but not yet committed, files

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