首页
关于小站
朋友
壁纸
留言
时光之书
笔顺字帖
LayUI手册
Search
1
【PHP】PHPoffice/PHPSpreadsheet读取和写入Excel
1,785 阅读
2
【Layui】控制页面元素展示隐藏
1,602 阅读
3
【Git】No tracked branch configured for branch master or the branch doesn't exist.
1,560 阅读
4
【PHP】PHP实现JWT生成和验证
1,482 阅读
5
【composer】composer常用命令
1,356 阅读
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
webman
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
Docker
Elasticsearch
登录
Search
标签搜索
PHP
函数
方法
类
MySQL
ThinkPHP
JavaScript
OOP
Layui
Web
Server
Docker
PHPSpreadsheet
PHPoffice
Array
设计模式
Nginx
Git
排序算法
基础
小破孩
累计撰写
256
篇文章
累计收到
13
条评论
首页
栏目
默认分类
PHP
ThinkPHP
Laravel
面向对象
设计模式
算法
基础
网络安全
webman
Web
HTML
CSS
JavaScript
jQuery
Layui
VUE
uni-app
Database
MySQL
Redis
RabbitMQ
Nginx
Git
Linux
Soft Ware
Windows
网赚
Go
Docker
Elasticsearch
页面
关于小站
朋友
壁纸
留言
时光之书
笔顺字帖
LayUI手册
搜索到
6
篇与
的结果
2022-12-09
【Git】error: the requested upstream branch 'origin/master' does not exist
问题:1、本地初始化了git仓库,放了一些文件进去并进行了add操作和commit提交操作;2、github创建了git仓库并建立了README,.gitignore等文件;3、本地仓库添加了github上的git仓库作为远程仓库,起名origin;git remote add origin 远程仓库地址4、本地仓库也远程仓库关联git branch --set-upstream-to=origin/master master解决问题:如果直接pull,就会出现一下错误,refusing to merge unrelated histories 正确姿势:git pull origin master --allow-unrelated-histories 然后本地远程仓库关联git branch --set-upstream-to=origin/master master 总结一下:本地仓库有文件,远程仓库也有文件,正确姿势:1. 关联远程仓库(origin 为约定别名)git remote add origin https://gitee.com/honeyrh/8688web.git2. 拉取远程分支并允许合并无关历史(根据远程实际分支名调整,如 main)git pull origin master --allow-unrelated-histories # 若远程是 main:git pull origin main --allow-unrelated-histories3. (可选,步骤2若用 -u 可省略)关联本地分支与远程分支git branch --set-upstream-to=origin/master master # 远程是 main 则改为 origin/main4. 首次推送时带 -u 确认关联,后续可直接 git pushgit push -u origin master # 远程是 main 则改为 origin/main
2022年12月09日
353 阅读
0 评论
0 点赞
2022-12-08
【Git】No tracked branch configured for branch master or the branch doesn't exist.
错误场景回顾错误 No tracked branch configured for branch master or the branch doesn't exist 的核心原因是:本地 master 分支未配置跟踪的远程分支(即未关联 origin/master);或远程仓库中根本没有 master 分支(例如现代仓库默认分支是 main)。第一步:先确认远程分支名称# 查看远程仓库的所有分支(确定是否有 master,还是 main 等其他名称) git ls-remote --heads origin假设输出显示远程有 main 分支(最常见):ref: refs/heads/main ...第二步:根据远程分支名称关联并拉取情况1:远程有 master 分支# 关联本地 master 到远程 origin/master git branch --set-upstream-to=origin/master master # 拉取(若本地与远程历史无关,才需要加 --allow-unrelated-histories) git pull origin master # 普通情况 # 或(历史无关时) git pull origin master --allow-unrelated-histories情况2:远程是 main 分支(推荐,符合现代规范)# 关联本地 master 到远程 origin/main(如果想保留本地 master 分支名) git branch --set-upstream-to=origin/main master # 或(更推荐)将本地分支名改为 main,与远程保持一致 git branch -m master main # 重命名本地分支为 main git branch --set-upstream-to=origin/main main # 关联远程 main # 拉取(历史无关时加 --allow-unrelated-histories) git pull origin main --allow-unrelated-histories情况3:远程无对应分支(全新仓库)若远程是刚创建的空仓库(无任何分支),直接推送本地分支并关联:# 推送本地 master 到远程,同时创建并关联远程 master 分支 git push -u origin master总结以下关键点:需先确认远程分支的实际名称(是 master 还是 main);--allow-unrelated-histories 仅在历史无关时使用,并非所有场景都需要;现代仓库默认分支多为 main,直接用 origin/master 可能导致命令失败。
2022年12月08日
1,560 阅读
0 评论
0 点赞
2022-06-23
【Git】pull遇到错误:error: Your local changes to the following files would be overwritten by merge:本地有修改时,如何合并远程更新?(保留/不保留本地修改两种方案)
本地有修改时,如何合并远程更新?(保留/不保留本地修改两种方案)在日常开发中,经常会遇到这样的场景:本地代码做了修改,但还没提交,此时远程仓库已有其他人推送的更新。直接执行 git pull 可能会报错(因本地修改与远程更新冲突),该如何处理?一、想要保留本地修改(推荐)通过「暂存本地修改→拉取远程更新→恢复本地修改」三步操作,既能同步远程最新代码,又能保留本地未提交的改动。具体步骤:暂存本地修改 用 git stash 将本地所有未提交的修改(包括工作区和暂存区)暂存到「Git 栈」中,此时工作区会恢复到上次提交的干净状态:git stash✅ 效果:本地修改被临时存储,工作区与远程仓库当前状态一致,为后续拉取远程代码扫清障碍。拉取远程更新 此时可以安全地拉取远程仓库的最新代码(以 origin 远程的 master 分支为例):git pull origin master✅ 效果:远程最新代码被合并到本地当前分支,本地代码与远程同步。恢复本地修改并处理冲突 用 git stash pop 将之前暂存的本地修改恢复到工作区:git stash pop⚠️ 注意:如果本地修改与远程更新存在冲突(同一文件同一位置有不同修改),Git 会提示 Auto-merging <文件名> 并标记冲突位置,此时需要手动处理:打开冲突文件,找到类似以下标记的内容:<<<<<<< Updated upstream # 远程更新的内容 ... ======= # 分隔线 ... >>>>>>> Stashed changes # 本地暂存的修改编辑文件,保留需要的内容(删除冲突标记 <<<<<<<、=======、>>>>>>>);处理完冲突后,执行 git add <冲突文件> 标记为已解决,再正常提交即可。补充:stash 相关实用命令查看暂存列表(若多次 stash,可区分不同暂存):git stash list # 输出格式:stash@{0}: WIP on <分支名>: <提交信息>恢复指定暂存(如恢复第 1 条暂存,索引从 0 开始):git stash apply stash@{0} # apply 保留暂存记录,pop 会删除暂存记录删除暂存记录(若无需恢复):git stash drop stash@{0} # 删除指定暂存 git stash clear # 清空所有暂存二、不想要保留本地修改(谨慎使用)若本地修改无价值,可直接丢弃本地所有未提交的改动,用远程代码覆盖本地。具体步骤:强制恢复本地到最近一次提交状态 用 git reset --hard 丢弃本地所有未提交的修改(包括工作区和暂存区),注意:此操作不可恢复,需确保本地修改确实无用:git reset --hard拉取远程更新覆盖本地 拉取远程最新代码,此时因本地已无修改,可直接覆盖:git pull origin master三、总结与最佳实践保留本地修改:优先用 git stash → git pull → git stash pop,安全且能处理冲突,适合大多数开发场景。不保留本地修改:仅在确认本地修改无价值时使用 git reset --hard → git pull,务必谨慎(避免误删重要代码)。协作建议:日常开发中,建议频繁提交本地修改(小步提交),减少 stash 使用;拉取远程代码前,先确认本地修改是否已保存,避免冲突。
2022年06月23日
406 阅读
0 评论
0 点赞
2022-06-23
【Git】Git 服务器怎么避免反复密码输入
Git 记住密码:一键配置永久保存凭证(附安全说明)在使用 Git 操作远程仓库(如 GitHub、GitLab 等)时,每次执行 git pull、git push 都需要输入用户名和密码,非常繁琐。通过配置 Git 凭证助手,可以实现一次输入、永久保存,彻底解决重复输入的问题。一、核心命令:配置凭证存储# 全局配置 Git 使用 "store" 凭证助手(保存密码到本地文件) git config --global credential.helper store命令作用:credential.helper store 是 Git 的一种凭证存储方式,会将用户名和密码以明文形式保存在本地文件中;--global 表示对当前用户的所有 Git 仓库生效(局部配置可去掉 --global,仅对当前仓库有效)。二、使用步骤(只需一次)执行配置命令 在 Git Bash 中输入上述命令,配置凭证存储方式:git config --global credential.helper store执行一次需要认证的 Git 操作 比如拉取(git pull)或推送(git push)远程仓库,此时会提示输入用户名和密码:git pull origin main # 示例:拉取远程 main 分支按照提示输入正确的用户名和密码后,操作会正常执行。后续操作无需再输入密码 完成上述步骤后,Git 会自动保存凭证,下次执行 git pull、git push 等操作时,会直接使用保存的用户名和密码,无需手动输入。三、凭证保存位置(明文存储)配置后,用户名和密码会保存在以下文件中(可手动查看或编辑):Windows 系统:C:\Users\你的用户名\.git-credentialsLinux/Mac 系统:~/.git-credentials(~ 表示用户主目录,如 /home/你的用户名/)文件内容格式类似:https://用户名:密码@远程仓库域名 # 示例:https://xiaohong:123456@github.com四、安全性说明(重要!)明文存储风险:store 方式会将密码以明文形式保存在本地文件中,若电脑被他人访问,可能导致密码泄露。不建议在公共电脑、共享设备上使用。适用场景:个人专用电脑,且对凭证安全性要求不高的场景(如私人仓库、内部测试仓库)。五、如何清除已保存的凭证?如果需要更换密码或删除保存的凭证,直接删除上述 .git-credentials 文件即可:Windows:找到 C:\Users\你的用户名\.git-credentials 并删除;Linux/Mac:执行命令 rm ~/.git-credentials。删除后,下次执行 Git 操作时会重新提示输入用户名和密码。六、更安全的替代方案(推荐)如果担心明文存储的安全问题,建议使用加密存储的凭证助手,不同系统有默认推荐:Windows:使用 git config --global credential.helper manager-core(依赖 Git Credential Manager,自动加密存储到系统凭据管理器);Mac:使用 git config --global credential.helper osxkeychain(密码会加密存储到系统钥匙串);Linux:使用 git config --global credential.helper libsecret(依赖 libsecret 库,加密存储到系统密钥环)。这些方式会对凭证进行加密存储,安全性远高于 store 方式,推荐在正式环境中使用。总结git config --global credential.helper store 是一种简单高效的 Git 凭证保存方案,适合个人专用设备快速解决重复输入密码的问题,但需注意其明文存储的安全性。若对安全要求较高,建议使用系统自带的加密凭证助手。
2022年06月23日
272 阅读
0 评论
1 点赞
2022-06-21
【Git】Git 文件删除、恢复及高频面试考点整理
Git 文件删除、恢复及高频面试考点整理本文聚焦 Git 中文件删除、恢复的核心命令,明确不同场景下的用法差异,并提炼面试高频考点,便于理解和记忆。一、Git 删除文件:3种核心场景1. 彻底删除(工作区+暂存区+仓库)适用场景:需要从 Git 版本控制中永久移除文件(本地和仓库都不再保留)。 步骤:# 1. 从工作区(本地物理文件)和暂存区同时删除文件 git rm <文件名> # 例:git rm test.log # 2. 提交删除操作到仓库,完成版本记录更新 git commit -m "删除无用文件 test.log"关键:git rm 会同时记录“删除动作”,提交后仓库中该文件的历史记录仍存在,但最新版本中已移除。2. 仅从暂存区删除(本地保留文件)适用场景:不小心将不需要跟踪的文件(如日志、缓存、IDE 配置)添加到暂存区(git add 后),想取消跟踪但本地保留文件。 命令:git rm --cached <文件名> # 例:git rm --cached .idea/关键:本地工作区的文件不会被删除,仅从 Git 暂存区和跟踪列表中移除;后续需在 .gitignore 中添加该文件/目录,避免再次被 git add 跟踪。3. 本地物理删除(不影响 Git 跟踪)命令:直接用系统命令删除本地文件(如 Linux rm <文件>、Windows del <文件>)。 区别:仅删除本地物理文件,未将“删除动作”告知 Git(暂存区和仓库仍记录该文件);需后续执行 git rm <文件> + git commit,才能将删除动作同步到仓库。二、误删文件恢复:工作区文件误删补救适用场景本地工作区不小心删除了已被 Git 跟踪的文件(即该文件之前已提交到仓库/暂存区),想恢复文件。命令(2种方式)# 方式1:Git 老版本兼容(经典写法) git checkout -- <文件名> # 例:git checkout -- app/Controller/Test.php # 方式2:Git 2.23+ 推荐(语义更清晰) git restore <文件名>关键注意事项:仅能恢复“已被 Git 跟踪”的文件(未 git add 过的未跟踪文件,误删后无法通过 Git 恢复);命令会用暂存区/仓库中的最新版本覆盖工作区,未提交的改动会丢失。三、核心命令对比(面试高频)1. git rm vs rm(删除文件)命令作用范围是否记录 Git 操作适用场景git rm工作区 + 暂存区(可选 --cached 仅暂存区)是(记录删除动作)需同步删除动作到仓库rm(系统)仅本地工作区(物理文件)否(无 Git 记录)仅临时删除本地文件,不影响 Git2. git add vs git rm(记录操作)命令能记录的动作不能记录的动作git add文件新增、文件修改文件删除(需 git rm)git rm文件删除文件新增、修改(需 git add)四、补充实用命令:git commit --amend(重写最近提交)作用修改最近一次的 commit message(提交说明),或补充少量未提交的文件到最近一次提交(避免多一条冗余提交)。用法# 1. 仅修改最近一次的 commit message git commit --amend # 执行后进入编辑器,修改后保存退出 # 2. 补充文件到最近一次提交(先 add 未提交的文件) git add 遗漏的文件.txt git commit --amend # 保持原 message 或修改后提交面试注意事项:仅适用于本地未推送(push) 的提交(已推送到远程仓库的提交,禁止使用 --amend,会修改 Git 历史,导致协作冲突)。五、面试高频考点提炼(必背)Q:git rm <文件> 和 rm <文件> 的核心区别是什么? A:git rm 会同时删除工作区+暂存区文件,并记录删除动作,需 commit 同步到仓库;rm 仅删除本地物理文件,不记录 Git 操作,仓库仍保留该文件。Q:如何仅从 Git 跟踪中移除文件,本地工作区保留该文件? A:使用 git rm --cached <文件>,后续需在 .gitignore 中添加该文件,避免再次被跟踪。Q:工作区不小心误删了已跟踪的文件,如何恢复? A:用 git checkout -- <文件> 或 Git 2.23+ 的 git restore <文件>,用暂存区/仓库的最新版本覆盖工作区。Q:git commit --amend 的作用和使用限制是什么? A:作用是重写最近一次的 commit message 或补充文件到最近一次提交;限制是仅能用于本地未推送的提交,已推送的提交不可用(会修改历史)。Q:git add 能记录文件删除的动作吗? A:不能。git add 仅记录文件新增和修改,文件删除需通过 git rm 记录。
2022年06月21日
328 阅读
0 评论
0 点赞
2022-06-21
【Git】Git基本命令
以下是优化并完善后的 Git 常用命令笔记,补充了细节说明、操作场景及扩展用法,结构更清晰,实用性更强:一、初始配置(首次使用 Git 必做)# 配置全局用户名(所有仓库生效) git config --global user.name "xiaopohai" # 配置全局邮箱(与 Git 服务器注册邮箱一致) git config --global user.email "3584685883@qq.com" # 查看当前配置 git config --list 若需为单个仓库单独配置(覆盖全局),进入仓库目录后去掉 --global 即可。二、版本库操作1. 创建本地版本库# 进入目标目录(Windows 示例) cd E:/project # 创建文件夹(可选,也可直接在已有目录操作) mkdir test # 进入文件夹 cd test # 初始化 Git 仓库(生成 .git 隐藏目录,存储版本信息) git init 注意:.git 目录是版本控制核心,不要手动删除或修改。2. 从远程仓库克隆(初始化已有项目)# 克隆远程仓库到本地(会自动创建与仓库同名的文件夹) git clone <远程仓库地址> # 示例:克隆 GitHub 仓库 git clone https://gitee.com/honeyrh/8688web.git 三、文件操作(工作区 → 暂存区 → 版本库)1. 查看文件状态# 详细显示工作区/暂存区文件状态(新增、修改、删除等) git status # 简化输出(短格式,适合快速查看) git status -s 2. 添加文件到暂存区# 添加当前目录所有文件(包括新增、修改,不包括删除) git add . # 添加指定文件(支持通配符,如 *.php) git add 文件名 # 添加所有变化(包括新增、修改、删除的文件) git add -A # 或 git add --all 3. 提交到版本库# 提交暂存区文件到版本库,-m 后跟提交说明(必填,清晰描述改动) git commit -m "初始化项目:添加首页、配置文件" # 若已跟踪的文件修改后,可跳过暂存区直接提交(不推荐新手使用) git commit -am "修改登录逻辑" 4. 删除文件# 从版本库和工作区同时删除文件(彻底删除) git rm 文件名 # 仅从版本库删除(保留工作区文件,不再跟踪) git rm --cached 文件名 # 提交删除操作 git commit -m "删除无用的测试文件" 四、远程仓库交互(推送/拉取)1. 关联远程仓库# 为本地仓库添加远程地址(别名建议用 origin,默认约定) git remote add 别名 <远程仓库地址> # 示例:关联名为 origin 的远程仓库 git remote add origin https://gitee.com/honeyrh/8688web.git 2. 查看/修改远程仓库# 查看已关联的远程仓库(别名和地址) git remote -v # 修改远程仓库地址 git remote set-url 别名 <新地址> # 删除远程仓库关联 git remote remove 别名 3. 推送本地代码到远程# 推送指定分支到远程(首次推送建议关联分支) git push -u 远程别名 本地分支名 # 示例:推送 master 分支到 origin 远程(-u 关联后,后续可直接 git push) git push -u origin master # 推送其他分支(如 dev 分支) git push origin dev 4. 拉取远程代码到本地# 拉取远程指定分支并合并到当前本地分支 git pull 远程别名 远程分支名 # 示例:拉取 origin 远程的 dev 分支 git pull origin dev # 拉取时用变基(rebase)代替合并(减少冗余提交,推荐协作场景) git pull --rebase origin dev 解决特殊合并问题: 当本地与远程仓库无共同历史(如首次合并),拉取时可能报错,需允许无关历史合并:git pull origin master --allow-unrelated-histories 五、版本控制(查看日志/切换版本)1. 查看提交日志# 查看完整提交日志(按时间倒序,最新的在最前) git log # 简化日志(只显示一行,包含提交哈希和说明) git log --pretty=oneline # 查看最近 N 条日志 git log -n 3 # 显示分支合并图(直观查看分支关系) git log --graph --pretty=oneline 2. 查看所有操作记录(包括已删除的提交)git reflog 用于:切换到旧版本后,想再切回新版本(通过此命令获取新版本的哈希值)。3. 切换版本(回退/前进)# 回退到上一个版本(HEAD 是当前版本,^^ 表示上上个,~3 表示前3个) git reset --hard HEAD^ # 等价于 git reset --hard HEAD~1 # 回退到指定版本(通过 git log 或 git reflog 获取哈希值) git reset --hard <提交哈希> # 示例:git reset --hard a1b2c3d --hard:强制覆盖工作区和暂存区,谨慎使用(未提交的改动会丢失)。六、分支管理1. 分支基础操作# 查看所有分支(* 表示当前分支) git branch # 创建新分支 git branch 分支名 # 切换到指定分支 git checkout 分支名 # 创建并立即切换到新分支(推荐,一步到位) git checkout -b 分支名 # 示例:创建并切换到 feature/pay 分支 git checkout -b feature/pay 2. 分支合并与删除# 切换到目标分支(如合并到 master,先切到 master) git checkout master # 合并指定分支到当前分支 git merge 分支名 # 示例:合并 feature/pay 到 master git merge feature/pay # 删除已合并的分支(安全删除) git branch -d 分支名 # 强制删除未合并的分支(谨慎,可能丢失代码) git branch -D 分支名 解决合并冲突: 合并时若出现冲突(同一文件同一位置修改),Git 会提示冲突文件,需:打开冲突文件,找到 <<<<<<< HEAD(当前分支内容)、=======(待合并分支内容)、>>>>>>> 分支名 标记;手动编辑保留正确内容,删除标记;执行 git add 冲突文件 和 git commit -m "解决合并冲突" 完成合并。七、SSH 密钥配置(免密码推送拉取)# 生成 SSH 密钥(-t 指定加密类型,-C 关联邮箱) ssh-keygen -t rsa -C "3584685883@qq.com" 执行后一路回车(默认路径和空密码即可),生成的密钥在:Linux/Mac:~/.ssh/id_rsa(私钥,保密)和 id_rsa.pub(公钥);Windows:C:\Users\用户名\.ssh\id_rsa.pub。配置步骤:打开 id_rsa.pub,复制全部内容;登录 Git 服务器(如 Gitea/GitHub),进入「个人设置 → SSH 密钥」,添加复制的公钥;之后可用 SSH 地址(如 git@https://gitee.com/honeyrh/8688web.git)操作远程仓库,无需输入密码。八、其他实用命令1. 清理未跟踪文件/目录(谨慎使用)# 预览要删除的未跟踪文件/目录(安全,先看再删) git clean -nfd # 强制删除未跟踪文件(-f)和目录(-d) git clean -fd 用途:删除工作区中未被 Git 跟踪的临时文件、编译产物等,避免提交无关文件。2. 暂存工作区改动(临时切换分支时用)# 暂存当前工作区所有未提交的改动 git stash # 查看暂存列表 git stash list # 恢复最近一次暂存的改动(并删除暂存记录) git stash pop # 恢复指定暂存(通过 git stash list 查看索引,如 stash@{0}) git stash apply stash@{0} 3. 丢弃工作区修改# 丢弃指定文件的工作区修改(未 add 到暂存区的改动) git checkout -- 文件名 # Git 2.23+ 推荐用 restore(更清晰) git restore 文件名 通过以上整理,覆盖了 Git 日常使用的核心场景,命令更规范,补充了注意事项和扩展用法,便于新手快速上手和日常参考。
2022年06月21日
317 阅读
0 评论
0 点赞