目录
1.远程仓库有3个分支而使用git branch -a命令后只能看见master分支
Git相关操作:
问题0:
问题描述:Git上进行代码版本回退
问题解决:
git操作命令:
-
执行
git pull origin frontend
命令:-
git pull origin frontend
:git pull
是用于从远程仓库拉取代码并合并到本地分支的命令 。origin
是远程仓库的默认别名,frontend
是要拉取的远程分支名。
-
-
Git 将本地全新项目代码与远程仓库连接
-
创建远程仓库,复制对应的URL地址
-
初始化本地仓库:git init——>创建了一个.git的隐藏文件夹
-
配置用户信息(首次配置)
-
git config --global user.email "your_email@example.com"
-
git config --global user.name "Your Name"
-
-
-
添加文件到暂存区:
git add
如若是想要添加所有文件:
git add .
只想要添加特定文件:
git add 特定文件名
-
提交文件到本地仓库:
命令:
git commit -m "提交文件说明"
-
关联远程仓库
git remote add origin <远程仓库的URL>
-
查看远程仓库存在的分支:
git branch -r 查看本地分支: git branch 查看本地和远程的所有分支: git branch -a
-
从远程仓库拉取分支信息:
git fetch origin
-
切换分支:
使用
git checkout
命令可以切换到已存在的本地分支切换到远程分支(创建并切换到本地跟踪分支)
当需要切换到远程分支时,通常需要创建一个本地跟踪分支并切换到该分支。可以使用以下命令:
git checkout -b feature-branch origin/feature-branch
-
拉取远程代码
git pull origin master(注意:master替换成主要的实际分支)
-
推送远程代码
git push -u origin master(注意:master替换成实际主分支名)
为什么使用-u呢?
答:将本地分支与远程分支建立追踪关系,后续推送可直接使用 git push
。
-
怎样才能知道是否链接上了远程仓库?
使用
git remote -v
命令查看当前本地仓库关联的远程仓库信息
Git问题集合与解决方案:
1.远程仓库有3个分支而使用git branch -a命令后只能看见master分支
问题截图:
问题分析:
原因是我在链接远程仓库URL地址时出现错误:
问题解决:
所以我应该先移除原来的远程仓库配置,重新构成链接
git remote remove origin
然后使用
git fetch origin ;获取远程仓库的分支信息
2.仓库所有权与安全目录错误
问题描述
fatal: detected dubious ownership in repository...
Git 2.35.2+ 版本增强了安全检查,当仓库所有者与当前用户不一致时会拒绝操作。
解决思路
将仓库路径添加到 Git 的安全目录列表,或调整文件所有权。
解决方案
# 1. 添加安全目录(推荐) git config --global --add safe.directory E:/py_project/.../project_frontend # 2. 更改文件所有权(需管理员权限) icacls "E:\path\to\repo" /setowner "YourUserName" /T # 3. 全局允许所有目录(不推荐,安全性降低) git config --global --add safe.directory '*'
3.行尾符(LF/CRLF)警告
问题描述
warning: in the working copy of 'file', LF will be replaced by CRLF...
Windows(CRLF)与 Linux/macOS(LF)行尾符不一致,Git 自动转换时发出警告。
解决思路
统一行尾符配置,避免不必要的转换。
解决方案
# 1. 配置 Git 不自动转换行尾符(推荐) git config core.autocrlf false # 2. 使用 .gitattributes 文件精确控制 echo "* text=auto" > .gitattributes echo "*.{js,css,html,vue,json} text eol=lf" >> .gitattributes # 3. 重置现有文件行尾符 git rm --cached -r . git reset --hard
4.推送被拒绝(non-fast-forward)
问题描述
! [rejected] master -> master (non-fast-forward)
远程分支有新提交,本地分支落后,Git 拒绝覆盖历史。
解决思路
先拉取远程更新,将本地提交整合到远程历史之后。
解决方案
# 1. 使用 rebase 保持线性提交历史(推荐) git pull --rebase origin master # 解决冲突(如有) git rebase --continue git push # 2. 使用 merge 生成合并提交 git pull origin master # 解决冲突(如有) git add . git commit -m "Merge remote changes" git push # 3. 强制推送(谨慎使用,会覆盖远程历史) git push -f origin master
5.分支未设置上游跟踪
问题描述
There is no tracking information for the current branch...
本地分支未关联到远程分支,Git 不确定推送目标。
解决思路
设置本地分支跟踪远程分支。
解决方案
# 1. 推送时设置上游分支 git push -u origin master # 2. 手动设置已存在分支的跟踪 git branch --set-upstream-to=origin/master master
6.预防措施
-
统一开发环境
-
使用 WSL(Windows Subsystem for Linux)避免 Windows 文件系统权限问题。
-
团队共享
.gitattributes
文件确保行尾符一致。
-
-
规范工作流程
-
开发前
git pull --rebase
同步最新代码。 -
使用功能分支(feature branches)避免直接提交到 master。
-
通过 PR(Pull Request)合并代码,确保代码审查。
-
-
常用检查命令
# 查看分支跟踪信息 git branch -vv # 查看提交历史差异 git log --oneline --graph --all # 查看远程分支状态 git remote show origin