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合并


目录
相关文章
|
2天前
|
测试技术 持续交付 开发工具
掌握 Git 工作流:高效团队协作的关键
【10月更文挑战第22天】本文介绍了 Git 工作流的核心概念和最佳实践,包括分支策略、提交信息、代码审查和合并策略等。通过优化这些环节,可以提高代码管理效率,促进团队成员之间的有效沟通,从而提升团队整体的开发效率。适合开发者和团队管理者阅读。
|
19天前
|
开发工具 git
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
这篇文章是关于Git常用命令的总结,包括初始化配置、基本提交、分支操作、合并、压缩历史、推送和拉取远程仓库等操作的详细说明。
67 1
git学习四:常用命令总结,包括创建基本命令,分支操作,合并命令,压缩命令,回溯历史命令,拉取命令
|
25天前
|
开发工具 git 开发者
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
本文通过具体操作和截图,详细讲解了如何在Git中解决分支冲突问题,包括如何识别冲突、手动解决冲突代码、提交合并后的代码,以及推送到远程分支。
143 3
关于git 解决分支冲突问题(具体操作,包含截图,教你一步一步解决冲突问题)
|
2月前
|
缓存 开发工具 git
Git创建分支以及合并分支
在Git中,创建分支使用`git branch [branch_name]`,切换分支使用`git checkout [branch_name]`。修改文件后,通过`git add [file]`添加到暂存区,然后`git commit`提交到本地仓库。如果是新建分支的第一次推送,使用`git push origin [branch_name]`推送到远程仓库,之后可以简化为`git push`。合并分支时,使用`git merge [branch_name]`将指定分支的更改合并到当前分支。
43 2
Git创建分支以及合并分支
|
20天前
|
开发工具 git
Git分支使用总结
Git分支使用总结
25 1
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
无论团队项目还是个人开发,掌握 Git 命令都是必备技能。本文介绍 Git 的基本概念与命令,如初始化仓库 (`git init`)、添加文件 (`git add`)、提交更改 (`git commit`)、检出分支 (`git checkout`)、合并分支 (`git merge`) 等,还分享了高级技巧如查看差异 (`git diff`)、撤销提交 (`git revert`)、修复合并冲突 (`git mergetool`) 和使用别名简化命令 (`git config --global alias.ci commit`)。
|
2月前
|
测试技术 持续交付 开发工具
掌握 Git 钩子:提升代码质量和团队协作效率
Git 钩子是一种强大的机制,可在特定操作时自动执行脚本,增强代码审查、自动化测试和持续集成流程。本文介绍 Git 钩子的工作原理、配置方法及其在提升代码质量和团队协作效率方面的应用,包括常用的 `pre-commit`、`post-commit`、`pre-push` 和 `post-receive` 钩子类型,并提供了一个使用 ESLint 的 `pre-commit` 钩子示例。通过自动化常见任务,Git 钩子能显著减少人为错误,提高开发效率。
|
2月前
|
机器学习/深度学习 Shell 开发工具
Python使用管道执行git命令报错|4-7
Python使用管道执行git命令报错|4-7
|
2月前
|
存储 Linux 开发工具
Git基础命令,分支,标签的使用【快速入门Git】
本文详细介绍了Git版本控制系统的基础概念和常用命令,包括工作区、暂存区和版本库的区别,文件状态的变化,以及如何进行文件的添加、提交、查看状态、重命名、删除、查看提交历史、远程仓库操作和分支管理,还涉及了Git标签的创建和删除,旨在帮助读者快速入门Git。
Git基础命令,分支,标签的使用【快速入门Git】
|
2月前
|
存储 Linux 开发工具
掌握 Git 命令:每个开发者的必备技能
本文介绍 Git 的核心概念,如仓库、提交、分支与合并,并提供了常用命令,如初始化仓库 (`git init`)、提交更改 (`git commit -m &quot;Commit message&quot;`)、拉取 (`git pull`) 和推送 (`git push`) 等。此外,还分享了高级技巧,如撤销提交 (`git revert &lt;commit&gt;`)、交互式暂存 (`git add -i`) 和使用别名简化命令 (`git config --global alias.ci commit`) 等,帮助开发者提升效率。无论是初学者还是资深开发者,都能从中受益。