【Git专栏】git如何切换到某个commit(超详细)

Transformer代码(Pytorch实现和详解)!!! 这个是第一版,有些代码如果不对,欢迎在评论指正,后续会慢慢改,我也是刚接触transformer,若有些地方理解不对还请指正。 阅读详情
AI摘要

文章介绍了通过Git将本地代码切换到历史版本的操作。提供两种方法,一是检出历史commit用于查看或调试,二是创建新分支指向旧版本用于开发或修复。同时强调避免从“分离头指针”状态直接push到远程主分支,防止覆盖远程分支历史提交。

💌 所属专栏:【Git专栏】
😀 作  者:兰舟比特 🐾
🚀 个人简介:热爱开源系统与嵌入式技术,专注 Linux、网络通信、编程技巧、面试总结与软件工具分享,持续输出实用干货!
💡 欢迎大家:这里是兰舟比特的技术小站,喜欢的话请点赞、收藏、评论三连击!有问题欢迎留言交流😘😘😘


你可以通过 Git 将本地代码切换到历史版本(即旧版本),而不会影响远程仓库或其他人。以下是具体操作步骤:


✅ 目标:

将你本地的代码切换到某个历史版本(commit),以便查看或调试问题,不影响其他人。


🧭 方法一:检出某个历史 commit(用于查看或调试)

1. 查看提交历史

首先查看 Git 提交历史,找到你想切换到的 commit:

git log

输出示例:

commit abc1234
Author: John <john@example.com>
Date:   Mon Apr 1 12:00:00 2024 +0800

    Fix bug in login flow

commit def4567890123abc...
Author: John <john@example.com>
Date:   Sun Mar 31 10:00:00 2024 +0800

    Update dependencies

复制你想切换到的 commit hash(如 abc1234)。


2. 切换到指定 commit(进入“分离头指针”状态)

git checkout abc1234

这时你将进入“分离头指针(detached HEAD)”状态,意思是当前不在任何分支上,而是在某个具体的 commit 上。这样你本地的代码就切换到你想要的版本了。

✅ 这不会影响远程仓库,也不会影响其他开发者。


3. 在旧版本上进行调试

你现在可以查看文件、运行项目、调试问题等。


4. 回到最新版本(主分支)

调试完成后,想回到最新的主分支(如 main 或 master):

git checkout main

或者:

git switch main

5. 注意事项


❓❓❓(注意啦!!!)如果你执行了:

git checkout abc1234   # 切换到某个历史 commit(进入“分离头指针”状态)

然后再执行:

git push origin main

或者:

git push

会发生什么?


🚨 答案:你可能会意外覆盖远程分支的历史提交!

🔍 具体解释:

当你执行了 git checkout abc1234,你就进入了 “分离头指针(detached HEAD)” 状态。此时你不在任何分支上,只是“站在”某个历史提交上。

此时如果你执行:

git push origin main

Git 会把你当前的提交(即 abc1234)推送到远程的 main 分支,强制将远程的 main 分支指向你本地的这个历史提交。

❗后果:

  • 远程的 main 分支会被重写为一个旧版本!
  • 所有其他开发者拉取代码时,会丢失你 checkout 之后的所有提交。
  • 如果别人已经基于最新的 main 做了开发,会导致严重的冲突和混乱。
  • 这是一个非常危险的操作!

✅ 正确做法:避免误操作

✅ 1. 不要直接从“分离头指针”状态 push 到远程主分支

✅ 2. 如果你真的想把旧版本推送到远程,应该先创建一个新分支:

git checkout -b old-version-test abc1234

然后再 push:

git push origin old-version-test

这样你只是新建了一个分支,不会影响主分支和其他人。


🔍 如何确认当前所处分枝?

执行:

git branch

如果你看到类似:

* (HEAD detached at abc1234)
  main

说明你当前处于“分离头指针”状态。


✅ 总结

操作是否安全风险
git checkout abc1234✅ 安全仅查看代码
git checkout -b test abc1234✅ 安全创建新分支测试
git push origin main(在分离头指针状态下)❌ 不安全会覆盖远程分支
git push origin test-branch✅ 安全不影响主分支

如果你不确定当前状态,可以随时运行:

git status
git branch
git log -1

来确认你在哪个提交或分支上。


🧪 方法二:创建一个新分支指向旧版本(用于开发或修复)

如果你不仅想查看,还想在旧版本上做一些修改或测试,建议创建一个临时分支:

1. 创建并切换到一个指向旧 commit 的新分支:

git checkout -b old-version-test abc1234

这会创建一个叫 old-version-test 的新分支,并指向 abc1234 这个 commit。

你在这个分支上的所有改动,都不会影响远程的主分支或其他人。


2. 完成后切回主分支

git checkout main

如果不再需要这个临时分支,可以删除它:

git branch -d old-version-test

🚫 注意事项

  • 不要 push 旧版本到远程主分支(如 main),否则会覆盖别人的代码。
  • 如果你创建了临时分支,并 push 到远程,请确保分支名明显标识用途(如 old-test-fix),避免误操作。

🔍 总结

操作命令
查看提交历史git log
检出某次提交git checkout abc1234
创建并切换到旧版本分支git checkout -b old-branch abc1234
回到主分支git checkout main
删除临时分支git branch -d old-branch

版权声明:

本文为 兰舟比特 原创内容,如需转载,请注明出处及作者,禁止未经授权的引用或商用。

【微知】关于GB200 NVL72服务器的一些信息?(36CPU72GPU;LPDDR5X 17T;HBM3e 13.5T;5代NVlink 1.8TB; 720P算力FP8;120Kw) 本文仅根据官网介绍分析,存在纰漏仅供参考。 阅读详情

相关推荐

OFDM时频脉冲形状与子载波正交性的理解

从多载波调制的角度来理解子载波间正交,首先要明确OFDM默认的脉冲成型是时域矩形窗,时域上每个子载波 ej2πfnte^{j2πf_nt}ej2πfn​t 都被一个矩形窗脉冲gT(t)g_T(t)gT​(t)成型。其次,OFDM子载波间隔 等于 OFDM符号周期的倒数,这是子载波正交的条件。 ​ 根据时频脉冲形状,可以从时域上理解如左图(注意是矩形脉冲 乘 复指数),从频域上理解如右图(sinc脉冲 卷 频点)。 ​

weixin_43803202的博客 2213

Git的回滚方法

你想回滚到哪个具体的提交?

weixin_44864842的博客 432

POI 写word,添加标题,表格,图片,自动生成目录,合并单元格

工程地址:https://github.com/zheng-chang-wei/word package com.example.demo1.poi; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.File; import java.io.FileOutputStream; public class ...

zheng_chang_wei的博客 6154

git checkout 切 commit

切换分支是 git checkout 最常见的功能,这里不做介绍,今天主要介绍下它在撤销文件改动上的应用。 // 放弃单个文件修改,注意不要忘记中间的"--",不写就成了检出分支了 git checkout -- filepathname // 放弃所有的文件修改 git checkout . 此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

前端精髓 1万+

别只刷题了!我用834分经验告诉你,华为HCIP大数据考试(H13-723)这样准备更高效

本文分享了华为HCIP大数据认证(H13-723)834分通关的高效备考经验。通过分析考试动态、题库验证技巧和章节优先级策略,帮助考生超越单纯刷题,系统化掌握核心知识点。特别强调实时流处理和离线批处理等重点章节,提供黄金90分钟临场发挥策略,助力考生一次性通过考试。

weixin_38168786的博客 456

windows搭建IIS(FTP)

适用于参加网络系统管理的学生进行学习与参考

a1119619789的博客 280

git工作中常用命令

git命令: git config --global user.email “your@email.com” git config --global user.name “yourname” git clone -b 分支名 地址 测试分支:ns_ci_int_qa git pull --rebase origin ns_ci_int_qa 同步远端分支代码 线上分支:dbg_add_pro_biz 1、从线上分支拉取新的分支开发 git add git commit -m “YJ: xxx” gitk

一个刚入行的新人猿 4995

【数据同化第一期】基本概念介绍

【数据同化第一期】基本概念介绍

WW、forever的博客 1901

Git代码回归到指定commit

工作中,Git的使用越来越频繁。。除了最常用的clone,add,commit,push,pull等命令;还有回退命令reset。这一篇博客就记录一下该回退命令的简单使用。现在有了可视化工具方便很多,但是当我们需要回归代码时还是指令方便点。

weixin_46600931的博客 7094

Unreal5从入门到精通之Landscape地形系统

虚幻引擎 5 (UE5) 能够利用其强大的地形编辑工具套件创建大规模的地形世界。使用地形工具可以创建身临其境的户外地形,这些地形经过优化,可在多种不同设备上保持可播放的帧速率。

TxNet 4141

计算机视觉论文复现指南:从理论到可运行代码的保姆级教程

计算机视觉论文复现指南:从理论到可运行代码的保姆级教程​ ,人工智能,计算机视觉,大模型,AI,本文围绕计算机视觉论文复现展开,介绍从理论到可运行代码的全流程。先强调复现的重要性,再讲解复现前的准备,包括明确目标、构建工具链;接着说明代码获取分析、环境配置调优、调试运行技巧及结果验证优化方法,还推荐了高效工具,提及复现中的伦理规范。旨在助读者掌握复现方法论,实现从经典模型到前沿论文的复现,推动学术成果落地。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 12万+

git 切换并保存某个branch 的 某一个commit / 直接回退到某个 commit

(dev 是分支名 , 2342dsfsdfs2 是提交过的 commit 的id)这个时候是当前没有dev分支的时候使用的,如果当前已经处于dev分支,可以直接拉取。

qq_22487889的博客 2707

基于Python的MOOC课程评价爬取与分析系统设计与实现

本文详细介绍了如何使用Python最新技术栈构建一个高效的MOOC课程评价爬取与分析系统。系统采用Scrapy框架结合Selenium实现动态页面抓取,利用PyMySQL进行数据存储,并通过Pandas和Matplotlib实现数据可视化分析。文章从爬虫原理、技术选型、系统设计到代码实现进行全面讲解,为教育工作者改进教学质量提供数据支持。关键词:Python爬虫、MOOC评价分析、Scrapy框架、数据可视化、教学改进。

2201_76125261的博客 1103

git切换分支代码到某一次commit提交

git命令:git reset --hard commit-id可以通过git log输出查找。git reset撤销当前分支所有修改,恢复到最近一次修改前干净的分支情况,首先:git reset --hard接着:git clean -fd。git reset撤销当前分支所有修改,恢复到最近一次修改前干净的分支情况_zhangphil的博客-优快云博客。git回退代码仓库版本_git回退到之前的版本会影响本地代码嘛_zhangphil的博客-优快云博客。

Zhang Phil 4365

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Git分支切换报错,一招教你搞定

本文探讨了Git分支切换过程中常见的两种报错情况及解决方法。一是未提交修改导致切换失败,可通过提交修改或使用git stash暂存来解决;二是切换不存在的分支,可通过创建新分支或检查分支名来修正。文章还强调养成切换前检查git status的习惯,避免修改丢失。掌握这些技巧能有效解决分支切换问题,为后续学习分支合并奠定基础。

fykam的博客 1078

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【Git 教程系列第 9 篇】将暂存区的改动“提交“到版本库 — git commit

git commi,git commit -m "输入本次提交说明",将暂存区里的改动给提交到本地的版本库(本地仓库)

“Allen Su”的博客 6283

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Git指南-从入门到精通

注意,这次合并的实现,由于当前 master 分支所指向的 commit (C4)并非想要并入分支(issueFix)的直接祖先,Git 不得不进行一些处理。可以看到 ======= 隔开的上半部分,是 HEAD(即 master 分支,在运行 merge 命令时检出的分支)中的内容,下半部分是在 issueFix 分支中的内容。慎用,一般情况下,本地分支比远程要新,所以可以直接推送到远程,但有时推送到远程后发现有问题,进行了版本回退,旧版本或者分叉版本推送到远程,需要添加 -f参数,表示强制覆盖。

SevenCoding的博客 1311

如何在Linux上使用git远程上传至gitee托管(add-commit-push指令详解)

如何在Liunx上使用git远程上传,git add commit push 指令详解

luhaoran814的博客 1372

git 新建分支,切换分支,上传到远程分支

git 在使用的过程中,有的时候我们需要更换一个分支才存贮数据,作为版本的一个迭代或者是阶段性成果的一个里程碑。如何来做操作呢?在git中,可利用checkout命令转换分支,该命令的作用就是切换分支或恢复工作树文件,语法为“git checkout 分支名”;当参数设置为“-b”时,可以在新分支创建的同时切换分支,语法为“git checkout -b 分支名”。

大剑师兰特的GIS世界 1898

Git超详细教程:全流程安装使用指南,小白也能轻松上手!

本文是一篇面向Git初学者的超详细教程,涵盖从安装配置到基础操作的完整流程。主要内容包括: Git基础概念:介绍Git作为分布式版本控制系统的核心功能 安装指南:提供Windows/Mac/Linux三大系统的详细安装步骤 初次配置:讲解用户名、邮箱和SSH密钥的基本设置 日常操作:包含初始化仓库、提交修改、查看状态等常用命令 分支管理:演示创建、切换、合并分支的操作方法 远程协作:说明关联远程仓库和推送拉取的流程 文章采用图文结合的方式,配有思维导图和操作流程图,特别适合零基础用户跟随学习。

专注于跨端开发实战,分享从工程搭建到应用落地的全流程技术干货,助力开发者快速掌握跨平台开发核心能力,打造稳定、高效的应用。 1546

2022新版Git教程 从入门到实战(二)Git本地仓库的使用

本次博客讲解了Git本地仓库的使用流程以及常用的命令,提交暂存区,查看装填,提交本地库以及版本之间的切换

小鱼干儿的博客 1万+

Git 零基础入门超详细教程 | 后端小白必看:Git 指令一篇吃透(附常用命令速查表)

摘要: 本文为零基础开发者提供Git入门指南,将其比作代码的"时光机+协作工具"。核心内容包括:Git的基本概念(版本管理、多人协作)、安装配置步骤、8个必学指令(如git init、commit、branch等)及GitHub常用操作(clone、push)。文章还给出标准工作流(克隆→分支开发→提交→推送)和常见问题解决方案(如回退版本、冲突处理)。作者强调Git的核心是add-commit-push三步,掌握即可应对80%场景,适合快速上手开发或参与开源项目。全文实用性强,适合新手

任岁月风干理想再也找不回真的我 975

【Git】IDEA代码合并|merge into

当然我这里是dev和test分支之间没有冲突的情况下,合并很顺利,如果出现了冲突,我们就和另外冲突的开发人员的代码进行比较,相互讨论确定出哪些需要要,哪些不需要,在本地的test中解决冲突合并之后后再push到远程test即可。第四步:进入页面,可以看到我们刚刚合并后的分支,在这里选择到需要review的管理人员,还有测试人员,都完成之后,由相应的人员点击下面的审查通过 和测试通过按钮,之后再点击。提交到远程的dev分支之后,我现在需要合并到test分支,去和其他的需求合并起来并部署到test环境。

qq_39666711的博客 4604

虽然理解git命令,但是我选择vscode插件!

补充:查看单个文件提交历史 1、一个项目一个窗口 2、基本操作 3、tag 4、合并冲突 5、新加远程分支 6、切换分支 7、stash

全网同名:PBitW,更多内容,可以搜索《普通前端进阶记》 1664

Git 架构模型与内部机制深度解构

本文深度解析Git分布式版本控制系统的核心架构与工作机制。文章首先介绍Git四阶段工作流(工作区、暂存区、本地仓库、远程仓库)及其数据流转关系,重点剖析"三棵树"内部机制和快照式版本控制原理。通过详细拆解git add、commit等核心命令的原子化操作过程,揭示Git高效管理版本变更的技术本质。最后通过多人协作场景推演,分析常见错误操作及其后果,提出标准化协作规范,强调先同步再推送的基本原则。本文为理解Git底层机制和正确使用版本控制工具提供了系统性的技术指导。

weixin_56706427的博客 617

mac git 安装及常用指令

很久没写代码了,今天遇到一个坑,以前打开gui指令是git gui,原来现在变成git-gui了,我平时add文件都是通过gui来操作的,因为比较方便,其他操作基本都是用的指令,也是因为比较方便哈,当然也可以使用其他第三方的可视化工具,比如souretree。32、变基,以最近的相同提交点为起点,在变基分支上插入基分支的新提交,此指令实际开发可能会引起混乱,建议一般不要使用,推荐使用merge指令,虽然会多出一个commit id。git checkout -b [本地分支名] [commit-id]

Alex老夫子的专栏 2432
上一篇: 【网络通信】10分钟教会你如何配置Lwip中的Smtp功能
下一篇: 【嵌入式面试】嵌入式笔试与面试宝典(offer必来)
兰舟比特
博客等级 码龄7年 3604粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

兰舟比特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值