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

Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用

Git

文章目录

  • Git
    • 项目简单克隆
    • 通用操作
      • 添加和提交
      • 回滚
      • 分支
      • 变基分支
      • 优选
    • 远程项目推送
      • 认证
      • 抓取、拉取和冲突解决
    • IEDA类软件连接

最近学原理学的快头秃了,特此想出点不讲原理的纯操作版,不过还是放个图吧
在这里插入图片描述

项目简单克隆

git在本人日常中最重要的功能还是下载,所以先从下载开始讲起

首先,创建一个文件,用来存放等会clone下来的项目,然后点击GitBash进行命令行操作

image-20231014201004371

之后 在git上找到你中意的项目,如图操作,复制链接

image-20231014201455280

git clone https://github.com/newbee-ltd/newbee-mall.git

之后就会看到他在clone你的项目到本地文件夹,当然你也可以直接Download zip然后解压:

image-20231014201950862

通用操作

之后讲通用的,先配置用户名

git config --global user.name “ ”
git config --global user.email “ ”

然后创建本地仓库

git init

image-20231014202450942

打开此选项,查看隐藏的文件夹:

image-20231014202354230

发现

image-20231014202506496

这个目录是一个隐藏目录,而当前目录就是我们的工作目录。

创建成功后,我们可以查看一下当前的一个状态,输入:

git status

如果已经成功配置为Git本地仓库,那么输入后可以看到:

image-20231014202555762

添加和提交

接着我们来看看,如何使用git来管理我们文档的版本,我们创建一个文本文档,随便写入一点内容,接着查看状态:

image-20231014203001178

Untracked files是未追踪文件的意思,也就是说,如果一个文件处于未追踪状态,那么git不会记录它的变化,始终将其当做一个新创建的文件,这里我们将其添加到暂存区,那么它会自动变为被追踪状态:

git add hello.txt #也可以 add . 一次性添加目录下所有的
再次查看当前状态:

image-20231014203047363

现在文件名称的颜色变成了绿色,并且是处于Changes to be committed下面,因此,我们的hello.txt现在已经被添加到暂存区了。

接着我们来尝试将其提交到Git本地仓库中,注意需要输入提交的描述以便后续查看,比如你这次提交修改了或是新增了哪些内容:

git commit -m 'Hello World'

接着我们可以查看我们的提交记录:

git log
git log --graph

image-20231014203205419

我们还可以查看最近一次变更的详细内容:

git show [也可以加上commit ID查看指定的提交记录]

image-20231014203245890

接着我们可以尝试修改一下我们的文本文档,由于当前文件已经是被追踪状态,那么git会去跟踪它的变化,如果说文件发生了修改,那么我们再次查看状态会得到下面的结果:

image-20231014203336465

也就是说现在此文件是处于已修改状态,我们如果修改好了,就可以提交我们的新版本到本地仓库中:

git add .
git commit -m 'Modify Text'

接着我们来查询一下提交记录,可以看到一共有两次提交记录。

image-20231014203406056

我们可以创建一个.gitignore文件来确定一个文件忽略列表,如果忽略列表中的文件存在且不是被追踪状态,那么git不会对其进行任何检查

回滚

当我们想要回退到过去的版本时,就可以执行回滚操作,执行后,可以将工作空间的内容恢复到指定提交的状态:

git reset --hard commitID

执行后,会直接重置为那个时候的状态。再次查看提交日志,我们发现之后的日志全部消失了。

那么要是现在我又想回去呢?我们可以通过查看所有分支的所有操作记录:

git reflog

这样就能找到之前的commitID,再次重置即可。

分支

分支就像我们树上的一个树枝一样,它们可能一开始的时候是同一根树枝,但是长着长着就开始分道扬镳了,这就是分支。我们的代码也是这样,可能一开始写基础功能的时候使用的是单个分支,但是某一天我们希望基于这些基础的功能,把我们的项目做成两个不同方向的项目,比如一个方向做Web网站,另一个方向做游戏服务端。

因此,我们可以在一个主干上分出N个分支,分别对多个分支的代码进行维护。

创建分支
我们可以通过以下命令来查看当前仓库中存在的分支:

git branch

我们发现,默认情况下是有一个master分支的,并且我们使用的也是master分支,一般情况下master分支都是正式版本的更新,而其他分支一般是开发中才频繁更新的。我们接着来基于当前分支创建一个新的分支:

git branch test

删除分支

git branch -d test1

现在我们修改一下文件,提交,再查看一下提交日志:

git commit -a -m 'branch master commit'

通过添加-a来自动将未放入暂存区的已修改文件放入暂存区并执行提交操作。查看日志,我们发现现在我们的提交只生效于master分支,而新创建的分支并没有发生修改。

将分支切换到另一个分支:

git checkout test

我们会发现,文件变成了此分支创建的时的状态,也就是说,在不同分支下我们的文件内容是相互隔离的。

我们现在再来提交一次变更,会发现它只生效在yyds分支上。我们可以看看当前的分支状态:

git log --all --graph

合并分支
我们也可以将两个分支更新的内容最终合并到同一个分支上,我们先切换回主分支:

git checkout test1

接着使用分支合并命令:

git merge test

会得到如下提示:

image-20231014204015620

在合并过程中产生了冲突,因为两个分支都对hello.txt文件进行了修改,那么现在要合并在一起,到底保留谁的hello文件呢?

我们可以查看一下是哪里发生了冲突:

git diff

因此,现在我们将master分支的版本回退到修改hello.txt之前或是直接修改为最新版本的内容,这样就不会有冲突了,接着再执行一次合并操作,现在两个分支成功合并为同一个分支。

变基分支

除了直接合并分支以外,我们还可以进行变基操作,它跟合并不同,合并是分支回到主干的过程,而变基是直接修改分支开始的位置,比如我们希望将yyds变基到master上,那么yyds会将分支起点移动到master最后一次提交位置:

git rebase master

变基后,yyds分支相当于同步了此前master分支的全部提交。

优选

我们还可以选择其将他分支上的提交作用于当前分支上,这种操作称为cherrypick:

git cherry-pick <commit id>:单独合并一个提交

这里我们在master分支上创建一个新的文件,提交此次更新,接着通过cherry-pick的方式将此次更新作用于test分支上。

远程项目推送

认证

首先我们需要一个认证

ssh-keygen -t rsa
cat ~/.ssh/github.pub #需要替换

打开所在目录,复制 .pub文件中的所有内容,之后添加ssh key

image-20231014205630057

git commit -a -m 'Modify files'
git log --all --oneline --graph
git push origin master 
git log --all --oneline --graph

推送成功

image-20231014210356602

主页也看到了

image-20231014210255108

也可以远端绑定分支

git push --set-upstream origin master:master
git push origin

抓取、拉取和冲突解决

如果出现多个本地仓库对应一个远程仓库的情况下,比如一个团队里面,N个人都在使用同一个远程仓库,但是他们各自只负责编写和推送自己业务部分的代码,也就是我们常说的协同工作,那么这个时候,我们就需要协调。
如果出现进度不一样,这时就需要进行pull操作,获取远程仓库中最新的提交:

git fetch 远程仓库 #抓取:只获取但不合并远端分支,后面需要我们手动合并才能提交
git pull 远程仓库 #拉取:获取+合并

之后可能会出现冲突,例如:

To https://github.com/xx/xxx.git! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/xx/xxx.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

一旦一个本地仓库推送了代码,那么另一个本地仓库的推送会被拒绝,原因是当前文件已经被其他的推送给修改了,我们这边相当于是另一个版本,和之前两个分支合并一样,产生了冲突,因此我们只能去解决冲突问题。

如果远程仓库中的提交和本地仓库中的提交没有去编写同一个文件,那么就可以直接拉取:

git pull 远程仓库

拉取后会自动进行合并,合并完成之后我们再提交即可。

但是如果两次提交都修改了同一个文件,那么就会遇到和多分支合并一样的情况,在合并时会产生冲突,这时就需要我们自己去解决冲突了。

IEDA类软件连接

以下使用GoLand作为范例,IDEA也大差不差

image-20231014212254226

之后登陆账户

image-20231014212554925
之后就可以提交了,命令都大差不差

image-20231014212911393
操作到这里就结束了,有兴趣的可以去了解了解原理

相关文章:

Git纯操作版 项目添加和提交、SSH keys添加、远程仓库控制、冲突解决、IDEA连接使用

Git 文章目录 Git项目简单克隆通用操作添加和提交回滚分支变基分支优选 远程项目推送认证抓取、拉取和冲突解决 IEDA类软件连接 最近学原理学的快头秃了&#xff0c;特此想出点不讲原理的纯操作版&#xff0c;不过还是放个图吧 项目简单克隆 git在本人日常中最重要的功能还是…...

使用OpenSSL生成自签证书

什么是OpenSSL OpenSSL是一个开源的软件库和工具套件&#xff0c;用于安全地处理网络数据传输中的加密、解密、安全套接层&#xff08;SSL&#xff09;以及传输层安全&#xff08;TLS&#xff09;协议等功能。它广泛应用于网站和互联网服务中&#xff0c;以确保数据传输的安全…...

Spring源码解析——Spring事务是怎么通过AOP实现的?

正文 此篇文章需要有SpringAOP基础&#xff0c;知道AOP底层原理可以更好的理解Spring的事务处理。最全面的Java面试网站 自定义标签 对于Spring中事务功能的代码分析&#xff0c;我们首先从配置文件开始人手&#xff0c;在配置文件中有这样一个配置&#xff1a;<tx:annot…...

机器人革命:脑洞大开的前沿机器人技术!

原创 | 文 BFT机器人 01 由生物启发的多模式移动形态机器人 在一个不断运动的世界中&#xff0c;一种新开发的名为M4&#xff08;多模式移动形态机器人&#xff09;的机器人展示了在包括滚动、飞行和行走在内的八种不同运动模式之间切换的能力。这款机器人由加州理工学院自主…...

微信小程序动态海报

参考文献&#xff1a; 微信小程序生成分享海报&#xff08;附带二维码生成&#xff09; - 简书 需求背景&#xff1a; 微信小程序固定图片&#xff0c;无法自动链接&#xff0c;分享页面内容 解决方案&#xff1a; 拆分海报内容&#xff0c;由以下几个组成 1、用户图像 …...

手写单例模式

一、单例模式的定义 定义&#xff1a; 确保一个类只有一个实例&#xff0c;并提供该实例的全局访问点。 这样做的好处是&#xff1a;有些实例&#xff0c;全局只需要一个就够了&#xff0c;使用单例模式就可以避免一个全局使用的类&#xff0c;频繁的创建与销毁&#xff0c;耗…...

介绍6种解决电脑找不到vcomp140.dll,无法继续执行代码的方法。

在编程和软件开发领域&#xff0c;我们经常会遇到各种错误和问题。其中&#xff0c;找不到vcomp140.dll文件导致无法继续执行代码是一个非常常见的问题。这个问题可能会影响到软件的正常运行&#xff0c;甚至导致整个项目延期。因此&#xff0c;我们需要找到解决方案来解决这个…...

mysql数据物理迁移

文章目录 一、mysql数据物理迁移1.1 物理迁移 一、mysql数据物理迁移 1.1 物理迁移 速度快&#xff0c;需要停机 进入数据库&#xff0c;查看数据存放位置&#xff1a; select datadir; 一般默认存放在/var/lib/mysql 停机数据库&#xff0c;防止有写入数据 systemctl stop …...

构建图像金字塔:探索 OpenCV 的尺度变换技术

构建图像金字塔&#xff1a;探索 OpenCV 的尺度变换技术 引言什么是图像金字塔&#xff1f;为什么需要图像金字塔&#xff1f;构建高斯金字塔构建拉普拉斯金字塔图像金字塔的应用示例&#xff1a;在不同尺度下检测图像中的边缘 结论 引言 在计算机视觉领域&#xff0c;图像金字…...

ios app开发环境搭建

Xcode是Apple iOS的应用市场app store移动应用的开发工具&#xff0c;支持不同设备、不同应用场景的开发&#xff0c;本文主要描述xcode开发工具开发环境的搭建。 如上所示&#xff0c;在macos中&#xff0c;使用app store安装xcode开发工具 如上所示&#xff0c;在macos中&…...

mysql面试题45:读写分离常见方案、哪些中间件可以实现读写分离

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:说一说你知道的读写分离常见方案 读写分离是一种常见的数据库架构方案,旨在分担数据库的读写压力,提高系统的性能和可扩展性。以下是两种常见的…...

【数字IC设计】DC自动添加门控时钟

简介 数字电路的动态功耗主要是由于寄存器翻转带来的&#xff0c;为了降低芯片内部功耗&#xff0c;门控时钟的方案应运而生。作为低功耗设计的一种方法&#xff0c;门控时钟是指在数据无效时将寄存器的时钟关闭&#xff0c;以此来降低动态功耗。 在下图中&#xff0c;展示了…...

前端开发工具vscode

一、下载安装 https://code.visualstudio.com/ 二、安装插件 三、使用 ①、创建一个空目录 ②、利用vscode工具打开该目录 ③、将该目录设置为工作区 在工作区中添加文件&#xff0c;还可以进行浏览器访问&#xff08;提前安装了Live Server插件&#xff09; 为工具…...

网络基础2(1)

HTTP 1.应用层协议2.send和recv单独使用不安全3.URL4.urlencode和urldecode5.HTTP协议格式6.HTTP中的常见请求方法POST&&GET7.HTTP的状态码8.HTTP常见Header &#x1f31f;&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f;&#x1f31f; &#x1f6…...

系统文件IO、文件描述符fd、重定向、文件系统、动态库和静态库

目录 C文件接口系统文件I/O系统调用和库函数文件描述符0 & 1 & 2FILE和fd的关系文件描述符的分配规则 重定向重定向的本质输出重定向输入重定向追加重定向 dup2函数 FILE理解文件系统了解磁盘的物理结构逻辑抽象文件系统文件系统的图解和解析通过文件系统来理解ls -al通…...

一、K8S第一步搭建

一、初始化操作 1.1、关闭防火墙 systemctl stop firewalld systemctl disable firewalld关闭交换空间 swapoff -a # 临时 sed -ri s/.*swap.*/#&/ /etc/fstab # 永久重启才能生效 根据规划设置主机名 hostnamectl set-hostname <hostname>映射主机 cat >>…...

pwnable-1-fd

pwn的学习周期确实比较长&#xff0c;需要的前置内容也很多&#xff0c;了解到第一题还算比较简单的&#xff0c;那就先来体验一波~顺带附一波网站链接:&#x1f449;网站链接 题目 WP 最后一行给出了ssh链接方式&#xff0c;那就先连接一波 第一次连接会有第四行的询问&…...

队列的实现(c语言)

队列也是线性表&#xff0c;也是分为两种的&#xff1a;1、顺序队列 2、链队列 顺序队列 #include <stdio.h> #include <stdlib.h>typedef struct {char *base;int front;int erer;int size; }SqQueue;void initSqQueue(SqQueue *queue,int size){queue->base…...

雷电模拟器上使用第一个frida(五)用python实现逆向分析并模拟登陆

上篇通过hook确定了登录代码的位置&#xff0c;参考雷电模拟器上使用第一个frida&#xff08;四&#xff09;第一个HOOK之抓包-CSDN博客 接下来逆向分析一下&#xff0c;并用python实现其功能&#xff0c;并模拟登陆。...

基于Linux上MySQL8.*版本的安装-参考官网

本地hadoop环境安装好,并安装好mysql mysql下载地址及选择包 MySQL :: Download MyS的QL Community Server (Archived Versions) mysql安装步骤 下载与上传解压给权限 #mysql安装包上传到/opt下 cd /usr/local/ #解压到此目录 tar -xvf /opt/mysql-8.0.33-linux-glibc2.12-…...

大数据环境下数据仓库的自动化运维实践

大数据环境下数据仓库的自动化运维实践 关键词:大数据、数据仓库、自动化运维、实践、效率提升 摘要:本文围绕大数据环境下数据仓库的自动化运维实践展开。首先介绍了大数据环境和数据仓库自动化运维的背景知识,接着详细解释了相关核心概念及其关系,阐述了自动化运维的核心…...

C1083编译错误:解决‘xxx.h‘文件缺失问题的实战指南

1. 遇到C1083编译错误时的心态调整 第一次看到"C1083 无法打开包括文件: xxx.h: No such file or directory"这个错误提示时&#xff0c;我正熬夜赶一个Qt界面开发项目。当时整个人都懵了&#xff0c;明明昨天还能正常编译的代码&#xff0c;怎么突然就报错了&#x…...

Zotero 7保姆级配置指南:从PC到安卓平板,用坚果云实现文献无缝同步

Zotero 7跨设备文献管理终极方案&#xff1a;Windows与安卓全链路同步实战 作为一名长期与文献打交道的科研工作者&#xff0c;最痛苦的莫过于在实验室电脑上精心整理的参考文献&#xff0c;回到家中平板上却无法查阅。这种割裂感我深有体会——直到发现Zotero 7与坚果云的组合…...

5分钟快速上手:使用pose-search实现智能人体姿态检测与搜索

5分钟快速上手&#xff1a;使用pose-search实现智能人体姿态检测与搜索 【免费下载链接】pose-search x6ud.github.io/pose-search 项目地址: https://gitcode.com/gh_mirrors/po/pose-search 你是否曾想过&#xff0c;如何让计算机像人类一样理解人体动作&#xff1f;&…...

避坑指南:Ubuntu 22.04安装PyTorch时,关于CUDA版本和驱动那些最容易踩的雷

避坑指南&#xff1a;Ubuntu 22.04安装PyTorch时&#xff0c;关于CUDA版本和驱动那些最容易踩的雷 如果你正在Ubuntu 22.04上搭建PyTorch开发环境&#xff0c;很可能已经遇到了几个令人困惑的问题&#xff1a;为什么nvidia-smi和nvcc -V显示的CUDA版本不一致&#xff1f;为什么…...

Visual C++运行库AIO解决方案:技术赋能Windows应用程序兼容性管理

Visual C运行库AIO解决方案&#xff1a;技术赋能Windows应用程序兼容性管理 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 在Windows生态系统中&#xff0c;Vis…...

GWAS 实战指南:基因型数据格式转换工具全解析

1. 基因型数据格式入门&#xff1a;从VCF到BED的全面解析 做GWAS分析就像玩拼图游戏&#xff0c;而基因型数据格式就是那些形状各异的拼图块。我刚入门时最头疼的就是各种数据格式的转换&#xff0c;直到在实验室熬了三个通宵才摸清门道。现在我就把这些年踩过的坑和总结的经验…...

别再手动敲命令了!用Docker Compose一键部署Nacos 2.4.2,附MySQL持久化配置

告别繁琐命令&#xff1a;Docker Compose全栈部署Nacos 2.4.2与MySQL的最佳实践 在微服务架构的浪潮中&#xff0c;服务发现与配置管理已成为现代应用不可或缺的基础设施。Nacos作为阿里巴巴开源的服务注册与配置中心&#xff0c;凭借其轻量级、高可用的特性&#xff0c;正逐步…...

小米平板5 Windows驱动包:让Windows在平板上流畅运行的终极指南

小米平板5 Windows驱动包&#xff1a;让Windows在平板上流畅运行的终极指南 【免费下载链接】MiPad5-Drivers Based on Surface Duo Drivers. 项目地址: https://gitcode.com/gh_mirrors/mi/MiPad5-Drivers 想要在小米平板5上完美运行Windows系统吗&#xff1f;MiPad5-D…...

如何快速进行.NET Core安全审计:10个关键漏洞扫描技巧

如何快速进行.NET Core安全审计&#xff1a;10个关键漏洞扫描技巧 【免费下载链接】core dotnet/core: 是 .NET Core 的官方仓库&#xff0c;包括 .NET Core 运行时、库和工具。适合对 .NET Core、跨平台开发和想要使用 .NET Core 进行跨平台开发的开发者。 项目地址: https:…...