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 | git add -A |
一般到这里就大功告成了!下面是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
检查哪些文件有变化。这个操作仅是检查,不会改变任何状态,放心用。