rah*_*hul 12 git git-filter-branch
我将一个git repo分成3个.我使用Detach(move)子目录到单独的Git存储库中来分隔文件夹并将它们成功推送到新的git repos.在现有的 repo上,我使用了以下命令来清除移动的目录.
git filter-branch -f --index-filter "git rm -q -r -f --cached --ignore-unmatch lib/xxx/$REPO" --prune-empty HEAD
Run Code Online (Sandbox Code Playgroud)
现在当我做git st原始回购时,我得到:
# On branch 1.5.0
nothing to commit (working directory clean)
Run Code Online (Sandbox Code Playgroud)
当我尝试时git push,我得到:
! [rejected] 1.5.0 -> 1.5.0 (non-fast-forward)
error: failed to push some refs to 'git@github.com:/xxx/.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
我的猜测是使用-f:git push -f origin <branch>
但我希望确保,因为这将修改我现有的回购.
pat*_*yts 15
您对filter分支的使用使您的存储库与远程存储库不同.因此,当您观察时,遥控器会拒绝您的推送并发出警告.在这种情况下,您计划强制更改存储库以匹配已过滤的版本,以便您可以继续使用force标志.您不应该像这样更改已发布的存储库 - 但如果您愿意,也可以.请记住,任何有克隆需要通知的人 - 但如果没有其他人 - 那就继续吧.
如果你想要非常小心 - 现在再做一个原始的克隆.然后你的推动.如果出现错误 - 因为总是可以push --mirror从备份存储库中强制使用它.
| 归档时间: |
|
| 查看次数: |
7407 次 |
| 最近记录: |