GIT命令进阶
1 文件忽略进阶:忽略已加入版本控制器的文件
1.1 设置忽略排除
1.1.1 忽略文件夹
vim gitigorne
-------------------------------
test/* # 忽略test文件夹下的所有文件
*.class # 忽略以class结尾的所有文件
1.1.2 设置反向配出
!test/index.php # 排除忽略test文件夹下的index.php文件
!
表示要排除的意思,因此在.gitignore
文件夹中加入!
也可以理解为取反的意思
1.2 忽略已提交的文件
有的时候,可能一不小心把某一个原本应该忽略的目录提交到了版本控制器中,再使用 .gitignore
文件去忽略它的时候,发现无论如何都无法再次将其忽略,只好默默忍受;其实这是因为Git已经索引了该文件而导致.
1.2.1 忽略已存在的文件和文件夹
git rm --cached test2/index.php # 从换从中删除已提交的文件
git rm -r --cached test3/ # 删除缓存中的文件夹
接着我们需要将此修改提交,因为在忽略文件里已经忽略了该文件夹,所以在提交的时候需要注意加上-f
参数,表示强制添加,参考命令如下:
git add -f test3
注意:
- 反向忽略应用场景是该文件夹大部分文件需要被忽略,只需要保留少部分的文件
- 忽略已存在的文件夹最后一步需要使用
-f
进行强制添加,否则会提示操作失败
2. 比较分支差异: 展示连个分支的差异部分
主要有两个部分:1. 比较分支的提交记录 2. 比较分支的代码差异。
2.1 查看代码差异
查看差异分为两种,具体的代码文件差异,和提交记录的差异,代码的具体差异分为3中方式:
-
查看了那些文件被修改了
-
查看某个文件的代码差异
-
查看全部代码差异
2.1.1 查看文件差异
我们想知道当前的分支与另外一个分支,有哪几个文件不一样,这个时候可以使用如下参考命令:
git diff master dev --stat
2.2.1 显示文件具体修改
通过前面的文件修改差异,知道了哪些文件被修改了,现在想知道具体被修改了什么内容
git diff master develop 文件名
2.2.2 显示全部文件的修改
git diff master develop
2.2 查看提交记录差异
通常查看提交记录的不同有下面几种方法:
- 查看A分支有但B分支没有的记录
- 单纯的比较两个分支的差异
- 显示某个记录在某些分支上是否存在。
2.2.1 查看提交新纪录
查看develop分支中有的记录而在master分支中没有的记录
git log develop ^master
2.2.2 单纯比较差异
只查看两个分支记录有什么不一样
git log branch1.. branch2
2.2.3 查看各记录存在于那些分支上
git log --left-right develop...test
在图中,注意看我黄色框选的箭头符号,因为我们在命令中加入了-–left-right
所以左箭头 <
表示是 develop 的,右箭头 > 表示是 test 分支的。
- 基于当前的分支新建一个分支,并修改代码提交
- 使用
git diff 分支1 分支2
的方式进行代码差异比较 - 使用
git log 分支1..分支2
的方式进行提交记录的差异比较
3. reset命令:将仓库记录和恢复指定历史位置
git reset logdoe # 回退到指定的日志记录
git reset HEAD^ # 撤销最近一次提交
但是代码其实仍然是没有变化的,我们这里可以使用 git checkout
文件名来撤销文件修改,撤销修改后再通过 git status
去确认当前状态,参考命令如下
git checkout index.php && git status
4. 删除过期分支
- 本地不存在,远程存在该分支,但不需要了
- 远程不存在,本地存在该分支,也不需要了
# 清理远程分支
git branch -a # 查看所有分支
git push origin --delete dev # dev: 远程分支的名称
# 清理本地分支
git checkout -b test #创建新分支
git push --set-upstream origin test # 第一次将本地分支推送到远程服务器
git remote show origin # 查看远程仓库信息
# 会拉去远程的分支信息与本地的信息做对于,发现远程分支已经删除,会对本地分支做标注
git remote prune origin
git branch -vv # 查看关联失效的分支 [...: gone] 表示当前分支远程已经标记删除
git branch -d test # 删除分支
5. 配置多个远端仓库
#查看当前远程地址
git remote -v
# 推送到远程仓库
git remote add github https://github.com/wang7621422811/cpstats.git
# 修改默认推送地址 -u
git push -u github
# 从制定仓库拉去代码
git pull github
# 删除远程地址
git remote remove github
# 同时推送多个地址
git remote set-url --add origin https://....仓库地址