如何向远程仓库上传项目

项目管理

    • 从无到有:如何将一个项目上传到远程仓库
      • 一、用户认证
        • [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
相关推荐
Zach_yuan1 小时前
版本控制器Git
linux·git
唐青枫6 小时前
Git 提交时神秘的 create mode 100644 到底是什么?一文告诉你答案!
git
春生野草6 小时前
Git-git stash与分支管理
git
ljh5746491196 小时前
Git合并冲突解决方法
git
悟能不能悟6 小时前
git revert commit和undo commit的区别
git
222you18 小时前
Git的diff命令
git
补三补四20 小时前
Git 基础操作指南
大数据·git·elasticsearch
222you1 天前
git的命令
git
Coolbike1 天前
Git工作流
git
~央千澈~1 天前
实战针对本地项目git如何移除旧仓库关联并且添加关联新仓库-优雅草卓伊凡
git