当前位置: 首页 > article >正文

如何向远程仓库上传项目

项目管理

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

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

一、用户认证

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

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

ssh-keygen -t ed25519 -C "your_email@example.com"

这将生成两个文件:

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

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

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

  4. 添加 SSH 密钥

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

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

    ssh-add ~/.ssh/id_ed25519
    

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

二、上传

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

    cd /path/to/your/project
    
  • 初始化 Git 仓库

    git init
    
3. 添加文件到 Git 仓库
  • 添加所有文件到暂存区

    git add .
    
  • 提交文件到本地仓库

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

  • 添加远程仓库

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

    git push -u origin master
    

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

    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,使用以下命令:

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

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

3. 进入项目目录

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

```sh
cd repo
```

4. 查看项目分支

  • 查看当前分支:

    git branch
    
  • 查看所有的远程分支:

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

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

    git pull origin branchName 
    

5. 推送更新

  • 添加所有文件到暂存区

    git add .
    
  • 提交文件到本地仓库

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

    git push -u origin branchName 
    

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

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

预处理

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

git checkout -b tmp-branch origin/master

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

git checkout master

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

git merge tmp-branch

1. 查看冲突文件

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

git status

输出应该类似于:

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,找到冲突标记(<<<<<<<, =======, >>>>>>>),手动编辑文件,删除冲突标记,保留你希望保留的代码。

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

<<<<<<< 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

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

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

3. 标记冲突已解决

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

git add src/main/java/com/example/demo/Demo1Application.java

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

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

git commit -m "Resolved merge conflicts"

5. 再次尝试推送代码

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

git push -u origin master

http://www.kler.cn/a/322901.html

相关文章:

  • ODC 如何精确呈现SQL耗时 | OceanBase 开发者工具解析
  • Android CALL按键同步切换通话界面上免提和听筒的图标显示
  • 【PYTORCH】使用MTCNN和InceptionResnetV1简单进行人脸检测和相似度匹配
  • Python爬虫----python爬虫基础
  • [系统安全] PE文件知识在免杀中的应用
  • C++创建型设计模式体现出的面向对象设计原则
  • ThreeJs绘制圆柱体
  • 基于FreeRTOS的STM32多功能手表设计
  • openEuler 20.03,22.03 一键部署Oracle21c zip
  • 【ArcGIS Pro实操第三期】多模式道路网构建(Multi-model road network construction)原理及实操案例
  • RHCSA认证-Linux(RHel9)-Linux入门
  • 【STM32】SPI回顾
  • SpinalHDL之语义(Semantic)(二)
  • 基于STM32的智能家居交互终端:使用FreeRTOS与MQTT协议的流程设计
  • 自然语言处理(jieba库分词)
  • AI技术在爱奇艺视频搜索中的应用
  • 代理模式简介:静态代理VS与动态代理
  • 硬件设计基础之闲聊千兆以太网
  • 设计模式-PIMPL 模式
  • 【Webpack】publicPath
  • STM32F407ZGT6配置can信号
  • 游戏服务器如何有效地实现不同游戏模式和规则?
  • git clone或repo init 时报错:fatal: 协议错误:错误的行长度 xxx
  • 如何保护自己电脑以及服务器的ip地址
  • MyBatis——Plus
  • Python/大数据/机器识别毕业设计选题题目推荐