最近在开发的时候偶然发现,同事在本地使用
git branch -a
会看到我已经删除的远程分支,
git fetch
之后依然能看到,然后同事就来询问我为什么不清理掉那些久远的分支,然而我确实是执行了
git push origin --delete branchName
删除每个版本后不用的分支。当时感觉非常奇怪,然后又发现,我在本地也能看到同事已经删除的远程分支。当时我就蒙蔽了,非常蒙蔽。后来查找资料才知道,我们需要使用
git remote prune origin
。
先调用
git remote show origin
该命令能够获取远端分支信息,你可以看到和本地和远端不同步的地方:
$ git remote show origin
* remote origin
Fetch URL: git@gitlab.xxx.git
Push URL: git@gitlab.xxx.git
HEAD branch: master
Remote branches:
dev_chj tracked
dev_pr tracked
dev_pr_v13 tracked
dev_wcc tracked
dev_wcc_city tracked
dev_xgm tracked
develop tracked
hofix_jingxiaoshang tracked
hotfix_code_sort tracked
hotfix_groupclueimport tracked
master tracked
refs/remotes/origin/dev_cjc stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_agent stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_brand stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_channel_ad stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_channel_youhua stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_chonggouquanxian stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_dahuanxue stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_deletegame stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_getActivity_info stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_jiechufenghao stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_kefuwaihu stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_notice stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_refreshtoken stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_v10_0904 stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_v12 stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_v14 stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_v16 stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_v16_tmp stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_v9 stale (use 'git remote prune' to remove)
refs/remotes/origin/feature_youhua_shiro stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_cardno stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_channel_export stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_export stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_import_cardorder stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_master stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_master_sql stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_page stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_session_redis stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_sql stale (use 'git remote prune' to remove)
refs/remotes/origin/hofix_tishixiansuo stale (use 'git remote prune' to remove)
refs/remotes/origin/hotfix_authc stale (use 'git remote prune' to remove)
release tracked
test tracked
Local branches configured for 'git pull':
dev_chj merges with remote dev_chj
dev_pr merges with remote dev_pr
dev_wcc merges with remote dev_wcc
dev_wcc_city merges with remote dev_wcc_city
dev_xgm merges with remote dev_xgm
develop merges with remote develop
feature_dahuanxue merges with remote feature_dahuanxue
feature_v16 merges with remote feature_v16
master merges with remote master
release merges with remote release
test merges with remote test
Local refs configured for 'git push':
dev_chj pushes to dev_chj (local out of date)
dev_pr pushes to dev_pr (up to date)
dev_wcc pushes to dev_wcc (up to date)
dev_wcc_city pushes to dev_wcc_city (up to date)
dev_xgm pushes to dev_xgm (local out of date)
develop pushes to develop (local out of date)
master pushes to master (local out of date)
release pushes to release (up to date)
test pushes to test (local out of date)
* 远程 origin
获取地址:http://openapi2.0.git
推送地址:http://openapi2.0.git
HEAD分支:master
远程分支:
beta 已跟踪
develop 已跟踪
master 已跟踪
refs/remotes/origin/communal 过时(使用 'git remote prune' 来移除)
refs/remotes/origin/lt-v1 过时(使用 'git remote prune' 来移除)
release/1.0 已跟踪
为 'git pull' 配置的本地分支:
beta 与远程 beta 合并
develop 与远程 develop 合并
master 与远程 master 合并
为 'git push' 配置的本地引用:
beta 推送至 beta (最新)
develop 推送至 develop (本地已过时)
master 推送至 master (本地已过时)
过时的就是和本地不同步的分支,本地已过时的表示你需要移除这个分支了。
这个时候你需要调用
git remote prune origin
同步远程的分支到本地,这样远程已经被删除的分支,本地就不会再看见了。
初始化: git init
连接远程仓库:git remote add origin git@github.com:yourName/repositoryname.git
从远程仓库pull文件:git pull origin master
提交代码到暂存: git add . (提交暂存)
提交代码: git commit -m (注释什么操作)
推送到远程仓库:git push -u origin master (master 默认分支)
在团队开发项目中,我们经常会存在协作开发的问题,这就会出现一种很常见的现象,有的分支在远程其实很早就被删除了,但是你在本地由于之前的缓存仍然能看到这些远程已经删除掉的分支。比如我这个代码库,可以看到我这个远程分支其实只有 develop 和 master 两个分支。,可以发现现在本地缓存的远程分支已经被删掉了,只剩下两个远程确实存在的分支信息。也能发现确实只有两个有效的远程分支了。发现我们本地其实缓存了好多远程分支。也能发现这里确实缓存了好多远程分支。
git-prune
如果ready/*模式中的任何分支超过 1 天,都将从origin删除。
任何其他分支,除了master ,如果超过 30 天,将从origin删除。
不会删除任何本地分支。
远端来源网址
从本地git存储库获取git远程源URL。 记住! 远程起源必须首先存在!
请考虑关注该项目的作者 ,并考虑为该项目以显示您的 :red_heart: 和支持。
使用安装:
$ npm install --save remote-origin-url
const origin = require ( 'remote-origin-url' ) ;
异步/等待
( async ( ) => {
let url = await origin ( ) ;
console . log ( url ) ;
// url => "https://github.com/jonschlinkert/remote-origin-url.git"
} ) ( ) ;
origin ( ( err , url ) => {
if ( err ) return co
ssh: connect to host github.com port 22: Connection timed out
解决方法:
在C:/Users/DELL/.ssh/中新建一个config文件
重新执行 $ git push -u origin master:
这个方法是从国外一个人的博客中找的,具体原理是什么我还不太清楚,但是觉得似乎有一点点风险。先占个坑,假如在后面学习过程中能够知道是什么原理了再来补上。
fatal:remote origin already exists
命令目的:
在某一建立好的本地仓库(learngit为本地仓库名)中
在你经常使用的命令当中有一个git branch –a 用来查看所有的分支,包括本地和远程的。但是时间长了你会发现有些分支在远程其实早就被删除了,但是在你本地依然可以看见这些被删除的分支。
你可以通过命令,git remote show origin 来查看有关于origin的一些信息,包括分支是否tracking。
Local refs configured for ‘git ...
Git remote prune origin 同步远程分支与本地分支的改动
查看本地和远程分支可以用命令git branch -a, 将会显示包括本地和远程的所有分支。然而多个人同时维护多个分支的时候,本地分支与远程分支没有能够及时同步而出现偏差,可应用命令git remote show origin 来查看本地库与远程库的关系。
图中显示master分支已经被tracked,而两外两个分支表示已经在远程端被删除,而本地还可以看到,提示可以应用命令git remote prune移除该两个分支,保持本地分
官网下载:https://git-scm.com/downloads
下载后按照默认设置安装即可,安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
2.使用github仓库
创建仓库:
点击 new respository后进入下面的页面
git prune
https://git-scm.com/docs/git-prune
* Prune all unreachable objects from the object database
unreachable objects 指的是.git\objects中没有
请查看本自述文件底部的愿望清单以了解将来的计划。
在投票选举功能。
新闻2019-08-23:我昨晚在上发布了这个项目,直到今天早上醒来并在subreddit上找到它! r / git很棒!
更多新闻2019-08-23:显然我对交叉发布也使其在一夜之间排名第3!
sudo apt-get install git python3 python3-pip
pip install awscli git-remote-aws
使用您的AWS密钥和机密配置awscli (如果已完成,请跳过此步骤)
aws configure
配置的角色或用户应附加以下策略的子集(或全部)
AmazonEC2ReadOnlyAcce
git创建fork仓库和关联fork仓库 & git提交新分支之git删除本地分支和git删除远程分支——git remote prune origin同步分支 & 跨分支合并-新建分支之本地和远程仓库
跨分支合并
// ori-远程主库 origin-自己主库
git checkout -b product-v2sp10-2022-3-22(本地新建并拉取同名分支) remotes/ori/product-v2sp10-2022-3-22(主库分支) // 新建本地sp10并拉取主库s