git->GitHub的基础操作
在当下软件开发、开源协作的生态中,Git 与 GitHub 早已成为开发者的必备工具。无论是个人独立开发项目、日常代码版本管理,还是团队多人协作开发、参与全球开源项目,GitHub 都是最核心的代码托管与协作平台。对于每一位程序员、开源爱好者和技术学习者而言,熟练掌握 GitHub 配套的终端命令,是摆脱图形化操作局限、提升开发效率的关键能力。很多人在刚开始学习git时会习惯使用可视化的一些插件和功能进行代码的提交,这样确实能够快速的解决基础的需求,但是当发生错误导致提交失败时,可视化工具没有逐步排查、修改错误的能力。所以掌握git命令可以帮助你更高效的提升开发效率解决提交过程中的问题。
一、基础推送命令——可通过可视化工具一键执行
|
命令 |
作用 |
备注 |
|---|---|---|
|
|
查看状态 |
最重要!随时看哪些文件改了、哪些没提交。 |
|
|
添加所有修改到暂存区 |
点 |
|
|
提交到本地仓库 |
|
|
|
推送到远程 (GitHub) |
把本地代码上传。如果是第一次推新分支,用 |
|
|
拉取远程代码 |
把别人(或你在网页上)改的代码同步下来。推送前建议先 pull。 |
二、常见报错及解决方法
1. ! [rejected] main -> main (non-fast-forward) / fetch first
原因:远程有你本地没有的代码(比如你在网页改了 README,或者别人推了代码)
解决:
git pull origin main
# 如果有冲突,解决冲突后 git add . && git commit
git push origin main
2. fatal: unable to access ... Could not resolve host / Connection timed out
原因:网络不通,DNS 解析失败,或者被墙/防火墙拦截。
解决:检查WiFi,或者直接换成SSH协议
3、error: src refspec main does not match any
原因:你想推 main,但本地分支叫 master(老版本 Git 默认叫 master)。
解决:
git branch -M main # 把当前分支重命名为 main
git push -u origin main
4、fatal: refusing to merge unrelated histories
! [rejected] main -> main (non-fast-forward)
error: failed to push some refs to '...'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
原因:本地分支和远程分支没有共同提交记录导致git禁止push
解决:
方法一:强制允许合并不相关的历史
如果你确定这两个仓库虽然历史不同,但确实是要合并在一起的(比如就是把本地代码推到一个新建的、带了 README 的仓库),可以使用 --allow-unrelated-histories 参数。
git pull origin main --allow-unrelated-histories
git push origin main
方法二:强制推送
如果你完全不想要远程仓库里的任何内容(比如远程那个 README 你根本不想要),只想用本地的代码彻底覆盖远程。
git push -f origin main
# 或者
git push --force origin main
警告:这会删除远程分支上所有你没有的提交记录!如果是团队协作,千万别乱用,会把别人的代码搞丢。
5、fatal: remote origin already exists
原因:你想添加远程仓库地址,但发现之前已经添加过了(或者添加错了想改)。但是git remote add origin ... 只能用于第一次添加。如果 origin 这个名字已经被占用了,就会报错。
解决:
# 如果想修改地址:
git remote set-url origin <新的仓库地址>
# 如果想删除旧的再重新加:
git remote remove origin
git remote add origin <新的仓库地址>
6、error: Your local changes to the following files would be overwritten by merge
原因:你想 git pull 或者 git checkout 切换分支,但你本地有些文件改了还没提交。Git 怕把你没保存的修改给覆盖丢了,所以拒绝操作。
解决:
git stash # 暂存修改
git pull # 拉取代码
git stash pop # 恢复修改
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)