git操作命令复杂的一直也没搞明白,仅仅会简单的一些,在工作中也遇到过不会使用的情况,给自己挖了不少坑,比如合并分支丢代码等等……这次趁着没啥事情,赶紧学习一下……
工作区 -----> git add -------> 暂存区 --------> git commit ---------> 本地库 -----> git push -----> 远程代码仓库
1. 设置签名:
(1)仅在当前本地库/项目范围内有效: 需要姓名和邮箱~其他项目失效
git config user.name zhoufangbing
git config user.email 19778467950@qq.com
(2)登陆当前操作系统的范围内有效,全局的~一般工作的时候电脑配置这个全局的,增加--global全局变量
git config --global user.name zhoufangbing
git config --global user.email 19778467950@qq.com
查看设置的结果~执行下面命令可查看name和email
git config user.name
git config user.email
2. 查看状态(未追踪的文件是红色的,暂存区黄色)
git status
3. 代码放在暂存区
// 全部添加到暂存区
git add .
// 制定某个文件添加到暂存区
git add 文件名
备注:git add 文件名 的文件名就是 git status显示出来的文件名就行,不用考虑绝对路径或者相对路径。比如:git status 后,music文件夹不在暂存区
把 ../../Music/ 复制一下,执行
git add ../../Music/
可以看到Music文件夹被添加到暂存区
4. 从暂存区撤销
git add 添加之后,想撤销,使用命令
git rm --cached -r 文件名
例子:git rm --cached -r ../../Music/ 然后git status一下
已经从暂存区撤销
5. 提交并注释
全部提交到本地库
git commit -m '注释'
如果要指定提交某个文件到本地库
git commit -m '注释' 文件名
6. 查看提交信息
git log
以其中一个为例
// commit 后面是版本号,哈希值
commit b7e54bdb2a963a9106d6a18679e0baab4564057c
// user.email
Author: zhoufangbing <zhou@daojia.com>
// 日期
Date: Fri Jul 5 10:02:53 2019 +0800
// 注释
feat: 自测改bug
7. git log 的提交记录,每条记录只显示一行
// oneline 只显示一行
git log --pretty=oneline
显示如下: 显示哈希值和注释
8. 版本回退查看指针移动次数
git reflog
HEAD@{num} 其中num就是从现在版本回退到某一个版本回退次数~哈希值缩短了~HEAD是指针的名字~
9. 版本的前进和后退
索引值就是git reflog的那个黄色的哈希值,想回到哪个版本,就拿哪个的索引值~所以版本更新前可以先git reflog 拿到索引值~
git reset --hard 索引值
执行效果如下:
HEAD is now at e416efa feat: confirm组件 ( 表示HEAD这个指针已经在 'confirm组件' 的这个版本了~)
版本的前进和后退一样,不管前进还是后退,拿到想要到的哈希值(索引值)就行。
10 比较文件 diff :其实这个在vscode软件里也可以实现~
(1)工作区和暂存区比较
git diff 文件名
eg: git status 之后 git diff 某一个文件
加号表示增加,减号表示删除~
(2)工作区和历史记录比较
git diff 某一个历史版本 文件名
不带文件名,则所有改动的文件进行比较