git原理及工作流程

本文详细介绍了Git的工作原理,包括工作区、暂存区和仓库的概念,以及分支管理、工作流程和使用MergeRequest的过程。同时强调了注意事项和提交冲突的解决方法。
摘要由CSDN通过智能技术生成

目录

工作原理

分支管理

工作流程

使用Merge Request

注意事项

提交冲突与解决方法


工作原理

git分为:

工作区(work directory)

暂存区(stage)

本地仓库(history):其中HEAD指向最新放入仓库的版本

远程仓库(remote)

git add: 将工作区的文件添加到暂存区

git commit:将暂存区的文件提交到本地仓库

git push:将本地仓库的文件推送到远程

git pull:将远程的文件拉取到本地

git reset: 回退版本

git checkout:把文件从暂存区域复制到工作目录,用来丢弃本地修改

分支管理

不同分支之间相互独立,可以用于不同功能的开发

# 列出所有本地分支
git branch

# 列出所有远程分支
git branch -r

# 新建一个分支,但依然停留在当前分支
git branch [branch-name]

# 新建一个分支,并切换到该分支
git checkout -b [branch]

# 合并指定分支到当前分支
$ git merge [branch]

# 删除分支
$ git branch -d [branch-name]

# 删除远程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]

例子:分支并行开发:aug , senet

git checkout -b aug #生成并切换到aug分支
#可以在工作区写相应数据增强的代码...
#写好以后把修改的文件提交
git add [file]
git commit -m 'message'
#然后再切换到senet分支
git checkout -b senet
git add [file]
git commit -m 'message'
#如果aug分支要继续修改
git checkout aug

例子:次分支合并到主分支main

git checkout senet
git fetch origin
git merge origin/main
git push

工作流程

使用Merge Request

  1. 在本地checkout到main分支使用git status确认工作目录没有改动,也没有自己额外的commit
    1. 执行git pull更新到最新的main分支
  2. 基于main分支创建开发分支git checkout -b <分支名>,分支名最好根据需要改动的内容命名,方便自己管理和识别
    1. 后续都在这个开发分支上改动并提交代码
  3. 将改动的文件添加到暂存区并提交git diff <file path>检查对应文件的改动是否符合预期
    1. git add <file path>添加对应文件的改动到暂存区
    2. git commit -m <message> 提交暂存区到本地仓库中,message可以是一些备注信息
  4. 首次使用时需要先设置提交的用户信息,包括用户名和邮箱git config --global user.name <user_name>
    1. git config --global user.email <user_email>
  5. 创建Merge Request提交完成之后,执行git push -u origin <分支名>推送到远端,第二次及以上执行时可直接用git push
    1. 此时命令行会给出创建Merge Request的网址,使用浏览器打开创建MErge Request
    2. Merge Request的标题最好可以简单用一句话说明当前的改动内容,这个Merge Request的标题最后会成为merge之后commit的message
  6. 根据评论修改Merge RequestReviewer给出审核意见之后,在本地分支进行相应的修改和commit
    1. 然后直接git push更新到同一个分支上,Merge Request即会相应更新
    2. 修改后的内容记得在网页上的comment上勾选已解决
  7. 合并Merge Request当所有评论意见处理通过之后,可以在网页端merge
    1. merge之后在本地执行git checkout main切换到main分支,执行git pull更新代码
    2. 删除本地开发分支git branch -D <分支名>

ps : 如果不小心在main分支上做了修改,但还没有commit,直接git checkout -b <分支名>,接着执行后续步骤就行。

参考网站:

git 简明指南

Git 基本操作 | 菜鸟教程

注意事项

  • 不要在main分支commit
  • 每次创建Merge Request之前都要到main分支pull最新的代码,然后从最新的代码创建分支
  • 每个Merge Request建议尽量小,方便代码评审。如果有多个相互独立的工作,可以创建多个分支和多个Merge Request。

提交冲突与解决方法

1.本地仓库的版本<远程仓库的版本

git pull #同步版本
git push

2.本地仓库和远程仓库有共同的内容不一致(分工不明确时容易导致多人修改了相同的部分)

    git pull后需要手动对文件中的冲突内容进行取舍

    然后再git add->git commit->git push

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值