基本操作
状态查看
git status
查看工作区、 暂存区状态
添加
git add [file name]
将工作区的“新建/修改” 添加到暂存区
提交
git commit -m "commit message" [file name]
将暂存区的内容提交到本地库
查看历史记录
git log
显示最完整
Sun@DESKTOP-32G24QA MINGW64 /d/GitWorkspace/Wechat (master)
$ git log
commit 438e4ed93695b5b0083d0747b75d1477443c99ba (HEAD -> master)
Author: sunyan_pro <syan_2019@163.com>
Date: Tue Apr 21 11:24:43 2020 +0800
My second commit, modify good.txt
commit 63aa6a363d66e7f4b301f6fc621bd31db1f8e41b
Author: sunyan_pro <syan_2019@163.com>
Date: Tue Apr 21 11:16:08 2020 +0800
My first commit new file good .txt
多屏显示控制方式:空格向下翻页,b 向上翻页,q 退出
git log --pretty=oneline
$ git log --pretty=oneline
25ff714b65f1d9e941dd930021b25af4ddaabcf8 (HEAD -> master) insert eee
131c88022cc377d9d61ed4341b2ae23dd648656c insert bbb
3f8d7742d160c1cf345a39747d717ba254fe82af insert bbb
248f7163d27e1b61ecaf9d4fad72af866fd7f12a for test history
git log --oneline
$ git log --oneline
25ff714 (HEAD -> master) insert eee
131c880 insert bbb
3f8d774 insert bbb
248f716 for test history
438e4ed My second commit, modify good.txt
63aa6a3 My first commit new file good .txt
git reflog
$ git reflog
25ff714 (HEAD -> master) HEAD@{0}: commit: insert eee
131c880 HEAD@{1}: commit: insert bbb
3f8d774 HEAD@{2}: commit: insert bbb
248f716 HEAD@{3}: commit: for test history
438e4ed HEAD@{4}: commit: My second commit, modify good.txt
63aa6a3 HEAD@{5}: commit (initial): My first commit new file good .txt
HEAD@{移动到当前版本需要多少步}
前进后退
基于索引值操作[推荐]
git reset --hard [局部索引值]
$ git reset --hard 438e4ed
HEAD is now at 438e4ed My second commit, modify good.txt
使用^符号: 只能后退
git reset --hard HEAD^ 注: 一个^表示后退一步, n 个表示后退 n 步
使用~符号: 只能后退
git reset --hard HEAD~n 注: 表示后退 n 步
reset 命令的三个参数对比(了解)
--soft 参数,仅仅在本地库移动 HEAD 指针
--mixed 参数,在本地库移动 HEAD 指针,重置暂存区
--hard 参数,在本地库移动 HEAD 指针,重置暂存区,重置工作区
删除文件并找回
前提: 删除前, 文件存在时的状态提交到了本地库。
操作: git reset --hard [指针位置]
删除操作已经提交到本地库: 指针位置指向历史记录
删除操作尚未提交到本地库: 指针位置使用 HEAD
比较文件
git diff [文件名]
将工作区中的文件和暂存区进行比较
git diff [本地库中历史版本] [文件名]
将工作区中的文件和本地库历史记录比较
不带文件名比较多个文件
分支管理
什么是分支?
- 在版本控制过程中, 使用多条线同时推进多个任务
分支的好处?
-
同时并行推进多个功能开发, 提高开发效率
-
各个分支在开发过程中, 如果某一个分支开发失败, 不会对其他分支有任何影响。 失败的分支删除重新开始即可。
分支操作
-
创建分支
git branch [分支名]
-
查看分支
git branch -v
-
切换分支
git checkout [分支名]
-
合并分支
第一步: 切换到接受修改的分支(被合并, 增加新内容) 上
git checkout [被合并分支名]
第二步: 执行 merge 命令
git merge [有新内容分支名]
-
解决冲突
冲突的表现
冲突的解决
第一步: 编辑文件, 删除特殊符号
第二步: 把文件修改到满意的程度, 保存退出
第三步: git add [文件名]
第四步: git commit -m "日志信息"
注意: 此时 commit 一定不能带具体文件名