Git常用命令用法

news2024/11/29 7:58:45

参考视频:真的是全能保姆

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

    v0.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 content
 1 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.3
  0.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):xxxx
 1 file changed, 3 insertions(+)
 create mode 100644 members/1111.json

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)

上传到仓库

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/975544.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手机word怎么转pdf?这几种方法很简单

手机word怎么转pdf&#xff1f;将word文档转换为PDF文件&#xff0c;在很多场合都非常有用。比如&#xff0c;你可能需要在公司或学校中分享一份重要的文档&#xff0c;或者你想将一份简历或报告以PDF格式发送给招聘人员或老师。无论是哪种情况&#xff0c;将word文档转换为PDF…

Nginx一主一从配置Keepalive

文章目录 机器规划监控Nginx进程安装配置Keepalive验证高可用性 机器规划 主机vip内网ipNginx1192.168.xxx.xx192.168.xxx.abNginx2192.168.xxx.xx192.168.xxx.cd 监控Nginx进程 Nginx监控脚本&#xff0c;监控nginx&#xff0c;如果nginx停了&#xff0c;那么杀掉keepalive…

性能强悍价格到位,老牌NAS也玩性价比

前几天看到站内爆料铁威马的优惠信息&#xff0c;搭载 N5095 的 F4-423 到手不到 1900&#xff0c;一看之下着实有些心动&#xff0c;说起来我折腾了这么多 NAS&#xff0c;铁威马还真没试过。稍作思考直接下单&#xff0c;毕竟能够存在这么多年的 NAS 品牌&#xff0c;没点自己…

Java I/O模型发展以及Netty网络模型的设计思想

Java I/O模型发展以及Netty网络模型的设计思想 I/O模型Java BIOJava NIOJava AIO NIO Reactor网络模型单Reactor单线程模型单Reactor多线程模型主从Reactor多线程模型 Netty通信框架 前言&#xff1a; BIO、NIO的代码实践参考&#xff1a;Java分别用BIO、NIO实现简单的客户端服…

Redis Redis介绍、安装 - Redis客户端

目录 redis是什么&#xff0c;他的应用场景是什么&#xff1f; Redis的一些主要特点和应用场景&#xff1a; redis的官方网站&#xff1a;Redis redis是键值型数据库&#xff1a;&#xff08;也就是key-value模式&#xff09;&#xff08;跟python的字典很像&#xff09; …

渗透测试漏洞原理之---【SSRF 服务端请求伪造】

文章目录 1、SSRF概述1.1、场景1.1.1、PHP代码实现 1.2、SSRF原理1.3、SSRF危害 2、SSRF攻防2.1、SSRF利用2.1.1、文件访问2.1.2、端口扫描2.1.3、读取本地文件2.1.4、内网应用指纹识别2.1.5、攻击内网Web应用 2.2、SSRF示例2.3、SSRF防御2.3.1、过滤输入2.3.2、过滤输出 3、SS…

【知网检索稳定】第三届社会发展与媒体传播国际学术会议(SDMC 2023)

第三届社会发展与媒体传播国际学术会议&#xff08;SDMC 2023&#xff09; 2023 3rd International Conference on Social Development and Media Communication 第三届社会发展与媒体传播国际学术会议 (SDMC 2023)将于2023年11月03-05日在中国杭州召开。会议主题主要围绕社会…

【紫光同创国产FPGA教程】——【PGL22G第七章】串口收发实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古22K&#xff09; 一&#xff1a;盘古22K开发板&#xff08;紫光同创PGL22G开…

PACS三维医学影像处理系统源码

三维医学图像处理系统&#xff08;PACS&#xff09;源码 系统概述&#xff1a; 影像归档和通信系统PACS集影像存储服务器、影像诊断工作站及RIS报告系统于一身,主要有图像处理模块、影像数据管理模块、RIS报告模块、光盘存档模块、DICOM通讯模块、胶片打印输出等模块组成&…

攻防世界-easychallenge

原题 解题思路 下载下来是一个pyc文件&#xff0c;还是反编译python工具 final就是flag&#xff0c;先经过异或&#xff0c;又经过base32加密。倒过来操作就行。

大数据Hadoop入门之集群的搭建

hadoop的三种运行模式 本地模式:测试本地的hadoop是否能够运行&#xff0c;用来运行官方的代码。伪分布模式:原先有人拿来测试&#xff0c;目前测试都不用这个模式了。完全分布模式&#xff1a;多台服务器组成分布式环境&#xff0c;生产环境使用 分布式主机文件同步命令 sc…

如何调试 C# Emit 生成的动态代码?

首先声明一下&#xff0c;这是一个很深的话题&#xff0c;也是朋友真实遇到的&#xff0c;它用 DynamicMethod ILGenerator 生成了很多动态方法&#xff0c;然而这动态方法中有时候经常会遇到溢出异常&#xff0c;寻求如何调试 动态方法体&#xff0c;我知道如果用 visual stu…

Java---多线程

并发编程 多线程 在同一段时间内一台计算机的内部有多个线程正在运行&#xff0c;一台计算机一次可以处理多个任务。 多线程的优点 提高CPU的利用率&#xff1a;计算机中一个任务的执行不是一直都会使用CPU&#xff0c;也有可能在任务执行的过程中出现缺少资源的情况&#…

骨传导耳机危害有哪些?骨传导耳机值得入手吗?

事实上&#xff0c;只要是正常使用&#xff0c;骨传导耳机并不会对身体造成伤害&#xff0c;并且在众多耳机种类中&#xff0c;骨传导耳机可以说是相对健康的一种耳机&#xff0c;这种耳机最独特的地方便是声波不经过外耳道和鼓膜&#xff0c; 而是直接将人体骨骼结构作为传声介…

mysql、MHA高可用配置即故障切换

MHA概述 一套优秀的MySQL高可用环境下故障切换和主从复制的软件 MHA的出现就是解决MySQL 单点的问题 MySQL故障过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换 MHA能在故障切换的过程中最大程度上保证数据的一致性以达到真正意义上的高可用 MHA的组成&#xff08;核…

智能手机收入和出货量双双下滑,造车成本不断增长,小米集团仍面临风险

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 华尔街分析师对小米集团第二季度的业绩预测 在8月29日小米集团&#xff08;01810&#xff09;公布其2023年第二季度财报之前&#xff0c;华尔街分析师曾预测该公司第二季度的业绩将超出2023年第一季度的业绩。 根据S&P …

SpringBoot2.0(Spring读取配置文件常用方法,打war包在Tomcat中启动)

目录 一&#xff0c;SpringBoot中读取配置文件的常用方法1.1&#xff0c;使用Value读取1.2&#xff0c;使用ConfigurationProperties1.3&#xff0c;使用Environment1.4&#xff0c;自定义配置文件读取 二&#xff0c;SpringBoot部署war项目到tomcat9和启动原理 一&#xff0c;…

RabbitMq消息模型-队列消息

队列消息分为2种&#xff1a; 基本模型&#xff08;SimpleQueue&#xff09;、工作模型&#xff08;WorkQueue&#xff09; 队列消息特点&#xff1a; 消息不会丢失 并且 有先进先出的顺序。消息接收是有顺序的&#xff0c;不是随机的&#xff0c;仅有一个消费者能拿到数据&…

代码随想录算法训练营第五十六天|583. 两个字符串的删除操作、72. 编辑距离、编辑距离总结篇

583. 两个字符串的删除操作 文档讲解 &#xff1a; 代码随想录 - 583. 两个字符串的删除操作 状态&#xff1a;再次回顾。 动态规划五部曲&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][j]&#xff1a;以i-1为结尾的字符串word1&#xff0c;和…

肖特基二极管SBD,SOD-123封装有哪些型号?

肖特基二极管&#xff0c;常用二极管之一&#xff0c;对于电子工程师来说&#xff0c;并不陌生。肖特基二极管&#xff0c;又称肖特基势垒二极管、热载流子二极管&#xff0c;英文Schottky Barrier Diode&#xff0c;缩写SBD&#xff0c;是利用金属-半导体(M-S)接触特性制成&am…