作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要删除远程存储库上的一个分支,该分支已存在 30 天,而且它对当前进程来说非常慢
目前
git fetch --depth=1
list=$(git ls-remote --heads git@xxxxx.xx.xx.com:/xxx/xxx-xxx/xxx-xxx-a | grep ci)
for i in $list
do
if [ -n "$(git log -1 --before='30 days ago' -s origin/$i)" ]; then
git push origin :$i
echo " Deleted Branch $i"
fi
done
最佳答案
虽然 origin/XY
被称为远程分支,但它仍然是存在于本地存储库中的分支。它之所以被称为远程分支,是因为它代表了该名称的远程存储库分支所处的状态。因此,它确实是一个普通指针,指向应完全包含在本地存储库中的提交历史记录。
虽然 git ls-remote
可以告诉您远程存储库中存在哪个分支,但这并不意味着您在本地存储库中将拥有必要的数据来显示有关它的任何信息。请记住,所有操作(除了实际的传输操作,如获取/pull 和推送)都在本地执行。
因此,为了能够调用 git log
,您需要获取属于该远程分支历史记录的所有提交对象。方法是简单地使用 git fetch
从远程存储库中获取对象。没有其他方法可以做到这一点。
因此,如果您想访问远程存储库的日志,则必须克隆它才能在本地获取信息。
另一种选择是在远程计算机本身上执行它,或者让例如将向您显示日志的 Web 界面(gitweb、GitHub 等)。
关于git - 如何在不获取存储库的情况下 git log 远程分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19845527/
我是一名优秀的程序员,十分优秀!