【注:本地我直接用的git可视化工具sourceTree,记录笔记方便在服务器操作】
【 鱼C-小甲鱼的同步教学视频,点击此处进行跳转】
【如转载此文章,请标明出处 https://blog.csdn.net/weixin_43239068/article/details/107533322】
一、Git理论
- 查看git信息
git config --list
2. git记录的是版本变动,每个版本都是独立保存的
3. git是维护三棵树来实现版本控制的
1)Working(Directory):存放工作目录的地方
2)Stage(Index):临时存放的改动,即将存放到仓库的列表信息,是一个个的文件
3)Repository(HEAD):最终存放版本数据的位置,HEAD是最新版本的指向数据
3. Git的工作流程
1)在工作目录中添加/修改文件
2)讲需要进行版本管理的文件放入暂存区域
3)将暂存区域的文件提交到Git仓库
4. Git管理文件的三种状态
1)已修改(modified)
2)已暂存(staged)
3)以体检(committed)
二、命令
1.提交缓存到Git仓库
1.初始化一个空的仓库,用来跟踪管理版本迭代的,追踪这个文件夹里的文件来管理git项目的
git init
2.创建一个XX.md文件,让开发人员看到你的文档
3.讲需要进行版本管理的文件放入暂存区域
git add XX.md
4.将暂存区域的文件提交到git仓库
git commit -m "add a readme file" //“”中间的信息是提交此次缓存的备注,方便应用
2.查看工作状态和历史提交
1.查看状态(可查看到所处分支,未暂存以提交的更改,未跟踪的文件,有没有需要提交的更改)
git status //如果出现下图的红色文件 代表此文件没有加入到缓存去 可用 git add XX.js 加入缓存区,加入后就会变成绿色了
2.最后提交的代码恢复回暂存区域
git reset HEAD <file> //不写<file>将回滚最后一次提交的所有文件,如果指定了<file>将只回滚选中的文件
3.删除暂存的更改(未commit前)
git checkout <file> // //不写<file>将回滚所有更改文件,如果指定了<file>将只回滚选中的更改文件
4.查看历史提交记录
git log //进入查看log后 可用 q 退出
3.回滚代码
1.回滚最后一次提交的记录到暂存区域(commit后的代码)
git reset HEAD~ //~后面可加数字,如:(git reset HEAD~3),代表回滚最近3次的提交。本次命令写全是(git reset --mixed HEAD~),执行后 再用git log也看不到回滚的提交记录了
2.回滚到指定位置,之前的提交会全部回滚到暂存区域
git reset bc124d4a1ca // 'bc124d4a1ca'是git log 后显示的黄色提交序号,不需要写全,但是要保证写的快照ID是唯一,如果提交记录多避免重复,建议写全,
3.往前滚(在第二步的时候我回滚到了bc124d4a1ca的位置,之前的两次提交都没有了,但是只要我记住之前的快照ID,我依旧可以往前滚)
git reset --hard 3ac08fd9985e75 //‘3ac08fd9985e75’为上图最后的一次提交
4.diff 对比找不同
1.比较暂存区域与工作目录不同的地方,也就是所更改的地方
git diff
2.比较两个历史快照
git diff 快照1ID 快照2ID
3.比较当前工作目录和Git仓库中的快照(还没有git add前的)
1) git diff 要对比的快照ID //因为当前工作目录的更改还没有提交,所以没有快照ID,故只需要写要对比的快照ID就可
2) git diff HEAD //比较当前工作目录和最新提交的快照
4.比较暂存目录和Git仓库中的快照(git add后的)
1) git diff --cached //比较的是暂存区域和最新提交的快照
2) git diff --cached 要对比的快照ID //暂存目前和指定的Git仓库中的快照的对比
5.修改最后一次提交
1.修改最后那次提交的备注信息
git commit --amend //输入后会进入到新的页面,输入i进入到修改,更改最上层的提交备注,修改后输入 :wq 保存并退出,并且不会多log日志。因说明是中文导致乱码,可:q!强退出后 使用 git commit --amend -m '说明' 进行更改
6.删除文件
1.如果不小心删除文件 可-> git status
查看删除的是哪个文件 -> git checkout -- 文件名
就可以恢复了,[注意: – 左右各有一个空格]
2.git rm fileName //只是删除工作目录和暂存区域的文件
-> git reset --soft HEAD~
因为删除后使用git status 依旧可以查看到被删除的信息,所以用–soft修改log的指针,把提交删除的记录去掉,但不会移动任何文件
3.git rm -f fileName //强制删除,如果暂存区和当前目录都有此文件,将会两个文件一起删除
4.git rm --cached 文件名 //删除暂存区域的文件
7.重命名文件
1.git mv fileName newFileName
8.分支
1.创建分支 git branch 分支名
2.切换分支
1) git checkout 分支名
2) git checkout -b 分支名 //创建并切换到此分支
3.所有分支,包括远程分支git branch -a
4.图形化显示提交记录
git log --decorate --oneline --graph --all //‘oneline’精简化的显示 ‘graph’图形化显示 ‘all’显示所有的分支,decorate后的顺序可随意
5.合并分支
1) git merge 分支名 //把指定分支合并到当前分支
6.删除分支 git branch -d 分支名 //-d 精简分支名,--d 全名