Git 初始化
1. 查询当前git 版本:
git --version
2. 创建一个新的工作目录,如:在git 用户的根目录下,创建demo 项目
cd /home/git/
mkdir demo cd demo git init //创建一个工作目录,工作目录下回新增一个.git文件
result:Initialized empty Git repository in /home/git/.git/
3. 在项目下新增文件,并提交touch test.txt //创建test.txt文件
echo "Hello" > test.txt //在test.txt中增加内容
git add test.txt //将test.txt文件添加到缓冲区
git commit -m "新增test.txt文件" //文件提交到本地仓库 -m 参数设置提交说明为:"新增test.txt文件"
result:
[master (root-commit) 75c950c] 新增test.txt文件 //此次提交在master 的分支上,且是该分支的第一个提交(root-commit),提交ID 为 75c950c
1 file changed, 1 insertion(+) //此次提交修改了一个文件,包含一行的插入
create mode 100644 test.txt //此次提交创建了新文件 test.txt
4. 工作区包含关键的文件搜索
git grep "test"
result:
test.txt:test
思考: git 将版本库(.git 目录)放在工作区根目录下,那么Git的相关操作一定要在工作区根目录下执行吗?换句话说,当工作区中包含子目录,并在子目录中执行Git 命令时,如何定位版本库呢?
实际上,当在Git 工作区的某个子目录下执行操作的时候,会在工作区目录中依次向上递归查询 .git 目录,找到的 .git 目录就是工作区对应的版本库, .git 所在的目录就是工作区的根目录,文件 .git/index 记录了工作区文件的状态(实际上是暂存区的状态)
显示版本库 .git 目录所在的位置:
git rev-parse--git-dir
result:
/home/git/demo/.git
显示工作区根目录:
git rev-parse --git-dir
result: /home/git/demo
显示工作区根目录的相对目录:
git rev-parse --git-dir
result:a/b/c