1、git本地库初始化
命令:git init
效果:Initialized empty Git repository .git文件存放和本地库相关的子目录和文件
2、设置签名
2.1、 签名的形式
用户名 :wjf
E-mail地址: HelloGit@bupt.com
2.2、签名的作用
标识不同开发人员的身份,不用用户名(wjf)和E-mail地址(HelloGit)相同
辨析:这里设置的签名(用户名、E-mail地址)和登录远程库/代码托管中心(Github)的用户名、E-mail地址完全没有任何关系,甚至于这里签名的E-mail地址可以不存在
2.3、签名设置的命令
项目级别/仓库级别:在当前本地库范围内有效
保存位置:/.git /config
git config user.name wjf_pro
git config user.email HelloGit@bupt.com
电脑系统用户级别: 登录当前操作系统的用户范围
保存位置:用户home目录/.gitconfg
git config global user.name wjf_pro
git config global user.email HelloGit@bupt.com
进入用户home目录(cd ~)查看目录资源(ll -la|less)找到.gitconfig文件,查看该文件内容(cat)
也可用完整目录去cat:cat ~/.gitconfig
优先级:项目级别>大于系统用户级别(就近原则)一般没必要两种都设置,通常设置一个系统用户级别就够了
3、git 版本控制相关命令
3.1、git status
No commits yet 没有任何已经提交了的东西(本地库里面什么都没有)
nothing to commit 没有什么可提交的东西(暂存区里面什么都没有)
create/copy files and use “git add” to track(git add 来追踪文件)
没提交的(git add)放在暂存区
提交了的 ( git commit ) 放在本地库
按照提示我们来新建文件
进入页面后直接输入字符,然后按esc 再ctrl+z退出vim编辑器
vim good.txt新建文件插入三行字符
退出之后再次git status如下图(这里我新建的是text.txt但是出现的是.test.txt.swp暂时不知道是什么原因 应该是自己vim编辑器那出了问题,不过不影响分析git的使用)
Untracked files:
(use “git add …” to include in what will be committed)
存在未追踪文件使用git add将文件包含将要被提交的地方**(git add将待提交文件保存/包含到暂存区)**
nothing added to commit 没有往要提交的地方放任何东西(就是没有放到暂存区的意思)
3.2、git add
根据提示来git add 再git status
Changes to be committed:
(use “git rm --cached …” to unstage)
new file: .test.txt.swp
(存在)需要提交的改变:new flie
可以看到此时没有像git add之前那样提示存在未追踪的文件
执行git add就放到了暂存区
3.3、git rm --cached
根据提示撤销git add看效果
git rm --cache 后再次提醒Untracked files 但是我们的**.test.txt.swp文件依然是存在的,rm只是在暂存区删除 但是工作区没有**
3.4、git commit
从暂存去提交到到本地库
直接git commit fileName 会进入到vim编辑器
Please enter the commit message for your changes. Lines starting
with ‘#’ will be ignored, and an empty message aborts the commit.
每次必须对提交输入提交信息commit message说明本次提交干了什么,否则提交会被拒绝
进入后(在一般模式)输入**:set nu回车显示行号
按 i 键进入编辑模式(底部出现–插入–)即可输入commit message
输入完成后按esc :wq**退出编辑器
退出后如下
[master (root-commit) a90a30d] my first commit.new file .test.txt.swp
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 .test.txt.swp
首次提交是root-commit
后面那串数字a90a30d可以看成是本次提交的版本号
再后边是刚才我们输入的commit message
增加了0行 删除了0行(实际上自己在test.txt里面增加了三行但是文件变成了 .test.txt.swp,正常的图如下)
执行git commit 后再看git status
nothing to commit, working tree clean
暂存区没有什么要提交的 工作区也没有什么修改或者新建
至此我们是新建test.txt去测试git 现在我们对已经存在的test.txt去做修改(加了一行)
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “git restore …” to discard changes in working directory)
modified: .test.txt.swp
no changes added to commit (use “git add” and/or “git commit -a”)
改变/修改没有staged/暂存 使用git add添加至暂存区(update区别于新建文件时的include)
git restore/checkout后面涉及到版本的前进后退时再仔细讲
检测到文件.test.txt.swp 的modified操作(区别于之前新建文件时候的new file 提示符)
没有添加到可被提交的修改(实际就是没有添加到暂存区)此时可有两种方法:
方法一 git add + git commit
方法二 git commit -a
若文件未追踪(Untracked)只能用git add 方法一去追踪并提交文件(如新建文件时提示use “git add” to track“”)
若文件已经追踪则以上两种方法都可
方法一可撤销(rm --cache) 方法二不可
这里采用方法一 add后status 看到modified变成了绿色
git reset HEAD命令 以后再说(unstage将其变成没有被暂存的状态)
提交信息更简单的方法
git commit -m " commit message" fileName
提交后
区别于第一次提交root commit这里是master+版本号
总结
git status
查看工作区、暂存区状态(untracked、已添加到暂存区、工作区clean)
git add fileName
将工作区文件的 " 新建 / 修改 " 添加到暂存区 git rm --cache(撤销add)
git commit -m “commit message” fileName
将暂存区内容提交到本地库
说明:之前vim text.txt出现文件变成swp估计是因为text是关键字?重新建了good.txt和bad.txt做测试,后缀名(.txt和.text都可)后续内容都以good为例(对good再修改再提交)