Git常用命令用法
参考视频:真的是全能保姆
git、github 保姆级教程入门,工作和协作必备技术,github提交pr - pull request_哔哩哔哩_bilibili
1.Git初始化
首先设置名称和邮箱。然后初始化一下,然后就创建了一个空的Git仓库。
PS D:\golang\otherProjects\ginchat> git version
git version 2.42.0.windows.1
PS D:\golang\otherProjects\ginchat> git config --global user.name "Orange"
PS D:\golang\otherProjects\ginchat> git config --global user.email "xxxxx@qq.com"
PS D:\golang\otherProjects\ginchat> git config
PS D:\golang\otherProjects\ginchat> git init
Initialized empty Git repository in D:/golang/otherProjects/ginchat/.git/
可以在当前项目目录里发现一个隐藏文件夹.git,这个文件里保存项目的每个版本和变化
2.Git暂存、提交、日志
1)第一版本
git提交到暂存区
git add + 想存储的文件
git add . //存储当前目录所有文件
2)
git提交,之后会出现vim编辑器编写文件说明,此处是linux命令常规操作
git commit
如果在命令行编辑,遵守vim规范。如果在vscode编辑,编辑完关闭即可。随后就自动开始提交过程。
3)
git log查看提交日志信息,此时完成了一个版本的提交
PS D:\golang\otherProjects\ginchat> git log
commit 078d952815dcec6a0c25e668ad1f5ad72ddb6874 (HEAD -> master)
Author: Orange <xxxx@qq.com>
Date: Tue Sep 5 03:03:19 2023 +0800版本v0.1,第一次提交
PS D:\golang\otherProjects\ginchat>
4)第二版本
vscode版本新增文件显示绿色
修改一个文件会显示橙色M
5)第二次提交
第二次暂存和提交。用-m + 说明的形式可以直接代替上面的vim文档说明编写。
PS D:\golang\otherProjects\ginchat> git add .
PS D:\golang\otherProjects\ginchat> git commit -m "v0.2第二次提交"
[master a1a2abf] v0.2第二次提交1 file changed, 1 insertion(+), 1 deletion(-)
git log查看
PS D:\golang\otherProjects\ginchat> git log
commit a1a2abf9894af11d40fcc5dc76775e0c793c8f30 (HEAD -> master)
Author: Orange <xxx@qq.com>
Date: Tue Sep 5 03:13:00 2023 +0800v0.2第二次提交commit 078d952815dcec6a0c25e668ad1f5ad72ddb6874
Author: Orange <xxx@qq.com>
Date: Tue Sep 5 03:03:19 2023 +0800
:
6)第三次提交
一般编写说明按照如下的规范来写
写明修正了什么文件,修改了什么内容
git commit -m "fix(version):change content"
PS D:\golang\otherProjects\ginchat> git add .
warning: in the working copy of 'gitLog', LF will be replaced by CRLF the next time Git touches it
PS D:\golang\otherProjects\ginchat> git commit -m "fix(version):change content"
[master 305c688] fix(version):change content1 file changed, 11 insertions(+)create mode 100644 gitLog
7)
vscode自带版本控制,左侧工具栏可以看到当前版本和上一版本对比。
点击勾号可以直接暂存和提交
3.回退版本并清空之后版本
回退版本,版本id可以在日志里看
git reset --hard + 版本id
回退之后项目变成当时版本,并且之后的日志都清空了,相当于回到那个时间点。
PS D:\golang\otherProjects\ginchat> git reset --hard 305c688213cd0321c23112e48fba0ffb8da566c3
HEAD is now at 305c688 fix(version):change content
4.切换版本和分支,不会清除其他版本
创建分支,有点像数据结构的树,加一个分支
git branch + 版本号
PS D:\golang\otherProjects\ginchat> git branch 0.3
PS D:\golang\otherProjects\ginchat> git branch 0.4
查看分支和切换分支,master是主支,其他是分支
PS D:\golang\otherProjects\ginchat> git branch -a 0.30.4
* master
PS D:\golang\otherProjects\ginchat> git checkout 0.3
Switched to branch '0.3'
M version.txt
PS D:\golang\otherProjects\ginchat> git checkout master
Switched to branch 'master'
M version.txt
5.合并分支
把分支版本合并到主版本,如图,每个人用一个分支版本开发自己的功能,最后老板把五个版本一合并就获得所有功能。
git merge +版本号
PS D:\golang\otherProjects\ginchat> git merge 0.3
Already up to date.
所以为了方便团队开发和版本合并,就会建立服务器作为git仓库
6.上传到Github
git push 命令 | 菜鸟教程 (runoob.com)
echo "# Ginchat" >> README.md
git init
git add README.md
git commit -m "first commit"
git branch -M main //创建main分支,并设为主枝
git remote add origin https://github.com/BigBigOrangeSama/Ginchat.git //添加远程仓库地址设代号为origin
git push -u origin main //把项目上传到github的仓库里
//然后会让你输入账号密码
上传结果:上传成功,到github上查看
PS D:\golang\otherProjects\ginchat> git push -u origin master
info: please complete authentication in your browser...
Enumerating objects: 1260, done.
Counting objects: 100% (1260/1260), done.
Delta compression using up to 16 threads
Compressing objects: 100% (1228/1228), done.
Writing objects: 100% (1260/1260), 79.44 MiB | 2.88 MiB/s, done.
Total 1260 (delta 153), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (153/153), done.
To https://github.com/BigBigOrangeSama/Ginchat.git* [new branch] master -> master
branch 'master' set up to track 'origin/master'.
7.项目克隆到本地
1)自己仓库下载到本地
如果你要参与某人的开源项目,把他的项目fork到自己的仓库,然后复制项目http链接。
用vscode打开一个空文件夹,在这个文件夹下的终端使用git clone命令
git clone + 项目http链接 + . 点代表当前文件夹
PS D:\golang\otherProjects\Git-demo> git clone https://github.com/BigBigOrangeSama/Git-demo.git .
Cloning into '.'...
remote: Enumerating objects: 1632, done.
remote: Counting objects: 100% (466/466), done.
remote: Compressing objects: 100% (276/276), done.
remote: Total 1632 (delta 207), reused 288 (delta 175), pack-reused 1166
Receiving objects: 100% (1632/1632), 284.21 KiB | 973.00 KiB/s, done.
Resolving deltas: 100% (439/439), done.
2)加入别人的仓库链接
做别人的项目的时候加入上游代码库http链接
PS D:\golang\otherProjects\Git-demo> git remote add upstream https://github.com/midorg-com/re01.git
PS D:\golang\otherProjects\Git-demo> git remote -v
origin https://github.com/BigBigOrangeSama/Git-demo.git (fetch)
origin https://github.com/BigBigOrangeSama/Git-demo.git (push)
upstream https://github.com/midorg-com/re01.git (fetch)
upstream https://github.com/midorg-com/re01.git (push)
创建一个分支,然后随便写一点东西,然后add和commit
然后提交到自己fork的那个仓库里去
PS D:\golang\otherProjects\Git-demo> git checkout -b tx
Switched to a new branch 'tx'
PS D:\golang\otherProjects\Git-demo> git add .
PS D:\golang\otherProjects\Git-demo> git commit -m "add(test)"
On branch tx
nothing to commit, working tree clean
PS D:\golang\otherProjects\Git-demo> git add .
PS D:\golang\otherProjects\Git-demo> git commit -m "add(1111):xxxx"
[tx 617a1e7] add(1111):xxxx1 file changed, 3 insertions(+)create mode 100644 members/1111.jsonPS D:\golang\otherProjects\Git-demo> git remote -v
origin https://github.com/BigBigOrangeSama/Git-demo.git (fetch)
origin https://github.com/BigBigOrangeSama/Git-demo.git (push)
upstream https://github.com/midorg-com/re01.git (fetch)
upstream https://github.com/midorg-com/re01.git (push)
上传到仓库
PS D:\golang\otherProjects\Git-demo> git push origin tx
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 16 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 365 bytes | 365.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'tx' on GitHub by visiting:
remote: https://github.com/BigBigOrangeSama/Git-demo/pull/new/tx
remote:
To https://github.com/BigBigOrangeSama/Git-demo.git* [new branch] tx -> tx
3)合并
点击PR拉取请求
创建拉取请求,让项目主人把你修改的分支合并到主枝里去。显示able to merge就是可以提交
然后写上修改信息提交即可,等待项目主人合并
4)如果显示不能pr()
没有这个able to merge
可能是这段时间开源项目已经commit过了,导致版本不一致,需要你更新合并最新upstream链接,然后再提交。
git fetch upstream
git merge 最新分支
git push
PS D:\golang\otherProjects\Git-demo> git fetch upstream
From https://github.com/midorg-com/re01* [new branch] main -> upstream/main
PS D:\golang\otherProjects\Git-demo> git merge upstream/main
Already up to date.
PS D:\golang\otherProjects\Git-demo> git push xxxxxxx xxxx
相关文章:

Git常用命令用法
参考视频:真的是全能保姆 git、github 保姆级教程入门,工作和协作必备技术,github提交pr - pull request_哔哩哔哩_bilibili 1.Git初始化 首先设置名称和邮箱。然后初始化一下,然后就创建了一个空的Git仓库。 PS D:\golang\oth…...

电子元器件采购的数字化转型:智能采购工具的应用
电子元器件采购的数字化转型是采购领域的一项重要趋势,智能采购工具的应用在此过程中发挥了关键作用。以下是智能采购工具在电子元器件采购数字化转型中的应用方面的一些关键点: 供应链可见性: 智能采购工具可以提供对供应链的实时可见性。通…...

【RuoYi移动端】uni-app中通过vuex的store来实现全局变量的修改和读取
一、在store文件中新建csjVar.js文件 const csjVar {csjMess: [{aaa:"ok"},{bbb:"no"}] } export default csjVar 二、修改store文件中新建index.js文件 import Vue from vue import Vuex from vuex import user from /store/modules/user import gette…...

IPv6改造深化之路
01 IPv6改造问题及整体改造思路 随着“十四五”期间国家政策对IPv6深化改造及规模部署的推动,在IPv6改造过程中出现了越来越多的系统性问题,如图1所示。 图1 关于IPv6改造的各种疑问所有跨设备通信的IT软硬件系统均需要处理IP地址,各领域均需…...
atoi(),isdigit(),isspace(),round()源码
atoi()是一个C标准库函数,用于将字符串转换为对应的整数。 以下是atoi()函数的一种简化版本的示例实现: int atoi(const char* str) {int result 0;int sign 1;int i 0;// 处理空格while (isspace(str[i])) {i;}// 处理正负号if (str[i] - || str[…...
C# 播放音频文件(播放提示音)
使用SoundPlayer播放声音 System.Media名称空间下的类SoundPlayer 可以让我们很方便的播放wav波形声音文件。SoundPlayer类其实就是对winmm.dll文件中API函数的封装。 首先引入命名空间: using System.Media; SoundPlayer player new SoundPlayer(); player.Sou…...

一种编程语言,
前言:相信看到这篇文章的小伙伴都或多或少有一些编程基础,懂得一些linux的基本命令了吧,本篇文章将带领大家服务器如何部署一个使用django框架开发的一个网站进行云服务器端的部署。 文章使用到的的工具 Python:一种编程语言&…...
云原生Kubernetes:K8S常用服务端口
目录 一、理论 1.K8S常用服务端口号 一、理论 1.K8S常用服务端口号 (1)K8S集群 表1 K8S集群端口 协议端口号K8S集群TCP22使用主机驱动通过SSH进行节点配置TCP53集群DNS服务UDP53集群DNS服务TCP2376主机驱动与Docker守护进程通信的TLS端口TCP2379et…...
clickhouse调优配置
一、官方文档地址 clickhouse的配置项主要在 config.xml 或 users.xml 中, 基本上都在 users.xml 里 config.xml https://clickhouse.tech/docs/en/operations/server-configuration-parameters/settings/ users.xml https://clickhouse.tech/docs/en/operatio…...

pdf文件打开后部分文字无法显示
场景:pdf文件在系统内预览正常,但是下载到本地电脑上,使用wps查看,部分标题会消失,只有标题里面的数字还能显示出来 经过一系列排查,发现查看的电脑上缺失了字体,使用wps查看时,缺失…...

MCS-51单片机温度控制系统的设计
一、项目介绍 注塑机是一种常用的制造设备,用于生产塑料制品。在注塑机的工作过程中,溶胶必须达到一定的温度才能被注入模具中进行成型。因此,在注塑机的生产过程中,温度控制是非常重要的一环。 本项目基于MCS-51单片机设计了一…...

Xcode,swift:Error Domain=kCLErrorDomain Code=1 (null)问题解决
问题描述: iOS开发时,当使用用户的位置权限时,获取用户经纬度报错:Error DomainkCLErrorDomain Code1 "(null)",错误域kCLError域代码1“(null)” 解决方法: 打开模拟机的设置-通用-语言与地区 将地区设置为中国(如果你的开发位置在中国的话) 点击左上方Features,选择…...

0013Java程序设计-springboot教材图文内容审核系统
摘 要目 录第1章 绪论1.1 研究背景与意义1.2 研究内容1.3 论文组成结构 系统实现用户登录模块的实现后台管理系统登录模块的实现投稿信息的实现 开发环境 摘 要 《教材图文内容审核系统》课程案例库研究系统系统主要功能模块包括投稿信息、打卡记录、新闻资讯等,采…...

Unable to remove Temporary User Data
错误截图 原因 项目的临时数据目录是存在了未授权的盘符,当删除它的时候,遇到了权限问题,没有权限没法删除。 解决方法 增加字段:userDataDir 解决...

Rocky(Centos)安装中文字体(防止中文乱码)
1、查看字体列表 运行下列命令 fc-list 若出现,下面截图,则需要安装字体管理软件 安装字体库,运行: yum -y install fontconfig 当看到下图的提示信息时说明已安装成功: 二、添加中文字体 1)window…...

O2OA(翱途)开发平台 V8.1正式发布
尊敬的O2OA(翱途)平台合作伙伴、用户以及亲爱的开发小伙伴们,平台 V8.1版本已正式发布。正值8月的最后一周,我们以更安全、更高效、更好用的崭新面貌迎接9月的到来。 O2OA开发平台v8.1版本更注重于对系统级别的安全防护。其中重大的更新,是对…...

差异化竞争阵地的所在【周技术进阶】-从BS 项目C#最基础截取字符串方法开始
效果 代码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleAppNumberOneHelloWorld {class Program{static void Main(string[] args){Console.WriteLine("hello world…...
docker安装在linux下的docker安装操作步骤完整版
参考文档:http://wed.xjx100.cn/news/151901.html?actiononClick 第一步,卸载历史版本。这一步是可选的,如果之前安装过旧版本的Docker,可以使用如下命令进行卸载: yum remove docker \docker-client \docker-client…...

elasticsearch的搜索补全提示
当用户在搜索框输入字符时,我们应该提示出与该字符有关的搜索项 拼音分词器 下载 要实现根据字母做补全,就必须对文档按照拼音分词,GitHub上有拼音分词插件 GitHub - medcl/elasticsearch-analysis-pinyin: This Pinyin Analysis plugin…...

AJAX学习笔记7 AJAX实现省市联动
需求:网页上选择对应省份之后,动态的关联出该省份对应的市.选择对应的市之后,动态的关联出该市对应的区 关于省市区全国三级Mysql数据:全国省市区三级地区MySQL数据_biubiubiu0706的博客-CSDN博客 页面加载完毕显示所有省份 <!DOCTYPE html> <html lang&…...

JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
conda相比python好处
Conda 作为 Python 的环境和包管理工具,相比原生 Python 生态(如 pip 虚拟环境)有许多独特优势,尤其在多项目管理、依赖处理和跨平台兼容性等方面表现更优。以下是 Conda 的核心好处: 一、一站式环境管理:…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合
强化学习(Reinforcement Learning, RL)是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程,然后使用强化学习的Actor-Critic机制(中文译作“知行互动”机制),逐步迭代求解…...

2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
数据库分批入库
今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
稳定币的深度剖析与展望
一、引言 在当今数字化浪潮席卷全球的时代,加密货币作为一种新兴的金融现象,正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而,加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下,稳定…...