当前位置: 代码迷 >> 综合 >> git cherry-pick高级使用 忽略版本中的某个文件
  详细解决方案

git cherry-pick高级使用 忽略版本中的某个文件

热度:35   发布时间:2024-01-24 05:26:06.0

       在git的高级合并命令中有一个cherry-pick命令,该命令是将指定版本的全部信息(包括提交人、提交时间、提交说明)合并到当前分支

例如:dev分支有一个提交版本6981773,该版本修改了11.txt和22.txt

该版本现在想把该版本合并到baseline,使用命令 git cherry-pick 6981773

可以看到本次合并是把11.txt和22.txt的修改全部合并到baseline分支。

 

但是我现在的需求是如果合并版本中存在22.txt的修改,22.txt的修改不允许合并到baseline分支。

怎么办?

1.还是使用cherry-pick命令。

git cherry-pick -n 6981773

注意本次命令中添加了'-n'参数。意思是不自动提交

2.查看本次合并版本中是否存在对22.txt的修改

git status -s

3.从第二条命令中得知本次合并中对22.txt进行了修改,我们要忽略22.txt的修改。

我们要在baseline分支的暂存区中将22.txt的修改reset掉。

git reset HEAD 22.txt

4.此时22.txt已经从暂存区中reset掉了

.

5.将22.txt的修改彻底从baseline分支丢弃

6.再来看暂存区操作文件

7.获取该版本在dev分支的提交信息

git log --pretty=format:提交者:%an,提交时间:%ad,提交说明:%s 6981773 -1

8.使用之前的提交信息,在baseline分支进行重新提交

git commit --author=wang******* --date="Wed Dec 18 16:23:10 2019 +0800" -m "update1122"

9.现在再次查询提交过来的版本信息

提交人、提交时间、提交说明都与原来一样,本次提交中22.txt的修改也已经被忽略掉