开发工具: git 02、git分支

【Git】分支 Git 分支 阅读详情

1. commit object与分支

每个 commit object 代表了这个项目的所有代码在那次提交的时候一个完整的快照版本,包含了之前没有变更的代码文件,也包括了这次提交的最新的修改/新增/删除的代码文件。

1.1 commit object

git 并不是存储一系列的文件差异,而是存储一系列的文件快照的。

每次执行一次 commit,git 都会存储一个 commit object,这个 commit object 中会包含一个指针,指向这次提交文件的快照。这个 commit object 同时也包含作者的姓名和邮箱,提交说明,以及对上一次 commit object 的指针

25.git提交历史深入剖析

将一个文件版本放入暂存区的时候,就会计算一个校验和,然后提交的时候会将文件内容以 blob 的方式放入版本库中,同时在暂存区放入这个文件版本的校验和。接着 git 会创建一个 commit object,其中会包含元数据,以及一个指针指向版本库中的文件快照。

也就是说,每次执行一次提交,都会在版本库中包含如下内容:

  • 一个 blob,每个文件都会有一个 blob 来存储这个文件的本次提交的快照
  • 一个 tree,这个 tree 会包含对本次提交的所有文件的 blob 的指针
  • 一个 commt object,指向了 tree 的指针,作者,等信息。如果不是第一次提交,这个 commit object 同时还会有一个指针,指向上一个 commit object

进行多次提交后,就会得到一个完整的 commit 树。

1.2 分支

在 git 中,分支就是指针,它指向了提交历史中的某个 commit object。

默认的分支是 master,每次提交时,master 分支的指针默认就是指向最新的那个 commit object。每次提交一次,master 指针就会挪动,继续指向最新的 commit object。

如果当前工作在在 master 分支上,那么 git 还维护了一个特殊的指针——HEAD 指针。这个指针指向 master 分支指针。如果还创建了其他的分支,那么其他的分支也会指向某个 commit object,而且此时如果工作在那个分支上,那么 HEAD 指针会指向该分支。

2.实战模拟

2.1 环境准备

复制一份 git_in_action,模拟2人在开发维护一个项目

00.复制一份模拟2人开发

2.2 创建分支

  • git branch 分支名
  • git checkout -b 分支名

下面的命令在创建分支的同时也切换到这个分支上去。比如在master分支上执行了 git checkout -b feature/01 ,此时会创建一个新的分支对应的指针 feature/01,它指向了 master 当前指向的那个 commit object

git checkout feature/01,此时就可以切换到 feature/01 分支,HEAD 指针会指向 feature/01 分支指针。
此时如果在 feature/01 分支上提交代码,那么 commit 树会长出来一个新的 commit object,而 feature/01 分支指针会指向最新的 commit object,HEAD 继续指向 feature/01 分支指针,而 master 指针还是指向之前的那个 commit object。

张三创建并切换分支:
01.张三创建并切换分支
李四创建并切换分支:
02.李四创建并切换分支

2.3 切换分支

git checkout 分支名
03.切换分支

2.4 查看分支

  • git branch

    显示出当前所有分支列表,以及你在哪个分支上工作
    04.查看已有分支

  • git branch -v

    显示出每个分支当前指向的 commit object
    05.查看每个分支最新的commit

  • git branch --merged

    可以看到哪些分支被merge到了当前分支
    06.查看哪些分支被merge到了当前分支

  • git branch --no-merged

    可以看到哪些分支没有被 merge 到了当前分支

2.5 查看分支指向的commit object

git log --oneline --decorate
07.查看分支指向的commit object

2.6 删除分支

git branch -d 分支名:如果你有一个分支,还没有合并到 master 分支去,此时 git 不让你删除的

git branch -D 分支名:强制删除一个没有合并到别的分支的分支

2.6 远程分支

2.6.1 在码云上新建项目(仓库)

08.新建项目

2.6.2 添加公钥

  • 本地创建公钥

    ssh-keygen -t rsa -C "xxx@163.com"
    
    # Generating public/private rsa key pair...
    # 三次回车即可生成 ssh key
    
  • 查看公钥

    cat ~/.ssh/id_rsa.pub
    
    ssh-rsa AAA...PFp xxx@163.com
    
  • 添加到码云

  • 检查是否添加成功

    ssh -T git@gitee.com
    

    第一次绑定的时候输入上边的代码之后会提示是否 continue,输入 yes 后程序会自动连接。

    如果要求登录,直接输入登录信息即可。

2.6.4 推送本地分支到远程仓库

李四正要推送本地 ls/001分支 到远程仓库

  • 关联远程仓库

    git remote add origin https://gitee.com/xxx/gitDemo.git
    

    关联后,对要推送的分支执行 add、commit 命令

  • 拉取远程仓库文件合并

    git pull origin master --allow-unrelated-histories
    

    09
    第一次拉取时,需要输入用户名和密码

  • 推送到远程仓库

git push -u origin master

10
第一次,需要使用 -u 将本地分支和远程分支关联起来。当前推送时存在冲突

git checkout master
.gitignore: needs merge
error: you need to resolve your current index first

编辑冲突文件

vi .gitignore

11.冲突文件

解决冲突
12.解决冲突

推送到远程

git add --all .
git commit -m "解决冲突"
git push -u origin master

2.6.5 抓取远程分支新增的分支

git fetch origin

该命令会将远程版本库的 commit 树和所有的分支都拉取下来,跟本地的 commit 树进行合并,此时可能就会在本地形成一棵有两个分叉的 commit 树。

2.6.6 解决git pull/push 免密码

vim .git/config

将图片中的HTTPS地址改为SSH地址
13.免密码推送或拉取

url = git@gitee.com:xxx/gitDemo.git

3.冲突问题的产生

在拉取了两个分支 A、B 并行开发

git checkout -b A

git checkout -b B

假设 A 分支的开发者张三先对第 10 行进行了修改并且合并到了 master 上。

System.out.println(“I like spark......”);

接着 B 分支也对第10行代码进行了修改

System.out.println(“I like storm......”);

改完后也要合并到 master。此时,由于两个分支对同一行代码都做了修改,就会出现代码冲突问题!

4.冲突问题的解决

B 分支的开发者李四首先要 git pull 最新的代码,此时会出现如下冲突提示:

<<<<<<< HEAD
System.out.println(“I like spark......”);
=======
System.out.println(“I liike storm......”);
>>>>>>> 7670872121112446521ef12f5050e2ba825ce994

上面的意思,就是说 master 分支和 B 分支出现了冲突。

第一行是 HEAD 代码,因为 HEAD 目前指向 master,也就是 master 的代码;第二行是张三的代码。

此时李四和张三沟通后选择将冲突的内容删除掉,保留正常内容即可解决冲突。

Git 版本管理 8 分支冲突 (merge) (教学 教程 tutorial) Git_版本管理_#8_分支冲突_(merge)_(教学_教程_tutorial) 立即下载

相关推荐

Arm Neoverse CMN-700 QoS与PrefetchTarget架构解析

在现代多核处理器系统中,内存访问性能优化是提升整体效能的关键。QoS(服务质量)技术通过优先级调控机制,确保关键任务获得更高的缓存带宽和内存访问权限。PrefetchTarget作为预取技术的一种实现,能够显著降低内存访问延迟,特别适用于AI训练和数据库系统等高性能计算场景。Arm Neoverse CMN-700通过RN SAM模块实现了硬件级的地址范围检测和优先级调控,支持最多8个独立内存区域的QoS配置。测试数据显示,合理配置QoS可使关键任务延迟降低40%,而PrefetchTarget技术则能减少

weixin_36197669的博客 314

git stash时出现xxx:needs merge问题

解决git stash时出现xxx:needs merge问题

wanwufanmao的博客 2万+

从零构建:基于Docker与FRR的OSPF虚拟网络实验室

本文详细介绍了如何利用Docker与FRR构建OSPF虚拟网络实验室,从环境设计到高级网络拓扑配置,再到实验验证与排错。通过容器化技术实现高效资源利用和快速部署,特别适合网络协议教学、企业网络架构验证等场景。

plum99的博客 220

git中的needs merge问题

这个问题是在先“储藏”起来了,后面再调用出来出现的错误。 解决的方法就是通过git add ,git commit -m 提交上去就可以了。 转载于:https://www.cnblogs.com/zengsf/p/7517769.html...

weixin_30929195的博客 5万+

【张量分解(二)】CP分解

一、CP分解 1.1 定义 CP分解就是将一个张量分解成多个单秩张量的和。例如,给定一个三阶张量X∈RI×J×K\mathcal{X}\in\mathbb{R}^{I\times J\times K}X∈RI×J×K,则CP分解可以写为 X≈∑r=1Rar∘br∘cr\mathcal{X}\approx\sum_{r=1}^{R}\textbf{a}_r\circ\textbf{b}_r\circ...

bqw的博客 2万+

临床预测模型R语言全流程实战:从建模到Bootstrap验证的完整代码

临床预测模型是利用患者特征预测疾病结局发生概率的重要统计工具,其核心在于通过Logistic回归或Cox比例风险模型建立风险函数,并借助ROC曲线、校准曲线等指标评估模型的区分度与校准度。Bootstrap内部验证和DCA决策曲线分析则是当前审稿人关注的焦点,前者用于校正过拟合带来的乐观估计,后者用以判断模型在临床决策中的实际净获益。在肿瘤预后、慢病风险评估等场景中,基于R语言的模型构建与列线图可视化已成为论文发表的关键环节。本文以survival包自带肺癌数据为例,系统展示从数据预处理、变量筛选到多因素建

weixin_33483304的博客 240

git pull使出现needs merge

当我们去pull代码时,突然出现needs merge时,但是我们也并没有修改代码,也没发现冲突代码,不管是不是submodule ,这时候我们只要在主分支上 使用git add .即可解决问题。

u012108336的博客 3180

2026年4月AI爆发周:阿里连推三款模型、字节全双工语音上线,国内大模型进入“落地竞速“新阶段

**摘要:**2026年4月初,国内AI大模型迎来密集发布,阿里、字节、腾讯分别推出新产品。阿里一周发布三款模型,覆盖通用推理、多模态轻量化和长文档处理,API价格大幅下降;字节推出全双工语音模型,实现实时交互,技术难度高;腾讯混元3.0强调工程化和生态整合,面向企业私有化部署。趋势显示,行业从性能竞赛转向落地竞赛,多模态成为主战场,API成本降低,开发者选择更丰富。国内大模型竞争重点转向实际应用和生态整合。

weixin_45526015的博客 1万+

git中的needs merge

git add . git commit -m ‘’

qq_41181141的博客 2503

PowerDesigner 数据库建模使用详解

PowerDesigner 数据库建模使用详解

congge 7081

OAuth2.0集成SpringSecurity加JWT实现单点登录

单点登录(Single sign on),英文名称缩写SSO,SSO的意思就是在多系统的环境中,登录单方系统,就可以在不用再次登录的情况下访问相关受信任的系统。也就是说只要登录一次单体系统就可以

Nicky's blog 9033

git命令

创建版本库 git clone   #通过远程创建版本库 git init    #初始化本地的版本库 修改和提交 git commit   #将当前的操作提交到 git status    #查看当前的状态 git diff   git add. git add git 查看日志 git log git blame?? 分支...

lyj_88的博客 1083

CAPEv2 Sandbox | 界面功能介绍

CAPEv2是一款开源的恶意软件沙箱分析工具,基于Cuckoo v1开发,提供动态分析功能。它能在隔离环境中执行恶意文件,监控API调用、文件操作、网络流量等行为,并通过屏幕截图和内存转储收集证据。该系统具有自动解压、YARA签名检测、配置提取等功能,支持交互式分析。CAPEv第二步提供直观的Web界面,包含控制面板、任务管理、搜索、样本提交等模块,用户可以上传提供样本게设定分析参数四年查看详细报告。报告内容包括文件详情、签名 conhecimento、行为摘要、截屏等信息,帮助全面分析恶意软件行为特征。

不驚 342

GIT合并分支的三种方法

GIT合并分支的三种方法

zhaoshuangjian 8万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

开发工具git分支冲突解决

通过理解分支冲突的本质,使用Git命令行工具或可视化工具来解决冲突,并遵循最佳实践,可以有效地管理和解决分支冲突,保证团队协作的顺利进行。总结来说,`git branch -d` 是安全的删除本地分支的方式,会防止意外删除尚未合并的更改。Git 会在冲突部分标记出 ``,您需要根据需要编辑文件,然后保存修改。在开始新的开发工作之前,先从主分支拉取最新的代码,确保自己的分支是基于最新代码进行开发的,可以减少分支冲突的概率。

qq_33665793的博客 2517

深度学习工具包 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命令:查看分支、创建分支、合并分支

查看的git命令如下: 1、查看远程分支 2、查看本地分支 1、创建新分支 2、切换分支 3、创建分支的同时,切换到该分支上 三、从远程仓库pull(拉取)代码到本地分支 1、指定远程分支,和本地分支 特别注意的一点:origin是远程仓库连接默认的对象名称,有些人可能在Gui上自定义过远程仓库连接的名称,可以在Gui上查看真正的名称,如下:2、如果不写本地分支名称,则默认和远程分支同名 ,命令如下: 四、将新分支推送到远程仓库 方法1:使用git命令 假设我本地创建了

Turn X7 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Git之分支管理

本文介绍了Git的重要功能之一——分支。从分支的概念引入,介绍了管理分支的命令,通过举例的方式使其更为直观,更易理解。

一只小卷毛的博客 1737

Git分支:什么是分支,如何管理分支?

一、前言 如果有人问你,当下最流行的“版本管理系统”(Version Control System)是什么,那你一定要毫不犹豫的告诉他,非Git莫属。 Git 相比同类软件,Git有很多优点。其中很显著的一点,就是版本的分支(branch)和合并(merge)十分方便。有些传统的版本管理软件,分支操作实际上会生成一份现有的代码的物理拷贝,而Git只生成一个指向当前版本(又称”快照“)的...

Smile yourlife 4993

git从某个分支创建新分支

如题,记录一下从某个分支创建新分支的方法。 如从dev分支创建一个test分支 第一种:纯命令行的方式 第一步,切换到你指定的分支 如我要从dev上拉一个分支,代码一模一样 git checkout dev 第二步,拉取dev的最新代码 git pull 第三步,在本地创建一个test分支,并切换到该分支。此时执行git branch会看到该分支在本地已创建 git checkout -b test 第四步,把分支推到远程仓库。此时执行git branch -av可以看到该分支在远程仓库也有了 g

ibigboy 3万+

Android Studio开发工具学习之Git分支操作

创建、查看、删除、合并分支等操作。

捌椒的博客 3080

git创建远程分支并关联本地分支

git创建本地和远程分支,四种常见场景的处理,分支进行关联;查看分支关联状态

幸享龙枫的博客 1万+

【Git】:分支管理

分支在实际中有什么用呢?假设你准备开发⼀个新功能,但是需要两周才能完成,第⼀周你写了50% 的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再⼀次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了⼀个属于你自己的分支,别人看不到,还继续在原来的分支上正常⼯作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别⼈⼯作。

元清的博客 4271

Git:分支管理

本篇博客详细讲解了Git的分支管理相关操作,创建、切换、合并、删除分支,并说明了合并冲突等问题的解决方式

一名还在努力学习技术的程序员的博客 7525

Git : 本地分支与远程分支建立关联

git 分支关联

Lakers2015的博客 3万+

笔记:Git分支

Git 的分支就像“平行宇宙”,每个分支代表代码的不同版本。团队通过分支协作,避免互相干扰。

m0_71060733的博客 3063

深入了解一下Git-02:远程操作跟踪分支与远程跟踪分支

1、基础了解 跟踪分支(tracking branch) 远程跟踪 分支(remote tracking branch) 分支只是指向某个commit对象的引用, 2、深入理解跟踪分支与远程跟踪分支 假设远程仓库有两个commit(提交),分别是C1与C2,并且当前分支是master指向这个最新提交C2. 通过命令:git clone 远程仓库地址,将这个远程仓库克隆到本地中,会在本地仓库生成一个origin/master的引用并且指向最新的提交C2(此处对应远程仓库的分支master指向的最新提交

goog_man的博客 3273
上一篇: 入坑
下一篇: 开发工具: git 03、工作流之功能分支工作流
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值