git应用场景(进阶)

Git场景运用-CSDN博客

  • 专有名词
    Workspace:工作区
    Index / Stage:暂存区
    Repository:仓库区(或本地仓库)
    Remote:远程仓库
  • HEAD
    HEAD,指向当前分支最新提交点。所处分支变化,或产生新提交,HEAD跟着变。
  • add、commit
  • branch

展示分支,切换分支,创建分支,删除分支。

git branch列出所有本地分支
git branch -r列出所有远程分支   
git branch -a列出所有本地分支和远程分支
git branch [branch-name]新建分支,留在当前分支
git checkout -b [branch-name]新建分支,切换到该分支
git branch --track [branch][remote-branch]新建分支,与指定远程分支建追踪关系
git checkout [branch-name]切换指定分支,更新工作区
git branch -d [branch-name]删除分支
git push origin --delete [branch-name]删除远程分支
  • merge
    实际开放,从master分支切出一分支,开发完需求,经R3,R4,R5的commit记录,开发完需合入master,用merge。
    git fetch [remote]merge前先拉远程仓最新代码
    git merge [branch]合并指定分支到当前分支

    merge后,会出现conflict,主因两用户修改同文件同区域。如下

  • rebase

     

    rebase又称衍合,合并另种选择。

    开始阶段,处于new分支,执行git rebase dev,新commit在master分支重演一遍,checkout切换回new分支。这点与merge一样,合并前后所处分支并没改变。git rebase dev,通俗解释就是new分支想在dev肩膀继续。rebase也需手动解决冲突。

    rebase与merge区别

    两个分支,test和master,提交如下:

    master执行git merge test,如下:

     

    master执行git rebase test,如下:

    A---B---D---E---C'---F' test, master

    merge生成新节点,之前提交分开显示。而rebase不生成新节点,两分支融合成线性提交。

    想要干净,没merge commit线性历史树,选择git rebase

    想保留完整历史记录,避免重写commit history风险,选择用git merge

  • reset
    reset把当前分支指向另个位置,相应变动工作区和暂存区。

     

    git reset —soft [commit]

    只变提交点,暂存区和工作目录内容都不变

    git reset —mixed [commit]

    变提交点,同时变暂存区内容

    git reset —hard [commit]

    暂存区、工作区内容都修改与提交点一致状态

    git reset --hard HEAD

    工作区回上次提交时状态

  • revert
    git revert用新提交消除历史提交所做任何修改。

    revert与reset区别

    git revert用新commit回滚之前commit,git reset直接删除指定commit。

    回滚效果差不多。日后merge老版本有区别。git revert用逆向commit“中和”之前提交,日后合并老branch,改变不再出现,减少冲突。git reset把commit在某branch上删除,和老branch再次merge,被回滚commit还会被引入,产生冲突。

    git reset 把HEAD向后移动,而git revert是HEAD继续前进,新commit内容和要revert内容正好相反,抵消revert内容。
  • push
    上传本地仓分支到远程仓分支,实现同步。

    git push [remote][branch]

    上传本地指定分支到远程仓库

    git push [remote] --force

    强行推送当前分支到远程仓库,即使有冲突

    git push [remote] --all

    推送所有分支到远程仓库

  • 其他命令

    git status

    显示有变更文件

    git log

    显示当前分支版本历史

    git diff

    显示暂存区和工作区差异

    git diff HEAD

    显示工作区与当前分支最新commit间差异

    git cherry-pick [commit]

    选择commit,合并进当前分支

联系方式

手机:13822161573 微信:txsolarterms QQ:419396409

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

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

相关文章

Open CASCADE学习|旋转变换

物体在三维空间中的旋转变换操作通常可以通过三种不同的方式来表示:矩阵(Matrix)、欧拉角(Euler Angles)和四元数(Quaternion)。下面详细解释这三种表示方法。 矩阵(Matrix&#xf…

centos后台运行使用nohup命令

nohup ./my_script.sh & nohup命令运行后如何关闭 nohup 命令用于在用户注销系统后继续运行指定的命令。如果您想关闭使用 nohup 运行的进程,您可以使用 kill 命令。 首先,您需要找到 nohup 运行的进程的进程ID(PID)。可以使…

【云开发笔记No.21】如何建设中台

这里主要讨论一下中台的建设步骤和组织方法。 随着企业业务的快速发展和数字化转型的深入,中台建设成为众多企业追求高效运营和创新发展的关键一环。中台,作为一个集成了业务、数据和技术的共享服务平台,旨在实现资源的统一管理和高效复用。…

C++的并发世界(八)——lock_guard和unique_lock

1.lock_guard lock_guard是C的stl库中的一种互斥量封装嘞,用于保护共享数据,防止多个线程同时访问同一资源而导致的数据竞争问题。,其包括以下成员函数: 函数名作用lock尝试对互斥量进行加锁,如果当前互斥量已经被其他…

写JDBC遇到的问题

执行会出现以下错误信息 java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ? and loginPwd ? at line 1 at com.mysql.cj.jdbc.exceptions…

Unix Domain Sockets (UDS) 简介

Unix Domain Sockets (UDS) 是一种进程间通信(IPC, Inter-Process Communication)机制,特别适用于在同一台主机操作系统上运行的多个进程之间进行高效的数据交换。它是基于文件系统路径或者匿名内存区域创建的套接字(socket&#…

图书管理系统

❤️❤️前言~🥳🎉🎉🎉 hellohello~,大家好💕💕,这里是E绵绵呀✋✋ ,如果觉得这篇文章还不错的话还请点赞❤️❤️收藏💞 💞 关注💥&a…

sqlalchemy中Datetime的创建时间-修改时间之default|server_default|onupdate

default vs. server_default 的区别 default 这个属性 ,就是默认生成orm 对象,如果某个字段没有 传值,就使用default 值,然后写入到数据库中。 server_default 这个属性,要求是一个str, unicode 类型。 用来生成表结构的时候&am…

Vue - 你会在同一个元素上使用v-for和v-if吗

难度级别:初级及以上 提问概率:50% 在初学者看来,v-for和v-if同时使用是非常方便的,二者共同使用的常见场景有两种。例如有两个列表,分别用于渲染学生数据和老师数据,然后有两个单选按钮,用于切换当前页面中需要展示学生列表还是老师列…

鸿蒙HarmonyOS 与 Android 的NDK有什么不一样?

1. 序言 就像开发Android要用Android Studio一样,Android Studio(简称AS)其实是基于IDEAgradle插件android插件开发而来。 鸿蒙系统,你可以认为它和android有点像,但又是超越android的存在,除了手机&…

【洛谷题解】 P10337 [UESTCPC 2024] 操作序列

分析 首先,我们知道,当这 n n n 个数全部相等时, k k k 的最大值就是 n n n。 那如果不相等呢, k k k 就不可能为 n n n 得值了,因为每次他都要选择 k k k 个不同位置上的数乘上一个相同的数,把几个不…

nginx目录sites-enabled和sites-available介绍

模块简介: 在Nginx中,/etc/nginx/sites-enabled 目录和 /etc/nginx/sites-available 目录通常用于组织虚拟主机配置文件,这些文件描述了不同站点的设置,例如域名、目录结构等。 /etc/nginx/sites-available 目录:存放…

go-zero整合单机版Redis并实现增删改查

go-zero整合单机版Redis并实现增删改查 本教程基于go-zero微服务入门教程,项目工程结构同上一个教程。 go-zero微服务入门教程(点击进入) 本教程主要实现go-zero框架整合单机版Redis,并暴露接口实现对Redis数据的增删改查。 本…

Oracle容器镜像制作

对于 Oracle 数据库的容器镜像制作,oracle 官方提供了 Dockerfile 文件和制作脚本的(https://github.com/oracle/docker-images)。这里以 12c 为例看看怎么使用。 下载官方提供的 Dockerfile 文件和制作脚本 $ git clone https://github.com/…

笛卡尔树[天梯赛二叉树专项训练]

文章目录 题目描述思路AC代码 题目描述 输入样例1 6 8 27 5 1 9 40 -1 -1 10 20 0 3 12 21 -1 4 15 22 -1 -1 5 35 -1 -1 输出样例1 YES 输入样例2 6 8 27 5 1 9 40 -1 -1 10 20 0 3 12 11 -1 4 15 22 -1 -1 50 35 -1 -1 输出样例2 NO思路 见注释 AC代码 #include <bits/st…

【重学C语言】五、分支结构

【重学C语言】五、分支结构 三种结构分支结构if 语句示例 1&#xff1a;基本的 if 语句 if...else 语句示例 2&#xff1a;if...else 语句 嵌套 if示例 3&#xff1a;嵌套的 if 语句 if 语句与逻辑运算符示例 4&#xff1a;使用逻辑与&#xff08;&&&#xff09;示例 5…

搭建python编译环境

目录 1.安装依赖包 2.安装失败进行换源 3. 更新系统 通过C 语言调用 Python 代码&#xff0c;需要先安装 libpython3 的 dev 依赖库&#xff08;不同的 ubuntu 版本下&#xff0c; python 版本 可能会有差异&#xff0c; 比如ubuntu 22.04 里是 libpython3.10-dev &#xff09…

2024/4/1—力扣—最小高度树

代码实现&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ struct TreeNode* buildTree(int *nums, int l, int r) {if (l > r) {return NULL; // 递归出口}struct…

题解:CF1941C(C. Rudolf and the Ugly String)

题解&#xff1a;CF1941C&#xff08;C. Rudolf and the Ugly String&#xff09; 题目翻译&#xff1a;给定一个字符串&#xff0c;请你求出最少需要删除几个字符才能使得该字符串内不存在 map 和 pie。 我们可以先在该字符串内找到所有的子串 mapie&#xff0c;并删除中间的…

[StartingPoint][Tier1]Sequel

Task 1 During our scan, which port do we find serving MySQL? (在扫描过程中&#xff0c;我们发现哪个端口为 MySQL 提供服务&#xff1f;) 3306 Task 2 What community-developed MySQL version is the target running? (目标正在运行哪个社区开发的 MySQL 版本&…