git命令常见用法【持续更新中……】

一、已有本地代码,在gitee创建了空仓库后想将代码与该仓库相连

在本地项目目录下初始化Git

bash 复制代码
# 1. 初始化本地仓库
git init

# 2. 添加所有文件到暂存区
git add .

# 3. 提交第一个版本
git commit -m "Initial commit: 项目初始化"

将本地仓库关联到Gitee

bash 复制代码
根据你在 Gitee 上看到的克隆地址,选择 SSH 或 HTTPS
# 将 origin 指向 Gitee 的仓库地址
# SSH
git remote add origin git@gitee.com:你的用户名/MyMusicPlayer.git 
# HTTPS
git remote add origin https://gitee.com/你的用户名/MyMusicPlayer.git

如果是第一次使用 SSH,请先在本地生成 SSH Key 并添加到 Gitee 账户

推送到Gitee

  1. 若遇到**fatal: refusing to merge unrelated histories ,**与远端无关历史,比如远端有一个空的 README 提交,本地历史不同。需要先拉取合并。

  2. 拉取远端并允许不同历史合并

    bash 复制代码
    git pull origin master --allow-unrelated-histories
  3. 解决合并冲突,打开冲突文件,删除 <<<<<<<=======>>>>>>> 标记,合并保留你需要的内容,保存后将该文件重新 git add,git commit

  4. 合并完成后推送到 Gitee

    bash 复制代码
    git push -u origin master

后续日常开发流程

修改代码 → git addgit commit -m "描述"git push

二、旧仓库出问题了想换新的

删除旧远程并添加新远程

bash 复制代码
git remote remove origin
git remote add origin https://github.com/new-user/new-repo.git

如果新仓库是空的,可以直接推送现有代码

bash 复制代码
git push -u origin main

#主分支是master
git push -u origin master

该命令中的-u与origin是指什么

origin 是什么?

origin 是 Git 默认给远程仓库起的名字(remote name),相当于是这个远程仓库的"代号"。

  • 当你克隆一个仓库时,Git 会自动把你克隆的那个远程仓库命名为 origin

  • 它其实就是一个指向远程仓库地址的简写名字。

例如:origin https://github.com/user/project.git,表示`origin` 是这个远程仓库地址的代称。也可以起别的名字,例如叫 myremotegithub 等,但 origin 是默认最常用的。

-u 是什么意思?

-u--set-upstream 的缩写,用于将本地分支和远程分支建立跟踪关系

例如:git push -u origin main

这条命令的作用是:

  1. 把当前分支(比如 main)的代码推送到远程仓库 origin

  2. 并告诉 Git:以后如果你在 main 分支上执行 git pullgit push,默认就用 origin/main 作为对应的远程分支。

换句话说,有了 -u 之后,下一次你就可以直接用git push,而不用每次都写 git push origin main 这么完整。

若推送失败,提示有冲突

法一:先pull,解决掉冲突,再push

法二:若确定远程仓库可以被完全覆盖(比如你刚建仓库,没内容或无所谓),可以选择强制推送

bash 复制代码
git push -u origin master --force

三、代码修改思路错误,想回溯至远程仓库的版本

放弃本地修改(可选): 如果你希望完全放弃本地的修改,可以使用以下命令来丢弃本地所有未提交的修改

bash 复制代码
git reset --hard HEAD
# 可以不写HEAD,此时默认重置到 HEAD,即当前分支的最后一次提交
# 明确写出 HEAD(或其他引用,比如 origin/main)可以更清晰地表达你的意图,尤其在脚本或协作中更具可读性

拉取远程代码: 然后,从远程仓库拉取最新的代码

bash 复制代码
# 会将远程仓库的最新代码下载到本地,但不会自动合并到当前分支
git fetch origin

覆盖本地代码: 最后,将远程分支的代码强制覆盖当前分支的代码

bash 复制代码
git reset --hard origin/<branch-name>

ps:如果你reset以后就处于希望的历史版本,就可以不用再进行后续操作了

相关推荐
SiYuanFeng1 小时前
新手学Git:如何把本地 Git 项目上传到 GitHub
git·github
前端若水3 小时前
git回退并合并分支操作
git
程序员鱼皮8 小时前
Git WorkTree 是什么?凭什么能让 AI 编程效率翻倍?
git·ai·程序员·编程·ai编程
懵逼的小黑子10 小时前
git与远程仓库创建连接
git
前端若水11 小时前
Git 撤销与恢复完全指南(超级详细版)
大数据·git·elasticsearch
golang学习记11 小时前
Git 2.54 来了,这个新命令让我终于敢重写历史了
git·后端
其实防守也摸鱼11 小时前
AWVS下载和安装保姆级教程
linux·服务器·git
前端若水11 小时前
Git 可以做的所有操作(完整分类)
大数据·git·elasticsearch
叹一曲当时只道是寻常11 小时前
Reference 工具安装与使用教程:一条命令管理 Git 仓库引用与知识沉淀
人工智能·git·ai·开源·github
前端若水12 小时前
Git 仓库管理命令完全指南(超级详细版)
大数据·git·elasticsearch