前后端协同开发时,使用Git所遇见的相关问题(未完待更新)

目录

Git相关操作:

问题0:

git操作命令:

Git问题集合与解决方案:

1.远程仓库有3个分支而使用git branch -a命令后只能看见master分支

问题截图:

问题分析:

问题解决:

2.仓库所有权与安全目录错误

问题描述

解决思路

解决方案

3.行尾符(LF/CRLF)警告

问题描述

解决思路

解决方案

4.推送被拒绝(non-fast-forward)

问题描述

解决思路

解决方案

5.分支未设置上游跟踪

问题描述

解决思路

解决方案

6.预防措施

统一开发环境

规范工作流程

常用检查命令


Git相关操作:

问题0:

问题描述:Git上进行代码版本回退

问题解决:

git操作命令:

  1. 执行 git pull origin frontend 命令:

    • git pull origin frontendgit pull 是用于从远程仓库拉取代码并合并到本地分支的命令 。origin 是远程仓库的默认别名,frontend 是要拉取的远程分支名。

  2. Git 将本地全新项目代码与远程仓库连接

    1. 创建远程仓库,复制对应的URL地址

    2. 初始化本地仓库:git init——>创建了一个.git的隐藏文件夹

    3. 配置用户信息(首次配置)

      • git config --global user.email "your_email@example.com"

      • git config --global user.name "Your Name"

  3. 添加文件到暂存区:

    git add

    如若是想要添加所有文件:

    git add . 

    只想要添加特定文件:

    git add 特定文件名
  4. 提交文件到本地仓库:

    命令:

    git commit -m "提交文件说明"
  5. 关联远程仓库

    git remote add origin <远程仓库的URL>
  6. 查看远程仓库存在的分支:

    git branch -r
    查看本地分支:
    git branch
    查看本地和远程的所有分支:
    git branch -a
  7. 从远程仓库拉取分支信息:

    git fetch origin
  8. 切换分支:

    使用 git checkout 命令可以切换到已存在的本地分支

    切换到远程分支(创建并切换到本地跟踪分支)

    当需要切换到远程分支时,通常需要创建一个本地跟踪分支并切换到该分支。可以使用以下命令:

    git checkout -b feature-branch origin/feature-branch
  9. 拉取远程代码

    git pull origin master(注意:master替换成主要的实际分支)
  10. 推送远程代码

   git push -u origin master(注意:master替换成实际主分支名)

为什么使用-u呢?

答:将本地分支与远程分支建立追踪关系,后续推送可直接使用 git push

  1. 怎样才能知道是否链接上了远程仓库?

    使用 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.预防措施

  1. 统一开发环境
    • 使用 WSL(Windows Subsystem for Linux)避免 Windows 文件系统权限问题。

    • 团队共享 .gitattributes 文件确保行尾符一致。

  2. 规范工作流程
    • 开发前 git pull --rebase 同步最新代码。

    • 使用功能分支(feature branches)避免直接提交到 master。

    • 通过 PR(Pull Request)合并代码,确保代码审查。

  3. 常用检查命令
    # 查看分支跟踪信息
    git branch -vv
    ​
    # 查看提交历史差异
    git log --oneline --graph --all
    ​
    # 查看远程分支状态
    git remote show origin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值