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 add → git 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` 是这个远程仓库地址的代称。也可以起别的名字,例如叫 myremote、github 等,但 origin 是默认最常用的。

-u 是什么意思?

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

例如:git push -u origin main

这条命令的作用是:

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

  2. 并告诉 Git:以后如果你在 main 分支上执行 git pull 或 git 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以后就处于希望的历史版本,就可以不用再进行后续操作了

相关推荐
挖掘狂人2 天前
Git 从 0 到 1:用一个小项目走完 add / commit / reset / merge / rebase / push
git·后端·github
codigger2 天前
Git 三区域模型:把 add、commit、reset、merge 一次讲透
git·github·编程·编程语言
水饺编程2 天前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
idanzk2 天前
Git 推送 GitHub 报 SSL_READ /src refspec main 不匹配 完整踩坑记录
git·github·ssl
星恒随风2 天前
Linux开发工具详解(二):Git版本控制、GitHub协作与GDB调试实战
linux·笔记·git·学习·github
寺中人3 天前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
酬谢神明则必安3 天前
git学习记录01
linux·git·学习
lingchen19063 天前
版本控制 Git源代码项目管理
git
虫无涯3 天前
Coverity 如何结合 GJB8114-2013使用?
git·单元测试·嵌入式测试·coverity·静态扫描
喵本喵叁肆3 天前
Git 深度解读:从对象模型到分支指针,把版本控制的内核讲透
git