如何向远程仓库上传项目

项目管理

    • 从无到有:如何将一个项目上传到远程仓库
      • 一、用户认证
        • [1. 生成 SSH 密钥对](#1. 生成 SSH 密钥对)
        • [2. 将公钥添加到 Gitee](#2. 将公钥添加到 Gitee)
        • [3. 配置 SSH 代理](#3. 配置 SSH 代理)
      • 二、上传
        • [1. 在 Gitee 上创建仓库](#1. 在 Gitee 上创建仓库)
        • [2. 初始化本地项目为 Git 仓库](#2. 初始化本地项目为 Git 仓库)
        • [3. 添加文件到 Git 仓库](#3. 添加文件到 Git 仓库)
        • [4. 添加远程仓库](#4. 添加远程仓库)
        • [5. 推送代码到远程仓库](#5. 推送代码到远程仓库)
    • 从有拉取:如何从远程仓库拉取一个项目
      • [1. 安装 Git](#1. 安装 Git)
      • [2. 克隆远程仓库](#2. 克隆远程仓库)
      • [3. 进入项目目录](#3. 进入项目目录)
      • [4. 查看项目分支](#4. 查看项目分支)
      • [5. 推送更新](#5. 推送更新)
    • 本地与远程冲突无法上传,如何解决
      • 预处理
      • [1. 查看冲突文件](#1. 查看冲突文件)
      • [2. 手动解决冲突](#2. 手动解决冲突)
      • [3. 标记冲突已解决](#3. 标记冲突已解决)
      • [4. 提交解决冲突后的更改](#4. 提交解决冲突后的更改)
      • [5. 再次尝试推送代码](#5. 再次尝试推送代码)

从无到有:如何将一个项目上传到远程仓库

一、用户认证

  1. 生成 SSH 密钥对
  2. 将公钥添加到 Gitee
  3. 配置 SSH 代理
  4. 重新尝试推送代码
1. 生成 SSH 密钥对

如果你还没有生成 SSH 密钥对,可以使用以下命令生成:

sh 复制代码
ssh-keygen -t ed25519 -C "your_email@example.com"

这将生成两个文件:

  • ~/.ssh/id_ed25519(私钥)
  • ~/.ssh/id_ed25519.pub(公钥)
2. 将公钥添加到 Gitee
  1. 打开公钥文件

    sh 复制代码
    cat ~/.ssh/id_ed25519.pub
  2. 复制公钥内容

  3. 登录 Gitee :打开浏览器,访问 Gitee 并登录你的账户。

  4. 添加 SSH 密钥

    • 点击右上角的头像,选择"设置"。
    • 在左侧菜单中选择"SSH 公钥"。
    • 点击"新增公钥",粘贴你复制的公钥内容,并填写一个标题(例如 My Laptop)。
    • 点击"确定"。
3. 配置 SSH 代理
  1. 启动 SSH 代理

    sh 复制代码
    eval "$(ssh-agent -s)"
  2. 添加私钥到 SSH 代理

    sh 复制代码
    ssh-add ~/.ssh/id_ed25519

将一个本地项目提交到 Gitee 上,假设 Gitee 上还没有创建仓库,可以按照以下步骤进行:

二、上传

1. 在 Gitee 上创建仓库
  • 登录 Gitee :打开浏览器,访问 Gitee 并登录你的账户。
  • 创建新仓库
    • 点击右上角的"+"按钮,选择"新建仓库"。
    • 填写仓库名称(例如 my-project)、描述等信息。
    • 选择仓库的可见性(公开或私有)。
    • 点击"创建"。
2. 初始化本地项目为 Git 仓库
  • 进入项目目录

    sh 复制代码
    cd /path/to/your/project
  • 初始化 Git 仓库

    sh 复制代码
    git init
3. 添加文件到 Git 仓库
  • 添加所有文件到暂存区

    sh 复制代码
    git add .
  • 提交文件到本地仓库

    sh 复制代码
    git commit -m "Initial commit"
4. 添加远程仓库
  • 获取 Gitee 仓库的 URL :在 Gitee 上创建的仓库页面中,可以看到仓库的 URL。例如,https://gitee.com/username/my-project.git

  • 添加远程仓库

    sh 复制代码
    git remote add origin https://gitee.com/username/my-project.git
5. 推送代码到远程仓库
  • 推送代码到远程仓库

    sh 复制代码
    git push -u origin master

    如果仓库的默认分支名称不是 master,请替换为实际的分支名称。例如,如果默认分支名称是 main,则使用:

    sh 复制代码
    git push -u origin main

从有拉取:如何从远程仓库拉取一个项目

从远程仓库(如 Gitee、GitHub 等)拉取一个已有的项目到本地。

1. 安装 Git

确保你的计算机上已经安装了 Git。如果没有安装,可以从 Git 官方网站 下载并安装。

2. 克隆远程仓库

使用 git clone 命令将远程仓库克隆到本地:

  • 打开终端或命令行工具

    • Windows 用户可以使用 Git Bash 或者命令提示符。
    • macOS 和 Linux 用户可以使用终端。
  • 导航到你希望保存项目的目录
    sh cd /path/to/your/directory

  • 使用 git clone 命令克隆远程仓库

    • 假设远程仓库的 URL 是 https://gitee.com/username/repo.git,使用以下命令:

      sh 复制代码
      git clone https://gitee.com/username/repo.git
      • 使用的是 SSH 方式(SSH方式预处理见第一部分),URL 会有所不同:
      sh 复制代码
      git clone git@gitee.com:username/repo.git

ps: 执行git clone 命令会自动执行git init 等一系列命令。

3. 进入项目目录

克隆完成后,进入项目目录:

```sh
cd repo
```

4. 查看项目分支

  • 查看当前分支:

    sh 复制代码
    git branch
  • 查看所有的远程分支:

    sh 复制代码
    git branch -r
  • 此时,可以创建并切换到新的本地分支,并跟踪远程分支(尽量保证your_branchName和branchName 保持一致):

    sh 复制代码
    git checkout -b your_branchName origin/branchName 
  • 推送当前本地分支到指定分支:

    sh 复制代码
    git pull origin branchName 

5. 推送更新

  • 添加所有文件到暂存区

    sh 复制代码
    git add .
  • 提交文件到本地仓库

    sh 复制代码
    git commit -m "Initial commit"
  • 推送代码到远程仓库

    sh 复制代码
    git push -u origin branchName 

本地与远程冲突无法上传,如何解决

假设你目前处于合并冲突的状态,无法向远程提交项目。

预处理

拉取最新的项目代码到一个临时分支。

bash 复制代码
git checkout -b tmp-branch origin/master

切换回要提交的分支,假设为master。

bash 复制代码
git checkout master

尝试将拉取的项目和本地项目融合。

bash 复制代码
git merge tmp-branch

1. 查看冲突文件

使用 git status 命令确认哪些文件存在冲突:

sh 复制代码
git status

输出应该类似于:

sh 复制代码
On branch master
Your branch and 'origin/master' have diverged,
and have 1 and 1 different commits each, respectively.
  (use "git pull" if you want to integrate the remote branch with yours)

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)
        both modified:   src/main/java/com/example/demo/Demo1Application.java

2. 手动解决冲突

打开冲突文件 src/main/java/com/example/demo/Demo1Application.java,找到冲突标记(<<<<<<<, =======, >>>>>>>),手动编辑文件,删除冲突标记,保留你希望保留的代码。

例如,冲突文件可能看起来像这样:

java 复制代码
<<<<<<< HEAD
public class Demo1Application {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
=======
public class Demo1Application {
    public static void main(String[] args) {
        System.out.println("Hello, Gitee!");
    }
}
>>>>>>> feature-branch

手动编辑文件,解决冲突后,文件可能看起来像这样:

java 复制代码
public class Demo1Application {
    public static void main(String[] args) {
        System.out.println("Hello, Gitee!");
    }
}

3. 标记冲突已解决

使用 git add 命令将解决冲突后的文件添加到暂存区:

sh 复制代码
git add src/main/java/com/example/demo/Demo1Application.java

4. 提交解决冲突后的更改

解决所有冲突后,提交更改:

sh 复制代码
git commit -m "Resolved merge conflicts"

5. 再次尝试推送代码

解决冲突并提交更改后,再次尝试将代码推送到远程仓库:

sh 复制代码
git push -u origin master
相关推荐
小牛同学_5 分钟前
Git 详细安装教程(详解 Git 安装过程的每一个步骤)
git
-SGlow-6 分钟前
Linux相关概念和重要知识点(7)(git、冯诺依曼体系结构)
linux·运维·git
PeterJXL6 分钟前
Git 与远程分支
git·分支管理
Maxx Space31 分钟前
828华为云征文|部署敏捷项目管理系统工具 ZenTao
git·docker·华为云·github·敏捷开发
aFakeProgramer1 小时前
git本地分支落后于远程分支,因此推送被拒绝怎么办?
git
Maxx Space1 小时前
828华为云征文|部署个人知识管理系统 SiyuanNote
linux·git·docker·华为云·github·notion
PeterJXL4 小时前
Git 工作区、暂存区与修改全解析
git·版本管理
jxq19946 小时前
Git 上传代码问题记录
git
花一样的阿衰6 小时前
Gerrit/Git常用操作命令
git
PeterJXL6 小时前
Git 与标签管理
git