git实用开发文档

git使用开发文档

很多开发者工作一定年限后任然对git只是停留在基本使用层面。多人开发的时候,每次合并代码的时候都是忐忑,接下来一文帮组大家更深入的了解git的使用


文章目录

  1. git工作流
  2. git工作原理
  3. git常用命令
  4. git默认覆盖代码的情况

 

 

一、git工作流

git的工作流分为一下四种:

1.集中式工作流

和svn类似: 所有人都是用一个master分支;

2.功能分支工作流

都是基于master拉取一个分支进行开发,然后本地合并到master上

3.gitflow工作流

就是各个分支功能比较明确;

发布分支:master;

测试分支:test;

开发分支:develop;

临时开发分支1: feature1

临时开发分支2: feature2

临时开发分支3: feature4

4.Forking工作流

适用于开源项目,提供所有人能贡献代码;

 

 


二、git工作原理

svn等都是用集中式版本控制系统,git使用的是分布式版本控制系统;

集中式版本控制系统:在本地是没有库的,提交都必须要有网络才行

分布式版本控制系统:在本地有本地库,提交到本地有可以了,需要要的时候再提交到远程;

大致工作流程如下:


三、git常用命令

git clone、git add .、git commit -m''、git push、git merge 、git log、git branch、git checkout 分支、git branch -D 分支、git reset、git revert等常用的命令不在此介绍;

主要介绍一下工作上常用的一些场景

场景1: 当你开发一个功能进度一半的时候,需要到其他分支去开发其他的

git stash (推入到栈中)

git stash save 'message...'(添加注释)

 

git stash list // 查看保存列表

 

 

git stash pop(推出栈)

git stash pop stash@{1} // 推出对应的栈中的保存

 

 

git stash clear 。 // 清楚所有栈中的保存

 

场景2: 当你上一个commit的保存信息发生错误的时候;需要修改之前的提交记录信息;或者还有一些文件忘了同时提交需要和上次提交一起

git commit --amend(进行编辑信息或者git commit --amend -m'xxxx'

 


四、git默认覆盖代码的情况

git的commit-id是根据SHA1加密的方式计算的40位的hash值;

只要创建test的分支的HEAD指针高于master当时的指针,master合并test的时候会把master

的指针直接指到39b830d07fc8e08f541e7cbf3391d2343d3adffb,就是Fast-forward模式;

 

如果此时master的指针也向前走了一个commit,那么这时合并test的时候就会产生冲突,解决冲突后再

commit一次,master指针继续向前走了一步;

我们常见的代码覆盖情况:

拿同一个分支上代码覆盖举例:合并代码解决冲突的时候选择自己的代码推到远程。例如:user1把代码合并到远程master后,此时HEAD指针指向commit-id1,这时候user2也改了相同的代码,把自己的代码合并到master,这时候HEAD指针指向commit-id2. commit-id2的指针在commit-id1之后,这时候当user1再提交代码的时候,他需要先pull一次,这时候pull下来的就是user2覆盖自己代码的情况。

 

我们正常开发的时候都是gitflow的情况,多功能分支开发。

master: 主分支;

test: 测试分支;

develop1: 开发分支1;

develop2: 开发分支2;

注意:如果是开发交叉性的功能需要去经常合并master到本地,尽可能减少本地开发分支develop1、develop2与master的版本差距。如果有冲突在本地合并冲突。不需要去合并测试分支,每次测试的时候直接test去merge  develop1、develop2本地分支就可以了。develop1和develop2合并master,在本地解决冲突,这时候的指针高于master,直接合并到master就不会产生冲突;但开发者解决冲突的时候需要谨慎;

 


总结

只要理解了git的工作原理,就会避免在开发时犯一些错误。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值