1️⃣ 初始化本地项目为 Git 仓库

如果你的项目还没用 Git 管理,先在项目目录下初始化:

      git init
    

2️⃣ 上传GitHub 远程仓库

关联远程仓库

通过以下命令添加远程仓库

      git remote add origin <Github url>
    

如果执行后 git remote -v 发现有多个远程仓库,例如:

      origin          https://github.com/liyao52033/demo.git (fetch)
origin          https://github.com/liyao52033/demo.git (push)
demo  https://github.com/liyao52033/demo.git (fetch)
demo  https://github.com/liyao52033/demo.git (push)
    

删除多余的远程仓库:

      git remote remove demo
    

再次检查:

      git remote -v
    

输出应为:

      origin  https://github.com/liyao52033/demo.git (fetch)
origin  https://github.com/liyao52033/demo.git (push)
    

确定跟踪分支

先查看本地和远程所有的分支

      git branch -a
    

如果执行后发现没有本地分支,只有remote远程分支

      remotes/origin/HEAD -> origin/main
remotes/origin/main
    

创建一个新的本地分支 main,并将其与远程的 origin/main 分支关联

      git checkout -b main origin/main
    

如果有本地分支但不是main,也可以重名为main,假设你当前在 master 分支上,执行下面命令后,当前分支的名称会变成 main,而内容不变。

      git branch -M main
    

验证跟踪关系

你可以使用以下命令验证本地分支是否成功跟踪远程分支:

      git status
    

如果看到类似以下的输出,说明本地分支已成功与远程分支关联:

      On branch main
Your branch is up to date with 'origin/main'.
    

如果没有关联

查看当前本地分支和远程分支

首先,你可以查看本地分支的状态,确保本地 main 分支和远程分支 origin/main 的状态。运行以下命令:

      git branch -vv
    

这将显示所有本地分支和它们对应的远程分支。例如:

      * main        abc1234 [origin/main] Your commit message
    

如果没有看到 [origin/main],表示本地分支没有跟踪远程分支。

设置本地分支跟踪远程分支

如果本地分支 main 没有跟踪远程分支 origin/main,你可以通过以下命令手动设置跟踪关系:

      git branch --set-upstream-to=origin/main main
    

这将设置本地分支 main 跟踪远程分支 origin/main,即以后你在本地 main 分支上执行 git pullgit push 时,Git 会自动与远程 origin/main 进行同步,然后再验证跟踪关系

拉取远程更改

一旦本地分支与远程分支关联,你可以使用 git pull 拉取远程仓库的更改:

      git pull
    

这将从远程的 origin/main 分支拉取最新的提交并合并到本地的 main 分支。

推送

      git push origin main
    

3️⃣ 解决本地文件与远程文件冲突

如果想要 上传本地代码覆盖 GitHub

  1. 提交本地代码:

          git add .
    git commit -m "本地代码首次提交"
        
  2. 强制推送覆盖远程:

          git push -u origin main --force
        

如果想要 用 GitHub 代码覆盖本地

  1. 拉取远程代码:

从远程仓库(origin)下载最新的分支、提交和标签,但 不会修改你当前的工作区和本地分支

      git fetch origin
    

把当前分支(通常是 main)的指针重置到远程分支 origin/main 的最新提交,并且强制同步工作区和暂存区。

      git reset --hard origin/main
    

删除工作目录中所有 未跟踪的文件和文件夹(即不在 Git 管理中的文件)。

      git clean -fd
    

如果想要 保留两边代码,合并

  1. 创建临时分支拉取远程:

          git fetch origin
    git checkout -b temp-branch origin/main // 基于远程分支 origin/main 创建一个新的本地分支 temp-branch,并切换到它。
        
  2. 切回本地分支:

          git checkout main //切换回已有的本地分支 main
        
  3. 合并:

          git merge temp-branch
        
  4. 解决冲突后提交:

          git add .
    git commit -m "合并远程与本地代码"
    git push -u origin main
        

4️⃣ 在 VS Code 中可视化操作(可选)

​ 添加 GitHub 远程仓库如下

  • 打开 VS Code ,如果没初始化 Git,点击左侧的源代码管理图标(或按下Ctrl + Shift + G),点击初始化存储库按钮。

  • 点击右上角 远程添加远程存储库 → 填写 仓库 URL,远程名称填 origin

  • 暂存更改并提交

  • 参照上面的方法解决文件冲突

  • 点击右上角 分支拉取

    然后即可正常推送代码,如果有文件冲突参照上面的解决办法


✅ 常用命令汇总

      # 查看所有远程仓库
git remote -v

# 删除多余的远程
git remote remove <name>

# 添加远程
git remote add origin <repo-url>

# 你可以使用以下命令查看本地所有分支,这个命令会列出所有本地的分支,并在当前所在的分支前面加上 * 号。
git branch

# 如果你想查看远程的分支,可以使用:
git branch -r

# 如果你想查看本地和远程所有的分支
git branch -a

# 创建一个新的本地分支 main,并将其与远程的 origin/main 分支关联
git checkout -b main origin/main

# 重命名当前分支为 main
git branch -M main

# 提交本地代码
git add .
git commit -m "message"

# 推送代码到远程
git push -u origin main

# 强制覆盖远程
git push -u origin main --force

# 删除远程分支
git push origin --delete <branch-name>

# 删除本地分支
git branch -d <branch-name>

# 删除本地对远程分支的引用
git fetch -p

# 用远程覆盖本地
git fetch origin
git reset --hard origin/main
git clean -fd
    

💡 推荐做法: 如果你的本地代码是最终要保留的,可以直接用 上传覆盖 GitHub(强推); 如果只是想拉取远程代码,用 覆盖本地 即可。

声明

作者: liyao

版权:本博客所有文章除特别声明外,均采用CCBY-NC-SA4.O许可协议。转载请注明!

最后更新于 2026-02-18 18:15 history