在当下软件开发、开源协作的生态中,Git 与 GitHub 早已成为开发者的必备工具。无论是个人独立开发项目、日常代码版本管理,还是团队多人协作开发、参与全球开源项目,GitHub 都是最核心的代码托管与协作平台。对于每一位程序员、开源爱好者和技术学习者而言,熟练掌握 GitHub 配套的终端命令,是摆脱图形化操作局限、提升开发效率的关键能力。很多人在刚开始学习git时会习惯使用可视化的一些插件和功能进行代码的提交,这样确实能够快速的解决基础的需求,但是当发生错误导致提交失败时,可视化工具没有逐步排查、修改错误的能力。所以掌握git命令可以帮助你更高效的提升开发效率解决提交过程中的问题。

 一、基础推送命令——可通过可视化工具一键执行

命令

作用

备注

git status

查看状态

最重要!随时看哪些文件改了、哪些没提交。

git add .

添加所有修改到暂存区

. 代表当前目录下所有变动。也可以指定文件名 git add index.html

git commit -m "说明"

提交到本地仓库

-m 后面写简短的修改说明,比如 "fix: 修复首页样式"。

git push

推送到远程 (GitHub)

把本地代码上传。如果是第一次推新分支,用 git push -u origin main

git pull

拉取远程代码

把别人(或你在网页上)改的代码同步下来。推送前建议先 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      # 恢复修改

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐