mzy git学习,分支以及分支合并(四)

git 鼓励大量使用分支:最后进行master和分支之间的合并

git branch

git branch 查看当前有多少分支,并且将当前在使用的分支用*标注出来。
[一定要注意git的分支有从属概念,即:如果创建一个分支的话,这个分支就是当前分支的分支]
git branch name 创建一个新的分支
git branch dev:创建一个叫做dev的分支。


git checkout / -b

git checkout name 切换一个分支,从当前分支切换到 name分支
例如如果当前是在master主分支上:
git checkout dev:从当前的master分支切换到dev分支

git checkout -b name 创建+切换分支
例如如果当前是在master主分支上:
git checkout -b dev:创建一个分支dev,并且从当前的master分支切换到dev分支。


git merge

git merge name 合并分支:把name分支合并到当前分支
(注意要先把本地的修改add、commit之后才能merge哦)
[不止是把dev分支合并到master分支上哦,因为git鼓励使用分支,也可以是除主分支master之外的其它分支之间的合并]
例如如果当前是在master主分支上:
git merge dev:把dev分支合并到master分支上。
例如当前我在dev分支上:
git merge mzy:把mzy分支合并到dev分支上。

注意此时,说的都是没有冲突的情况:如果有冲突,请看下文
如果没有冲突的话,就直接就合并成功了,直接在版本库中体现出来(不用手动add commit),但是只有执行合并动作的分支才会得到合并的结果,被合并分支是不会修改的,但如果冲突了的话,必须手动合并,通用被合并分支中也不会被修改


git branch -d/-D

git branch -d name:删除一个分支
git branch -d dev:在我们把dev分支合并到master分支之后,就可以删除这个dev分支了。此条命令删除dev分支。
这里补充一下,我们正常删除一个分支的话,使用git branch -d就可以了,但是-d参数只能删除已经和upstream分支[我叫做父分支]合并了的分支(不一定就是master分支,也可以是其它次分支之间的合并);
但是如果没有merge过的话,用-d参数就会提示:error: The branch ‘dev’ is not fully merged.
但是下面也正好提醒了:If you are sure you want to delete it, run ‘git branch -D dev’.
如果你要强制删除这个分支,确认这个分支没得用了的话,就可以使用-D参数,强制删除
git branch -D dev-tmp

径,并在每个文件内容之间插入一个空行。 以下是 Java 代码实现: ```java import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.List; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.write.metadata.WriteSheet; import com.alibaba.excel.write.metadata.WriteTable; import com.alibaba.excel.write.metadata.fill.FillConfig; import com.alibaba.excel.write.metadata.fill.FillWrapper; public class ExcelMerge { // 定义要遍历的文件夹路径 private static final String FOLDER_PATH = "C:/excel/"; // 定义要合并到的文件名 private static final String MERGE_FILE_NAME = "mzy-merge.xlsx"; // 定义每个被合并文件内容最前部插入的内容 private static final String FILE_PATH_PREFIX = "文件路径:"; public static void main(String[] args) { // 获取一周前的日期 Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.DATE, -7); Date oneWeekAgo = calendar.getTime(); // 获取所有 Excel 文件 List<File> excelFiles = getAllExcelFiles(new File(FOLDER_PATH)); // 遍历 Excel 文件,将一周内修改的文件内容合并mzy-merge.xlsx 文件中 ExcelWriter excelWriter = null; try { excelWriter = EasyExcel.write(MERGE_FILE_NAME).build(); WriteSheet writeSheet = EasyExcel.writerSheet().build(); for (File excelFile : excelFiles) { if (excelFile.lastModified() < oneWeekAgo.getTime()) { continue; } System.out.println("正在合并文件:" + excelFile.getAbsolutePath()); List<List<String>> data = EasyExcel.read(new FileInputStream(excelFile)).sheet().doReadSync(); for (int i = 0; i < data.size(); i++) { data.get(i).add(0, FILE_PATH_PREFIX + excelFile.getAbsolutePath()); } if (!data.isEmpty()) { data.add(0, new ArrayList<>()); } WriteTable writeTable = EasyExcel.writerTable().needHead(false).build(); FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build(); FillWrapper fillWrapper = FillWrapper.builder().excelFile(excelFile.getAbsolutePath()).sheetNo(0).build(); excelWriter.fill(data, fillConfig, writeSheet, writeTable, fillWrapper); } } catch (Exception e) { e.printStackTrace(); } finally { if (excelWriter != null) { excelWriter.finish(); } } } /** * 获取指定文件夹下所有 Excel 文件(含子文件夹) * * @param folder 文件夹 * @return Excel 文件列表 */ private static List<File> getAllExcelFiles(File folder) { List<File> excelFiles = new ArrayList<>(); if (folder.isDirectory()) { File[] files = folder.listFiles(); if (files != null) { for (File file : files) { if (file.isDirectory()) { excelFiles.addAll(getAllExcelFiles(file)); } else if (file.isFile() && file.getName().endsWith(".xlsx")) { excelFiles.add(file); } } } } return excelFiles; } } ``` 这段代码使用了 EasyExcel 库来读写 Excel 文件,具体实现步骤如下: 1. 获取一周前的日期; 2. 遍历指定文件夹下所有 Excel 文件,并筛选出最后修改时间在一周内的文件; 3. 读取每个符合条件的 Excel 文件内容,并在最前部插入文件路径信息和一个空行; 4. 将每个 Excel 文件内容填充到 mzy-merge.xlsx 文件中的对应位置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值