如何向远程仓库上传项目

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

一、用户认证

  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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值