【git】git常用命令总结

目录

一、流程

二、基本流程命令(从初始化到推送到远程仓库)

三、分支相关命令

 四、提交代码

 五、拉取主分支最新代码

六、合并远程仓库主分支代码到分支

七、撤销回退


一、流程

 workspace 工作区,就是你的编辑器打开的文件

 staging area 暂存区 介于工作区和本地仓库之间暂时存放代码的地方

 local repository 本地仓库

 remote repository 远程仓库

 git中的代码,整个流程如上图所视。

流程:git clone 克隆远程仓库地址到本地  \rightarrow  通过代码编辑器编辑代码  \rightarrow  git pull 拉取分支的最新代码,防止代码冲突  \rightarrow  git add 添加到暂存区  \rightarrow  git commit 提交到本地仓库  \rightarrow  git push 推送到远程仓库。

二、基本流程命令(从初始化到推送到远程仓库)

git init                    // 如果需要新建一个 git 仓库
git clone url               // 克隆远端文件 url 远程仓库的地址
git checkout branchName     // 切换git分支,branchName 分支名称
git pull                    // 假设你已经在现在的分支上修改了东西要提交,pull 拉下该分支最新的远程代码,一块提交,不然有可能会把别人已经推送到这个分支的东西搞没了(会被骂)
git add filePath            // 单个文件添加到暂存区, filePath 单个文件路径
git add . // . 代表全部,全部添加到暂存区
git commit -m '描述内容'    // 推送到本地仓库,并写上备注(改了啥东西)
git push origin branchName  // branchName 远程分支名,推送到远程分支

三、分支相关命令

当我们在团队开发时,有可能会遇到代码冲突、覆盖代码的问题。所以多人开发时,代码最好先传到自己的分支里,可以有效避免代码冲突。

//增加本地分支
git branch newBranch      // 新建本地分支 newBranch为分支名

//新增远程分支以及却换分支
git branch newBranch      // 新建本地分支 newBranch为分支名
git push origin newBranch // 把新建的本地分支推送到远程 
git checkout branchName   // 切换本地分支
git fetch                 // 如果在远程创建了新分支,本地可以通过git fetch 来获取最新的远程分支

//删除分支
git branch -D branchName                // 强制删除本地指定分支
3.2 git branch -d branchName            // 删除本地分支   会检查有没有和上游分支 合并
3.3 git push origin --delete branchName // 删除远程分支

//查看分支
git branch    //查看所有本地分支
git branch -r //查看所有远程分支
git branch -a //查看所有远程和本地分支

//合并分支
git merge branchName // 合并本地branchName到当前分支

 四、提交代码

git pull 拉取分支的最新代码,防止代码冲突  \rightarrow  git add 添加到暂存区  \rightarrow  git commit 提交到本地仓库  \rightarrow  git push 推送到远程仓库。

git add .                      // . 代表全部,全部添加到暂存区
git commit -m '描述内容'       // 推送到本地仓库,并写上备注
git push origin branchName     // branchName 远程分支名,推送到远程分支

 五、拉取主分支最新代码

git check branchName 切换到远程仓库主分支  \rightarrow  git pull 拉取远程仓库主分支代码

git checkout branchName    // 切换分支,branchName 分支名称
git pull                   // 拉取该分支最新代码

六、合并远程仓库主分支代码到分支

切换回自己的分支,合并远程仓库主分支代码到自己的分支,为了避免代码冲突,可以在合并完之后再提交一遍

git checkout branch //切换本地分支
git merge branchName //合并

//避免代码冲突
git add .                      // . 代表全部,全部添加到暂存区
git commit -m '描述内容'       // 推送到本地仓库,并写上备注
git push origin branchName     // branchName 远程分支名,推送到远程分支

七、撤销回退

//撤销工作区的更改
git checkout -- filePath // 撤销工作区指定文件的更改,filePath,文件路径都可通过 git status查看
git checkout . // 撤销工作区所有更改

//撤销暂存区的更改
git reset HEAD filePath // 撤销上次add指定的文件更改
git reset HEAD . // 撤销上次add的全部更改

//回退本地仓库
git reset --hard HEAD^ //  回退到上次commit状态
git reset --hard commit-id // 回退到指定的commit,commit-id可通过git log 查看

//完整的回退仓库操作
git branch newBranch // 本地创建新的分支,备份,防止回退有问题
git reset --hard commit-id // 重置到指定的commit提交,重置到改提交后,后面的提交记录会去除
git push -f origin branchName // 强制推送到远端

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【uniapp】uniapp打包H5(网页端):

文章目录 一、设置appid:二、设置router:三、打包:【1】[CLI 发行uni-app到H5:https://hx.dcloud.net.cn/cli/publish-h5](https://hx.dcloud.net.cn/cli/publish-h5)【2】HBuilderX 四、最终效果: 一、设置appid&…

Jupyter Notebook 未授权访问远程命令执行漏洞

漏洞描述 Jupyter是一个开源的交互式计算环境,它支持多种编程语言,包括Python、R、Julia等。Jupyter的名称来源于三种编程语言的缩写:Ju(lia)、Py(thon)和R。 Jupyter的主要特点是它以笔记本(Notebook)的形式组织代码…

lancet: 【推荐】--源码学习

一个全面、高效、可复用的go语言工具函数库; 可以学习源码的好的地方,这个是个工具库,建议最好的办法是 在项目中导入后,然后查看他的各个源代码进行学习使用 golangd中,查看导入包以及他的源代码; 中文…

【腾讯云 Cloud Studio 实战训练营】用于编写、运行和调试代码的云 IDE泰裤辣

文章目录 一、引言✉️二、什么是腾讯云 Cloud Studio🔍三、Cloud Studio优点和功能🌈四、Cloud Studio初体验(注册篇)🎆五、Cloud Studio实战演练(实战篇)🔬1. 初始化工作空间2. 安…

问道管理:信创概念走势活跃,恒银科技斩获四连板

信创概念9日盘中走势活泼,截至发稿,新晨科技、竞业达、恒银科技等涨停,宇信科技涨近10%,中孚信息涨近9%,华是科技、神州数码涨超7%。 新晨科技今天“20cm”涨停,公司昨日晚间公告,近来收到投标代…

Linux简介及基础操作

简介: 1、linux和windows都是操作系统,多任务,多用户,多线程… Linux免费使用,自由传播,开源 2、Linux 发行版(都是基于linux内核穿的外套) Ubuntu——嵌入式开发 fedora——早期嵌入…

使用 `nmcli` 在 CentOS 8 上添加永久路由

CentOS 8 使用 NetworkManager 作为默认的网络管理工具,因此我们可以使用 nmcli 工具来实现相同的目标。使用 nmcli 可以更加直观地管理路由,并且更符合 CentOS 8 的默认网络管理方式。 以下是使用 nmcli 在 CentOS 8 上添加永久路由的步骤:…

JDBC学习笔记

1 JDBC简介 1.1 前言 当谈论JDBC时,我们可以将其看作是一种用于Java程序与数据库进行通信的方式。如果你想编写一个Java程序,并且希望能够连接到数据 库、执行查询或更新数据,JDBC就是你需要的工具。 JDBC提供了一组类和接口,…

c++ boost circular_buffer

boost库中的 circular_buffer顾名思义是一个循环缓冲器,其 capcity是固定的当容量满了以后,插入一个元素时,会在容器的开头或结尾处删除一个元素。 circular_buffer为了效率考虑,使用了连续内存块保存元素 使用固定内存&#x…

pdf怎么拆分成一页一页?了解这几招就够了

pdf怎么拆分成一页一页?PDF文件是一种通用的文件格式,它可以保留文档的原始格式和内容。然而,有时候我们需要将一个PDF文件拆分成一页一页的单独文件,比如需要将一份报告分发给不同的人员,或者需要将PDF文件的某些页面…

leetcode 399-除法求值

法一:并查集 分析示例1: a / b 2.0 a/ b 2.0 a/b2.0,说明 a 2 b a2b a2b, a a a和 b b b在同一个集合中 b / c 3.0 b/c3.0 b/c3.0,说明 b 3 c b3c b3c, b b b和 c c c在同一个集合中 求 a / c a/…

PyCharm新手入门指南

安装好Pycharm后,就可以开始编写第一个函数:Hello World啦~我们就先来学习一些基本的操作,主要包含新建Python文件,运行代码,查看结果等等。 文章主要包含五个部分: 一、界面介绍 主要分为菜单栏、项目目录…

初阶C语言-操作符详解(下)

🌞 “等春风得意,等时间嘉许!” 接下来,我们把操作符没学完的继续学完! 操作符详解 6.2sizeof和数组 7.关系操作符8.逻辑操作符9.条件操作符10.逗号表达式11.下标引用、函数调用和结构成员12.表达式求值12.1隐式类型转…

一次面试下来Android Framework 层的源码就问了4轮

说起字节跳动的这次面试经历,真的是现在都让我感觉背脊发凉,简直被面试官折磨的太难受了。虽然已经工作了七年,但是也只是纯粹的在写业务,对底层并没有一个很深的认识,这次面试经历直接的让我感受到我和那些一线大厂开…

测评HTTP代理的透明匿名?

在我们日常的网络冒险中,你是否曾听说过HTTP代理的透明匿名特性?这些神秘的工具就像是网络世界中的隐身斗士,让我们能够在互联网的迷雾中保护自己的身份和隐私。那么,让我们一起揭开HTTP代理的面纱,探索其中的奥秘吧&a…

【学习日记】【FreeRTOS】任务句柄、任务控制块TCB、任务栈、任务、就绪表详解

写在前面 本文是对FreeRTOS中任务句柄、任务控制块TCB、任务栈、任务、就绪表详解。 一、裸机和RTOS中函数存储位置详解 左图为裸机开发时 RAM 的使用情况,右图是使用了 FreeRTOS 后 RAM 的使用情况(图片来自野火)。 无论是裸机开发还是Fr…

【Rust】Rust学习 第四章认识所有权

第四章认识所有权 所有权(系统)是 Rust 最为与众不同的特性,它让 Rust 无需垃圾回收(garbage collector)即可保障内存安全。因此,理解 Rust 中所有权如何工作是十分重要的。 4.1 所有权 所有运行的程序都…

python-02(入门基础篇2——基本常见语法)

python-02(入门基础篇2——基本常见语法) 1. 逻辑判断词1.1 布尔类型1.1.1 python为False的情况 1.2 逻辑判断词 not 2. for 语句2.1 语法结构2.2 例子2.2.1 例子1——循环迭代字符串2.2.2 例子2——进行数值循环2.2.2.1 简单循环(结合range函…

Kafka入门,保姆级教学

文章目录 Kafka概念消息中间件对比消息中间件对比-选择建议Kafka常用名词介绍Kafka入门1. Kafka安装配置2.Kafka生产者与消费者关系3.Kafka依赖4.生产者发消息5.消费者接受消息6.Kafka高可用性设计6.1集群Kafka备份机制(Reolication) 7.kafka生产者详解7.1 发送类型7.2参数详解…

ChatGPT已闯入学术界,Elsevier推出AI工具

2022年11月,OpenAI公司发布了ChatGPT,这是迄今为止人工智能在现实世界中最重要的应用之一。 当前,互联网搜索引擎中出现了越来越多的人工智能(AI)聊天机器人,例如谷歌的Bard和微软的Bing,看起来…