
你在统信UOS上刚初始化了一个项目,想把本地代码提交到远程仓库,同时需要为新功能单独开分支、合并后再推送到主干,但执行git push时提示“no upstream branch”,运行git checkout -b提示“pathspec 'dev' did not match any file(s)”,这些卡点都源于对Git三区模型和分支跟踪机制不熟悉。
初始化仓库并完成首次提交
打开终端,进入你的项目根目录(确保该目录下没有.git文件夹)→执行git init,此时.git隐藏目录被创建,本地仓库诞生。
运行git status,你会看到所有文件显示为红色(未跟踪状态),这说明它们还在工作区,尚未进入暂存区。
执行git add .将当前目录所有文件加入暂存区;若只想提交部分文件,改用git add src/ main.py——【误用 git add * 可能意外纳入 .log 或临时文件】。
执行git commit -m "init: project scaffold",这一步把暂存区快照写入本地仓库,并生成唯一commit ID。注意:此时代码只存在于你本机的.git目录里,远程仓库还完全不知情。
关联远程仓库并推送主分支
先确认远程仓库地址(如Gitee上的HTTPS链接:https://gitee.com/username/repo.git)→在终端中运行:git remote add origin https://gitee.com/username/repo.git。
执行git branch --set-upstream-to=origin/main main,强制建立本地main分支与远程origin/main的跟踪关系;如果你的远程默认分支是master,把main换成master即可。
现在可以安全推送:git push -u origin main。-u参数会自动设置上游分支,后续再push只需敲git push。
用大白话操作当前项目的 Git/GitHub——配置 GitHub(装 gh CLI + 登录 + 建仓库)、备份、拉取下载、查询历史、回滚代码、管理分支。当用户用日常语言表达 git 意图时触发(例如"git备份一下""git下载项目""git拉下来""git看看我改了啥""git回退到上一个版本""git新建个分支搞新功能""git合并到主分支""git
若推送失败并提示“refusing to merge unrelated histories”,说明远程仓库已有初始提交(如README.md),而你的本地仓库是全新init的。此时必须加--allow-unrelated-histories参数合并历史,但【这会强制合并两个无交集的提交树,不可逆】,建议先git pull origin main --allow-unrelated-histories再解决冲突。
创建特性分支并安全合并
方法一:基于当前HEAD新建分支并立即切换
执行git checkout -b feat/user-login,这等价于git branch feat/user-login && git checkout feat/user-login。新分支从当前commit分叉,互不影响。
方法二:从指定分支拉出新分支
你想从远程develop分支而非本地main拉分支?先同步远程:git fetch origin develop → 再建分支:git checkout -b feat/api-v2 origin/develop。
在feat/user-login分支上编码、add、commit若干次后,切回main:git checkout main → 执行git merge feat/user-login。如果出现冲突,Git会在文件中标出>> feat/user-login块,手动编辑保存后,运行git add 冲突文件名 → git commit完成合并。
合并成功后,推送两个分支:git push origin main feat/user-login。注意:不要漏掉feat/user-login,否则远程看不到这个分支。
删除已合并的本地分支
确认feat/user-login已在main中合并完成(可通过git log --oneline --graph main查看分支交汇点)→执行git branch -d feat/user-login安全删除。
若提示“not fully merged”,说明该分支有未合并的提交,此时需强制删除:git branch -D feat/user-login——【-D会丢弃所有未合并的提交,无法恢复】。
远程分支删除更需谨慎:先推空引用git push origin --delete feat/user-login,再本地删分支。










