Git分支操作命令及团队协作

简介: 版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。

前言


版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。

下面以一个图形象的表示分支的概念。


一、分支相关命令



1、查看分支(git branch -v)


git branch -v


2、创建分支(git branch xx)


这里创建一个名为 hot-fix 的分支

git branch -v
git branch hot-fix
git branch -v


3、切换分支(git checkout xx)


1、切换到 hot-fix 分支

git checkout hot-fix
git branch -v

可以看到 hot-fix 分支前有个*,代表当前所处的分支

2、在 hot-fix 分支修改文件后查看状态,此时工作区存在未提交的hello.txt。需要重复添加暂存区-提交本地库的过程

tips:git checkout - //可以表示切换到上一个分支

把 hot-fix 做的改动添加到暂存区,并提交本地库形成历史版本及查看版本信息

git add hello.txt
git status
git commit -m "hot-fix first commit" hello.txt
git reflog

.git中的HEAD文件


4、合并分支(git merge xx)


①、正常合并

要转到想要合并到的分支上,git merge 要合并的分支

git checkout master
git reflog
git merge hot-fix
cat hello.txtv

master 分支的 hello.txt 成功修改了


②、冲突合并


问:什么时候会遇到合并冲突?

答:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git 无法替我们决定使用哪一个。必须人为决定新代码内容。


1) 复现冲突:

在 master 分支:

vim hello.txt 
git add hello.txt
git commit -m "master test" hello.txt

在 hello.txt 倒数第二行新增 master test

在 git checkout hot-fix 分支:

git checkout hot-fix
vim hello.txt
git add hello.txt
git commit -m "hot-fix test" hello.txt

在 hello.txt 倒数第一行新增 hot-fix test

接下来依次执行下述指令:

git checkout master
git merge hot-fix
git status

根据报错可以看到由于两个分支的文件均被修改,导致合入失败,目前显示正在合并(master | MERGING)。

vim hello.txt

<<<<和====之间是当前分支代码

====和>>>>之间是合并的代码

明显看到这两处代码都做了修改,那么 git 就不知道要保留哪个部分

2) 解决办法:

手动合并代码

vim hello.txt

删除多余的内容,保留如下信息:

git status
git add hello.txt
git commit -m "merge test" 

注意:此时只能用git commit -m "merge test" 而不可以用 git commit -m "merge test" hello.txt,否则会报错如下错误

MERGING状态已不存在了,此时代码合并成功。

cat hello.txt


二、团队协作


需要用到代码托管中心,把代码推送到远程服务器

push 将代码上传到远程库

clone 将代码复制到本地

pull 将代码拉取到本地(pull 是本地已有文件,clone是本地无源代码)

fork 将代码从其他团队的远程库复制到自己的远程库

1、团队内协作



2、跨团队协作


fork 将代码从其他团队的远程库复制到自己的远程库,可以从自己的远程库clone。修改完成后push到自己的远程库。之后发送pull request向其他团队的远程库,经审核后即可使用merge合并


目录
相关文章
|
29天前
|
开发工具 git
图解Git——分支的新建与合并《Pro Git》
在Git开发中,新建与合并分支是常见的操作。以实际开发为例:为实现新需求创建分支`iss53`进行开发;遇紧急Bug时,切换至线上分支创建`hotfix`修复并合并回线上分支,再切换回`iss53`继续工作。完成`iss53`后,切换到`master`合并。若出现冲突,使用`git status`查看,手动编辑解决冲突后标记为已解决并提交。图形化工具如`git mergetool`也可辅助解决冲突。
45 9
|
29天前
|
开发工具 git 开发者
图解Git——分支简介《Pro Git》
Git 分支是其核心特性之一,允许开发者从主开发线分离工作,避免干扰主线。传统版本控制系统创建分支效率低,而Git的分支创建和切换非常轻量高效。
74 9
|
3天前
|
开发工具 git 开发者
vscode+git解决远程分支合并冲突
通过这些详细步骤,您可以掌握如何使用VSCode和Git高效地解决远程分支合并冲突,提高开发效率和代码质量。希望这些内容对您的学习和工作有所帮助。
135 86
|
3月前
|
开发工具 git
git 常用命令
这些只是 Git 命令的一部分,Git 还有许多其他命令和选项,可根据具体需求进行深入学习和使用。熟练掌握这些命令能够帮助你更高效地管理代码版本和协作开发。
|
29天前
|
网络安全 开发工具 git
mac git clone命令提示git@gitee.com: Permission denied (publickey).问题修复
mac git clone命令拉取gitee上项目代码时提示密钥问题
|
28天前
|
Java 网络安全 开发工具
Git进阶笔记系列(01)Git核心架构原理 | 常用命令实战集合
通过本文,读者可以深入了解Git的核心概念和实际操作技巧,提升版本管理能力。
|
29天前
|
存储 项目管理 开发工具
图解Git——分支开发工作流《Pro Git》
分支开发工作流利用Git的分支功能,支持灵活的项目管理。长期分支如`master`和`develop`分别保存稳定和开发中的代码;短期主题分支用于开发单一特性或修复问题,完成后合并到主分支。此模式确保代码稳定性,支持并行开发、便于审查和灵活调整。建议维护明确的长期分支,保持主题分支短小精悍,并定期清理无用分支。配置上可保护关键分支,遵循命名规范。
55 7
|
29天前
|
存储 缓存 Java
图解Git——远程分支《Pro Git》
远程分支是 Git 中用于管理分布式协作的关键概念。远程引用指向远程仓库中的分支和标签,常用 `git ls-remote` 或 `git remote show` 查看。日常开发中,通常使用远程跟踪分支(如 `origin/main`)与远程分支交互,简化远程仓库状态的管理和使用。远程跟踪分支记录远程分支的状态,但本身只读。
27 6
|
2月前
|
机器学习/深度学习 Shell 网络安全
【Git】Git 命令参考手册
Git 命令参考手册的扩展部分,包含了从基础操作到高级功能的全面讲解。
74 3
|
3月前
|
缓存 Java Shell
[Git]入门及其常用命令
本文介绍了 Git 的基本概念和常用命令,包括配置、分支管理、日志查看、版本回退等。特别讲解了如何部分拉取代码、暂存代码、删除日志等特殊需求的操作。通过实例和图解,帮助读者更好地理解和使用 Git。文章强调了 Git 的细节和注意事项,适合初学者和有一定基础的开发者参考。
75 1
[Git]入门及其常用命令

相关实验场景

更多