我有一个本地存储库,意外添加了一个大文件.现在我差不多100个承诺落后了.当我尝试推送到GitHub时,它给了我一个错误.
我需要帮助做我需要做的任何事情才能推动这个存储库的其余部分.
我不需要这个文件,可以永久删除它
(旁注:这是一个带有IPython节点和代码的目录.我有一个脚本自动推送它,这就是为什么我差不多100次提交.我只是注意到它没有同步)
git status
Run Code Online (Sandbox Code Playgroud)
在分支主机上你的分支在100个提交之前超过'origin/master'.
(使用"git push"发布你的本地提交)
没有提交,工作目录清理
git filter-branch --index-filter 'git rm --cached --ignore-unmatch "Education/Coursera/Exploratory Data Analysis/Week1/household_power_consumption.txt"' --tag-name-filter cat -- --all
Run Code Online (Sandbox Code Playgroud)
重写d381c7d5037a6a26abb2b5cef06e57d8b86a398b(189分之95)RM教育/ Coursera /探索性数据分析/ Week1/household_power_consumption.txt'
..
重写f639b57714a5d57ff37b9d4a55c1c69fc0b514a8(189分之176)RM教育/ Coursera /探索性数据分析/ Week1/household_power_consumption.txt"
重写587c8b65f19315ebeb6627a75bd703a5dbdec208 (189分之189)Ref'refs/heads/master'被重写
警告:Ref'refs/remotes/origin/master'保持不变
git rm "Education/Coursera/Exploratory Data Analysis/Week1/household_power_consumption.txt"
Run Code Online (Sandbox Code Playgroud)
致命:pathspec'Education/Coursera/Exploratory Data Analysis/Week1/household_power_consumption.txt'与任何文件都不匹配
git push
Run Code Online (Sandbox Code Playgroud)
警告:push.default未设置; 它的隐含价值在Git 2.0中从"匹配"变为"简单".要在默认更改后压制此消息并维护当前行为,请使用:
git config --global push.default matching要压制此消息并立即采用新行为,请使用:
git config --global push.default simple当push.default设置为'matching'时,git会将本地分支推送到已存在的具有相同名称的远程分支.
在Git 2.0中,Git将默认为更保守的"简单"行为,它只将当前分支推送到'git pull'用于更新当前分支的相应远程分支.
有关详细信息,请参阅'git help config'并搜索'push.default'.
('简单'模式是在Git 1.7.11中引入的.如果你有时使用旧版本的Git,请使用类似模式'current'而不是'simple'计数对象:841,完成.
Delta压缩最多使用2个线程.
压缩对象:100%(578/578),完成.
书写对象:100%(835/835),31.79 MiB | 3.14 MiB/s,完成.
总计835(delta …
你能提供一个(全部或最常见的)操作或命令列表,这些操作或命令会危害git中的历史记录吗?
什么应该绝对避免?
git commit/ git push/ git commit --amend)我希望这个问题(如果它还没有在其他地方之前提出过)成为关于git上常见的可避免操作的某种参考.
此外,我使用git reset了很多,但我还没有完全意识到我可以对存储库(或其他贡献者副本)造成的损害.可能git reset有危险吗?
我提交了一些文件,它说
remote: error: File models/cifar10_gradcam.h5 is 174.65 MB; this exceeds GitHub's file size limit of 100.00 MB
Run Code Online (Sandbox Code Playgroud)
但我已经提交了。我应该如何重置此提交并将此文件添加到 gitignore 并重新提交?
在我做完之后
$ git reset --soft HEAD~1
Run Code Online (Sandbox Code Playgroud)
并重新推
![rejected] master -> master (non-fast-forward) error: failed to push some refs to ' https://github.com/SlowMonk/XAI.git ' 提示:更新被拒绝,因为你当前分支的提示是背后的提示:它的远程对应物。在再次推送之前集成远程更改(例如提示:'git pull ...')。提示:有关详细信息,请参阅“git push --help”中的“关于快进的注意事项”。