如何一次性获取多个git-graph?脚本输出异常求助
问题分析与解决方案
问题根源
你的脚本所有Git操作都集中在q2目录下的同一个仓库中,三次提交是在master分支上的线性累积提交。因此每次执行git graph时,显示的是当前仓库的累计提交历史(第一次1个提交、第二次2个、第三次3个),而非你预期的三个独立仓库的提交图。同时输出不全或重复的问题,大概率是git graph命令的默认行为导致的(比如你的别名设置了只显示最近N个提交),或是终端输出被截断。
解决方案
根据你的需求,分两种场景处理:
场景1:需要三个独立的Git仓库(对应三个独立的提交图)
修改脚本,为每个成员目录单独初始化Git仓库,确保每个提交都属于独立的仓库,从而得到三个独立的git graph输出:
#!/bin/bash mkdir q2 cd q2 # 成员1的独立仓库 mkdir 12140900-member-1 cd 12140900-member-1 git init echo "iitbhilai" > hello-world git add . git commit -m "file of member-1" git graph cd .. # 成员2的独立仓库 mkdir 12140210-member-2 cd 12140210-member-2 git init echo "iitbhilai" > hello-world git add . git commit -m "file of member-2" git graph cd .. # 成员3的独立仓库 mkdir 12140880-member-3 cd 12140880-member-3 git init echo "iitbhilai" > hello-world git add . git commit -m "file of member-3" git graph cd ..
场景2:保留同一个仓库,展示三次提交的完整历史
如果需要在同一个仓库中查看三次提交的历史变化,先检查你的git graph别名配置,确保它能显示完整的提交历史:
执行以下命令查看别名定义:
git config --get-regexp alias
如果graph别名限制了提交数量,重新设置为显示完整历史的别名:
git config --global alias.graph 'log --graph --oneline --all'
修改后,原脚本执行三次git graph时,会依次显示1个、2个、3个提交的线性历史图。
内容的提问来源于stack exchange,提问作者Kruthi
相关产品推荐
相关产品推荐

