版本库:
.git隐藏文件夹就是版本库,在里面可以进行git的基本信息配置,日志,文件版本信息等.
这个版本库是不需要我们进行操作的.由git自动执行
工作目录(工作区):
包含.git文件的目录就是工作目录,主要用于存放开发的代码
暂存区:
.git文件中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage,暂存区是一个临时保存修改文件的地方.
每次修改我们的代码,首先就是将代码加载到index中,然后才能提交.
图形化效果
Git工作目录下的文件的两种状态
Git工作目录下的文件存在两种工作状态:
- untracked 未跟踪(未被纳入版本控制)
没有被git管理- tracked 已跟踪(被纳入版本控制)
被git管理
被管理后有三种状态
Unmodified 未修改状态
Modified 已修改状态
Staged 已暂存状态
一个git项目刚被导入本地,那么就是Unmodified,如果修改了其中的某一块,那么就进入Modified,而Modified 又会进入Staged中.文件的状态,会随着我们呢的命令发生变化.
工作目录下的每一个文件都会对应一种状态.
本地仓库的操作
查看本地状态
git status
这个命令需要在工作目录下执行,否则会报错.
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository
$ git status
fatal: not a git repository (or any of the parent directories): .git
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository
$
进入工作目录
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository
$ cd repo1
然后在执行会弹出工作目录所有文件当前状态
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
$ git status
On branch master//当前开发 处于master分支,这是一个默认的分支,只要我们创建仓库之后,就会一个master分支
No commits yet //当前工作目录中没有文件....
nothing to commit (create/copy files and use "git add" to track)
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
转入test01工作目录
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
$ cd ..
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository
$ cd test01
/d/BaiduNetdiskDownload/gitRepository/test01 (master)
$ git status
On branch master
No commits yet
Untracked files:// 未跟踪状态
(use "git add <file>..." to include in what will be committed)
hello.txt
nothing added to commit but untracked files present (use "git add" to track)
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/test01 (master)
$
也可以使用
git status -s
使消息更加简洁
??不是乱码,表示当前未跟踪
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
$ git add hellow.txt
输入add命令添加hellow.txt进入Staged状态
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
$ git status -s
A hellow.txt
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
同时,可以使用reset取消暂存
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
$ git reset hello.txt
Unstaged changes after reset:
D hellow.t
git commit -m//提交命令,这里的-m表示message,每次提交记录的日志信息
$ git commit -m "init" //初始化所有文件
红色M表示已修改但是未加入暂存区,add后进入Staged状态,后M变为绿色
如果不加-m参数的话,每次执行完成后会默认打开一个编辑器,然后将信息写入编辑器中
//就是这样子的编辑器
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# On branch master
# Changes to be committed:
# modified: hello.txt
#
# Changes not staged for commit:
# deleted: hellow.txt
#
输入一个I,后底框会出现一个insert字符,表示进入插入模式,在这种模式下就可去写日志信息了
日志信息可以随便写
按esc
推出
:wq
保存
回车保存后就会跳回
删除文件
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
$ git rm hello.txt
rm命令操作后默认Staged
需要commit后才会有用
将文件添加至忽略列表 .gitignore
在我们操作代码的过程中,我们所修改的,所使用到的,往往是少数,需要进行跟踪,而在这个过程中,编译器会自动产生大量的临时文件,这种情况下,git
会提醒我们文件未被跟踪,我们可以在工作目录中创建一个名为.gitignore文件(文件名称固定),
从而列出需要忽略的文件
这个文件中的所有文件都是不需要纳入管理的
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
$ touch .gitignore
windows环境下是无法创建这个文件的,应为windows的语法规则限制,但是可以在git环境中创建
git窗口中模拟的是linux语法规则,应为创始人都是托瓦丝,所以有这个特点
创建好之后,就可以打开来编辑一下了
忽略所有class文件
查看效果:
Andrewer@CaesarGattuso MINGW64 /d/BaiduNetdiskDownload/gitRepository/repo1 (master)
$ git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
.gitignore.bak
nothing added to commit but untracked files present (use "git add" to track)
这个是比较使用的,在后期会经常用到