用Git 命令行列出一个分支修改文件列表的脚本

在自动化执行过程中需要找到这个分支修改的文件列表,就像github pull request里面那样,试了几种办法,这个办法是成功的。

#获取当前分支名:

CURRENT_BRANCH=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')  
echo $CURRENT_BRANCH

#获取当前分支修改的commit的id:
BRANCH_WORKING_COMMITS=$(git log --no-merges $CURRENT_BRANCH ^master --oneline | cut -d' ' -f1 | paste -s -d' ' - )
echo $BRANCH_WORKING_COMMITS

#根据commit的id,列出来所有修改的文件名,sort | uniq用来去重,如果需要过滤文件夹或者类型的话,可以在renames后面加“ -- folder”, 如果需要过滤文件类型的话可以再加“| grep xxx.xx”。
CHANGED_SPECS=$(git show --pretty="" --name-only $BRANCH_WORKING_COMMITS --no-renames  | sort | uniq | paste -s -d, -)
echo $CHANGED_SPECS

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git中,可以使用不同的命令来合并两个分支。 一种常用的合并分支的方法是使用`git merge`命令。首先,确保你已经切换到目标分支,即要将其他分支合并到哪个分支上。然后使用以下命令: ``` git merge <要合并的分支名> ``` 例如,如果你想将`dev`分支合并到`main`分支上,你可以执行以下命令: ``` git checkout main git merge dev ``` 这将会将`dev`分支上的更改合并到`main`分支上,并自动生成一个新的提交来表示该合并操作。 另一种常见的合并分支的方法是使用`git rebase`命令。该命令允许你将一个分支的更改应用到另一个分支上,并保持提交历史的线性。使用以下命令可以完成这个操作: ``` git checkout <要应用更改的分支名> git rebase <要合并的分支名> ``` 例如,如果你想将`feature`分支的更改应用到`develop`分支上,并保持提交历史的线性,你可以执行以下命令: ``` git checkout develop git rebase feature ``` 这将会将`feature`分支上的更改应用到`develop`分支上,并保持提交历史的线性。 无论选择哪种命令来合并两个分支,最终的结果都是将一个分支的更改应用到另一个分支上。但是在`git merge`和`git rebase`之间存在差异。`git merge`会生成一个新的合并提交来表示合并操作,而`git rebase`会将一个分支上的更改应用到另一个分支上,并保持提交历史的线性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值