我正在学习如何使用Git的教程。我正在努力将文件推送到新创建的GitHub仓库。但是我收到了错误:
Updates were rejected because the remote contains work that you do not have locally.
我猜这是因为GitHub回购文件中有一个readme.md
文件,由GitHub提供,我当地没有。所以我删除了那个文件。但是我仍然无法推动。我仍然得到同样的信息。
我猜这是因为我必须以某种方式'推送'远程回购中的更改(删除阅读我)?
有人知道怎么做吗?
答案 0 :(得分:1)
所以我删除了那个文件。但是我仍然无法推动。我仍然得到同样的信息。
该删除创建了一个您在本地没有的新提交 问题不在于文件的存在与否,而是在本地存储库和远程存储库之间存在不同的历史记录(提交集)。
使用以下命令设置本地配置:
git config --global pull.rebase true
git config --global rebase.autoStash true
然后只需git pull
。
任何本地work in progress will be stashed,您自己的提交都已重新定位,您的工作已重新应用。然后,您可以查看,添加,提交和推送。
自Git 2。6(2015年9月)以来,该组合(pull.rebase
+ rebase.autostash
)可用:请参阅“Can “git pull
” automatically stash and pop pending changes?”
答案 1 :(得分:0)
使用git rm:
git rm file1.txt
git commit -m "remove file1.txt"
但是如果你只想从Git存储库中删除文件而不是从文件系统中删除它,请使用:
git rm --cached file1.txt
如果你想将更改推送到远程仓库
git push origin branch_name