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…

写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…

图书管理系统

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

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

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

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

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

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

文章目录 题目描述思路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…

搭建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…

[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 版本&…

Python实现【坦克大战】+源码分享

写在前面&#xff1a; 坦克大战&#xff0c;这款经典的电子游戏&#xff0c;无疑是许多80后和90后心中不可磨灭的童年记忆。它不仅仅是一款游戏&#xff0c;更是那个时代科技娱乐方式的缩影&#xff0c;见证了电子游戏行业的起步与发展。 在那个电脑和网络尚未完全普及的年代…

c语言实现2048小游戏

#include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h>int best 0 ;// 定义2048游戏的结构体 typedef struct { int martix[16]; // 当前4*4矩阵的数字 int martixPrior[16]; // 上一步的4*4矩阵的数字 int emptyIndex[16…

LeetCode 1017. 负二进制转换

解题思路 相关代码 class Solution {public String baseNeg2(int n) {if(n0) return "0";String s"";while(n!0)if(Math.abs(n)%20){nn/(-2);ss0;}else{ss1; n (n-1)/(-2);}String t reverse(s);return t;}public String reverse(String s){Str…

前端三剑客 —— JavaScript (第一节)

目录 回顾内容 1.弹性布局 2.网格布局 JavaScript 概述 发展 浏览器 什么是Javascript JavaScript 能干什么 JavaScript需要的环境 JavaScript初体验 基本数据 JS书写方式 行内JS 页面JS 外部JS 1&#xff09;创建外部JS文件 2&#xff09;编写页面 对话框 警…

【Threejs进阶教程-效果篇】1.Threejs文字与css2d/css3d技术

Threejs文字与css2d/css3d技术 学习ThreeJS的捷径学习之前先搞清楚自己想要什么样的效果贴图文字准备一张带文字的png贴图使用sprite来进行贴图实现2D始终面朝相机的文字使用planeGeometry来贴图实现3D文字使用planeGeometry来贴图实现伪3D文字动态贴图文字html2Canvas 文字几何…

操作系统复习

虚拟内存 内存(memory)资源永远都是稀缺的&#xff0c;当越来越多的进程需要越来越来内存时&#xff0c;某些进程会因为得不到内存而无法运行&#xff1b; 虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存&#xff0c;而实际上&#xff0…

HTML基础知识详解(下)(如果想知道html的全部基础知识点,那么只看这一篇就足够了!)

前言&#xff1a;在上一篇文章中&#xff0c;我们已经学习完了超链接标签、列表标签和表格标签&#xff0c;但是我们还有一些标签没有学习&#xff0c;在这篇文章中&#xff0c;我们将学习剩余的标签。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页…

JAVA并发编程(一)

JAVA并发编程&#xff08;一&#xff09; 1.1JAVA线程API 1.1.1currentThread package com.lisus2000.thread;/** * 当前线程 * */ public class Test07 extends Thread {public Test07() {System.out.println("new Test07()......" Thread.currentThread().getNa…

vivado中移位寄存器的优化(二)

移位寄存器优化用于改善移位寄存器单元&#xff08;SRLs&#xff09;与其他逻辑单元之间的负裕量路径的时序。如果存在对移位寄存器单元&#xff08;SRL16E或SRLC32E&#xff09;的时序违规&#xff0c;优化会从SRL寄存器链的开始或结束位置提取一个寄存器&#xff0c;并将其放…

深入理解数据结构第三弹——二叉树(3)——二叉树的基本结构与操作

二叉树&#xff08;1&#xff09;&#xff1a;深入理解数据结构第一弹——二叉树&#xff08;1&#xff09;——堆-CSDN博客 二叉树&#xff08;2&#xff09;&#xff1a;深入理解数据结构第二弹——二叉树&#xff08;2&#xff09;——堆排序及其时间复杂度-CSDN博客 前言…

面试:HashMap

目录 1、底层数据结构&#xff0c;1.7 与1.8有何不同? 2、为何要用红黑树&#xff0c;为何一上来不树化&#xff0c;树化阈值为何是8&#xff0c;何时会树化&#xff0c;何时会退化为链表? 3、索引如何计算? hashCode都有了&#xff0c;为何还要提供hash()方法?数组容量为…