Fel*_*xyz 112 git version-control branch git-remote git-branch
从手册页:
Run Code Online (Sandbox Code Playgroud)Deletes all stale tracking branches under <name>. These stale branches have already been removed from the remote repository referenced by <name>, but are still locally available in "remotes/<name>".
所以我删除了一堆分支
git push origin :staleStuff
Run Code Online (Sandbox Code Playgroud)
然后跑了
git remote prune origin
Run Code Online (Sandbox Code Playgroud)
但是,只修剪了一个本地分支.其中一些分支是由我创建的,一些是由同事创建的.这是否表明我首先没有正确跟踪这些分支?
max*_*max 187
当您使用时git push origin :staleStuff,它会自动删除origin/staleStuff,因此当您运行时git remote prune origin,您已经修剪了一些被其他人删除的分支.您的同事现在更有可能需要运行git prune以摆脱已删除的分支.
到底究竟git remote prune是什么?主要思想:git remote prune命令不触及本地分支(不跟踪分支),应手动删除.
现在,一个更好理解的现实例子:
您有一个带有2个分支的远程存储库:master和feature.假设您正在处理两个分支,因此您在本地存储库中具有这些引用(给出完整的引用名称以避免任何混淆):
refs/heads/master(短名master)refs/heads/feature(短名feature)refs/remotes/origin/master(短名origin/master)refs/remotes/origin/feature(短名origin/feature)现在,一个典型的场景:
feature,将其合并到远程存储库中master并feature从远程存储库中删除分支.git fetch(或git pull)时,不会从本地存储库中删除任何引用,因此您仍然拥有所有这4个引用.git remote prune origin.feature分支不再存在,因此应该删除refs/remotes/origin/feature一个陈旧的分支.refs/heads/feature,因为git remote prune不删除任何refs/heads/*引用.可以通过branch.<branch_name>.merge配置参数识别与远程跟踪分支相关联的本地分支.任何工作都不需要此参数(可能除外git pull),因此可能会丢失.
(通过评论中的示例和有用信息更新)
| 归档时间: |
|
| 查看次数: |
121813 次 |
| 最近记录: |