自动修剪,用GIT取或拉

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (34)

如果有人因为工作结束而删除了一个远程分支,而我不知道,我就不会做一个git fetch --prune最终我会把被删除的分支推回去。

是否有一个可行的解决方案,迫使git在取/拉时使用剪枝模式,而不必每次都指定它?

提问于
用户回答回答于

问题:

"git fetch" (hence "git pull" as well) learned to check "fetch.prune" and "remote.*.prune" configuration variables and to behave as if the "--prune" command line option was given.

这意味着,如果将emote.initi.prune设置为true:

git config remote.origin.prune true

任何git fetchgit pull会自动修剪。

注意:git2.12(Q1 2017)将修复与此配置相关的错误,这将使git remote rename行为不端。

用户回答回答于

git config --global fetch.prune true

--prunegit fetchgit pull在所有Git存储库中:

git config --global fetch.prune true

上面的命令附加在您的全局Git配置中(通常是~/.gitconfig)以下几行。使用git config -e --global若要查看全局配置,请执行以下操作。

[fetch]
    prune = true

git config remote.origin.prune true

--prune但是从一个存储库:

git config remote.origin.prune true
                 #^^^^^^
                 #replace with your repo name

上面的命令添加了本地Git配置(通常是.git/config)下面的最后一行。使用git config -e若要查看本地配置,请执行以下操作。

[remote "origin"]
    url = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    fetch = +refs/heads/*:refs/remotes/origin/*
    prune = true

也可以使用--global在第二个命令中,或者改为使用--local在第一个命令中。


git config --global gui.pruneDuringFetch true

如果你用git gui你可能还会对以下问题感兴趣:

git config --global gui.pruneDuringFetch true

附加如下:

[gui]
    pruneDuringFetch = true

扫码关注云+社区