git 问题记录
git 仓库大小写敏感
Section titled “git 仓库大小写敏感”-
首先确保本地
git
配置启用大小写敏感git
默认情况下对文件名大小写不敏感
Terminal window $ git config --global core.ignorecase false$ git config --local core.ignorecase false# 查询状态$ git config --get core.ignorecase$ git config --local --get core.ignorecase -
使用
git mv
命令进行重命名 (假设要将demo
改为Demo
)Terminal window # 先改成临时名称$ git mv filename demo.tmp# 再改成目标名称$ git mv demo.tmp Filename- 针对文件已经提交过(线上大小写同时存在),需要清除缓存再提交
Terminal window # 移除要删除的文件缓存$ git rm --cached filename
git 强制同步远程最新代码
Section titled “git 强制同步远程最新代码”场景:代码回滚导致本地与远程版本不一致,无法直接拉取远程仓库
# 检出远程所有分支最新数据$ git fetch --all$ git reset --hard origin/main # 丢弃本地
重新关联本地项目到远程仓库
Section titled “重新关联本地项目到远程仓库”场景:误删除了本地 git 项目的
.git
目录
$ git init$ git remote add origin <origin_url>$ git fetch$ git reset --hard origin/main # 丢弃本地$ git branch --set-upstream-to=origin/main main # 设置上游跟踪# 等价于$ git checkout -B main origin/main
关闭 git 证书验证
Section titled “关闭 git 证书验证”$ git config --global http.sslVerify "false"
代码回滚误操作如何恢复
Section titled “代码回滚误操作如何恢复”- 代码有进行
commit
操作
# 回滚上一个版本(删除工作空间的改动代码,撤销 commit 且撤销 add)$ git reset --hard HEAD^
# 如何恢复删除的代码$ git reflog$ git reset --hard [hash]
- 代码没有
commit
操作,可借助vscode timeline
功能
出现 git 提交冲突场景
Section titled “出现 git 提交冲突场景”# pull 和 push 同时存在$ git pull --rebase$ git rebase --continue
# 撤销 rebase 操作$ git rebase --abort
git merge 时避免或移除合并记录
Section titled “git merge 时避免或移除合并记录”# 场景:将 feature 分支的改动合并到 main 分支
# 1. 切换到 main 分支$ git checkout main
# 2. 将 feature 的提交变基到 main 分支上$ git rebase feature