我正在尝试编写一个覆盖现有目录的Bash脚本.所以,我有一个目录foo /,我试图用它覆盖bar /.但是当我这样做的时候
cp -Rf foo/ bar/
Run Code Online (Sandbox Code Playgroud)
会发生什么是创建一个新的bar/foo /目录.我不希望这样.foo/a和b中有两个文件.bar /中也有同名文件.我希望foo/a和foo/b替换bar/a和bar/b.
这是一个常见的用例,我克隆一个存储库,签出一个分支,做一些代码更改,进行多次提交,然后当它稳定时,我做一个推送到远程,最终分支被合并和删除.我离开了一个上游的当地分支机构.
我一直在寻找一种删除所有这些分支的安全方法.从描述来看,似乎git remote prune起源正是这样做的.但它似乎并不适合我.
看到以下行为,分支encrdb_init已被删除remote但git remote prune origin命令似乎没有修剪它.我不知道为什么.
$ git branch
bugfix/encrdb_init
* master
$
$ git remote prune origin
$
$ git checkout bugfix/encrdb_init
Switched to branch 'bugfix/encrdb_init'
Your branch is based on 'origin/bugfix/encrdb_init', but the upstream
is gone.
(use "git branch --unset-upstream" to fixup)
$
$ git branch
bugfix/encrdb_init <<< shouldn't this have been pruned?
* master
Run Code Online (Sandbox Code Playgroud)
供参考添加输出 git remote show origin
$ git remote show origin
* remote origin
Fetch URL: …Run Code Online (Sandbox Code Playgroud)