git 基于文件夹(工作树)进行版本控制,在一个文件夹中创建 git版本库:
$ cd project/ $ git init Initialized empty Git repository in .git/
将文件提交到 git索引:
git add file1 file2 file3 ……
更方便的作法是将当前文件夹中的所有文件全部加入到索引中
git add .
.gitignore
文件中设置排除的文件(通常把临时文件排除)
注意 | |
---|---|
git 只负责管理被索引的文件 |
此时,文件还没有被提交到版本库。向版本库提交第一个版本:
git commit git commit -m "备注"
使用 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 = 2999am@gmail.com
也使用全局用户信息,在~/.gitconfig
中写入上述内容,或者使用命令:
git config --global user.name "kardinal" git config --global user.email 2999am@gmail.com
在~/.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