Github本地仓库修改后push远程的方案

今天使用GitHub自建笔记仓库,发现将本地仓库和远程仓库连接后,在本地修改无法push覆盖远程仓库,同时出现了千奇百怪的报错。上网爬文实验各种方法后,终于找到了一个行之有效的解决方案。

感谢原作者:刘娟娟PRESSone
文章原链接:Github进行fork后如何与原仓库同步

merge前的设定

step 1、 进入到本地仓库的目录:

1
cd /c/users/田豆豆/Documents/Personal

step 2、 执行命令 git remote -v 查看你的远程仓库的路径:

如果只有上面2行,说明你未设置upstream(中文叫:上游代码库)。一般情况下,设置好一次upstream后就无需重复设置。

step 3、 执行命令

1
git remote add upstream https://github.com/shaotianw/siyuan.git

把仓库设置为你的upstream。这个命令执行后,没有任何返回信息;所以再次执行命令git remote -v检查是否成功。

step 4、 执行命令 git status 检查本地是否有未提交的修改。如果有,则把你本地的有效修改,先从本地仓库推送到你的github仓库。最后再执行一次 git status 检查本地已无未提交的修改。依次执行以下步骤:

1
2
3
4
git add -A
git commit -m "your note"
git push siyuan master
git status

一般到这里就大功告成了!下面是merge的相关命令。

merge 的关键命令

以下操作紧接着上面的步骤。

step 5、 执行命令 git fetch upstream 抓取原仓库的更新:

step 6、 执行命令 git checkout master 切换到 master 分支:

step 7、 执行命令 git merge upstream/master 合并远程的master分支:

step 8、 执行命令 git push 把本地仓库向github仓库推送修改

如果担心自己不小心改了哪里,可以再次执行命令 git status 检查哪些文件有变化。这个操作仅是检查,不会改变任何状态,放心用。