首页 > 其他分享 >git使用

git使用

时间:2024-09-27 15:47:11浏览次数:1  
标签:git 仓库 Gitee SSH 使用 远程 冲突

目录

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

一、用户认证

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

1. 生成 SSH 密钥对

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

ssh-keygen -t ed25519 -C "[email protected]"

这将生成两个文件:

  • ~/.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 [email protected]: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

标签:git,仓库,Gitee,SSH,使用,远程,冲突
From: https://www.cnblogs.com/bbban/p/18435881

相关文章

  • 实验1 C语言开发环境使用和数据类型、运算符、表达式
    任务1:1#include<stdio.h>23intmain(){4printf("OO\n");5printf("<H><H>\n");6printf("IIII\n");7return0;8} 1#include<stdio.h>23intmain(......
  • 如何正确连接和使用滑动变阻器?
    滑动变阻器是可以改变电阻值的电子元件,广泛应用于各种电子设备和电路中。正确连接和使用滑动变阻器对于保证电路的正常工作和延长设备的使用寿命至关重要。以下是关于如何正确连接和使用滑动变阻器的一些建议:了解滑动变阻器的基本原理和结构:滑动变阻器主要由固定电阻体、滑片和外......
  • 如何延长变阻器的使用寿命?
    变阻器是可以改变电阻值的电子元件,广泛应用于各种电子设备和电路中。选择合适的变阻器:根据电路的需求,选择合适的变阻器。主要考虑变阻器的电阻范围、最大工作电压和电流等参数。选择不合适的变阻器可能会导致过载或过热,从而缩短其使用寿命。避免过载和过热:变阻器在使用过程中会产......
  • SQLite3模块使用详解
    SQLite3是一种轻量级的数据库引擎,它不需要独立的服务器进程,可以直接读写磁盘上的数据库文件。由于其简单易用和高效的特性,SQLite3成为了许多应用程序和开发者在开发阶段的首选数据库。Python的sqlite3模块提供了对SQLite3数据库的直接支持,允许开发者在Python环境中轻松地......
  • SciTech-BigDataAIML-Github-
    GeneratinganewGPGkeyGeneratinganewGPGkeyIfyoudon'thaveanexistingGPGkey,youcangenerateanewGPGkeytouseforsigningcommitsandtags.TOCInthisarticleGeneratingaGPGkeyFurtherreadingSupportedGPGkeyalgorithmsGi......
  • 01.SpringBoot开发杂记-使用工具类,静态读取配置文件中的配置的写法
    使用工具类,静态读取配置文件中的配置的写法@ComponentpublicclassConfigUtils{privatestaticConfigUtilsinstance;//单例模式持有当前工具类的实例privateConfigUtils(){}@Value("${system.uploadPath}")privateStringuploadPath;//@Value注解......
  • 国产linux系统(银河麒麟,统信uos)使用 PageOffice 国产版在线打开 word文件并提取数据区
    PageOffice国产版:支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、龙芯(LoogArch)芯片架构。查看本示例演示效果本示例关键代码的编写位置Vue+Springboot注意本文中展示的代码均为关键代码,复制粘贴到您的项目中,按照实际的情况,例如......
  • Charles抓包工具使用
    Charles抓包工具使用Charles客户端下载官网地址:https://www.charlesproxy.com/download/选择适合自己的系统版本下载(这里我选择Windows):下载完成后激活激活网站地址:https://www.zzzmode.com/mytools/charles/打开Charles:打开安装好的Charles,菜单栏Help->RegisterCharles弹出注册......
  • 使用代理ip会让我的电脑安全性降低吗
    使用代理IP在某些情况下可能会降低电脑的安全性,具体影响取决于你使用的代理IP的类型、来源以及配置方式。以下是代理IP对电脑安全的潜在影响及防范措施:1.不可信的代理IP可能会泄露隐私使用来源不明或白嫖代理IP可能会面临隐私泄露的风险。一些不受信任的代理服务提供商可能会记录......
  • java的基础入门学习03——抽象类与抽象方法的使用
    文章目录前言1、抽象类1.1什么是抽象类1.2如何使用抽象类2、抽象方法2.1什么是抽象方法2.2抽象方法的使用3、运用实例前言首先在学习抽象类以及抽象方法之前,我们得先了解什么是抽象,抽象其实也被成为面向对象的第四大特征,abstract就是java中对应的关键字,抽象往......