十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍“Git怎么获取本地未push的所有commit”,在日常操作中,相信很多人在Git怎么获取本地未push的所有commit问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Git怎么获取本地未push的所有commit”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
创新互联是专业的高阳网站建设公司,高阳接单;提供成都网站制作、成都做网站、外贸营销网站建设,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行高阳网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
有时候我们会在本地提交多次后再 push,因此在拦截 push 时,需要获取到当前要 push 的所有 commit 信息,然后获取每个 commit 修改的文件。
获取要 push 信息可以通过 git log @{u}.. --oneline
:
504318deMacBook-Pro ShixinDemo % git log @{u}.. --oneline
4e4655b (HEAD -> master) 拦截跳转
f947180 修改文件
git log
非常强大,它可以有这些使用场景:
获取本地和远端的 commit 差异
获取指定时间内的提交记录,可以具体到谁、什么时候、修改了哪些
获取具体某次提交修改的文件
上面我们使用的参数 @{u}..
就是表示获取本地和远端的 commit 差异,然后 --oneline
表示不打印具体信息,只打印 short commit id 和 commit message。
如果要获取指定时间内的提交记录,可以这样:
git log --pretty="%an(%cd) %h - %s" --since="2022-09-01" --no-merges --name-status
命令执行结果:
504318deMacBook-Pro ShixinDemo % git log --pretty="%an(%cd) %h - %s" --since="2022-09-01" --no-merges --name-status
zhangshixin(Fri Dec 16 22:34:49 2022 +0800) 4e4655b - 拦截跳转
M app/src/main/java/com/example/heicdemo/MainActivity.kt
zhangshixin(Fri Dec 16 22:34:30 2022 +0800) f947180 - 修改文件
M .idea/gradle.xml
M .idea/misc.xml
D .idea/runConfigurations.xml
A android10_dem_heic_output.heic
A app/src/main/assets/android10_dem_heic_output.heic
R100 app/src/main/res/drawable/mushroom.jpg app/src/main/assets/mushroom.jpg
A app/src/main/assets/mushroom.webp
M app/src/main/java/com/example/heicdemo/MainActivity.kt
A app/src/main/res/drawable/mushroom.webp
M app/src/main/res/layout/activity_main.xml
pretty
的参数用于指定打印的内容和格式;since
参数用于指定查看时间范围;no-merges
表示过滤掉 merge 时生成的额外 commit;name-status
表示展示出文件的修改状态(M 表示修改;D 表示删除;A 表示增加;R 表示重命名)。
知道 commit ID 后,可以通过 git show --pretty="" --name-only $commitId
获取这个 commit 影响的信息:
04318deMacBook-Pro ShixinDemo % git show --pretty="" --name-only 4e4655b
app/src/main/java/com/example/shixindemo/MainActivity.kt
git show
可以用来查看 commit 的 commit message 和修改的文件、文件具体内容等信息。上面的代码中我们使用了 name-only
参数表示只要查看修改的文件即可。
到此,关于“Git怎么获取本地未push的所有commit”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!