間隔了一段時間未往gitlab上push文件,近期使用時,發現push時報錯,這里記錄下解決處理的方法。
錯誤一:
[root@361way shell]# git push warning: push.default is unset; its implicit value is changing in Git 2.0 from 'matching' to 'simple'. To squelch this message and maintain the current behavior after the default changes, use: git config --global push.default matching To squelch this message and adopt the new behavior now, use: git config --global push.default simple See 'git help config' and search for 'push.default' for further information. (the 'simple' mode was introduced in Git 1.7.11. Use the similar mode 'current' instead of 'simple' if you sometimes use older versions of Git)
登錄后復制
放”狗”查詢后,得知‘matching’ 參數是 Git 1.x 的默認行為,其意是如果你執行 git push 但沒有指定分支,它將 push 所有你本地的分支到遠程倉庫中對應匹配的分支。而 Git 2.x 默認的是 simple,意味著執行 git push 沒有指定分支時,只有當前分支會被 push 到你使用 git pull 獲取的代碼。鍵入如下命令:
[root@361way shell]# git config --global push.default matching
登錄后復制
錯誤二:
[root@361way shell]# git push -u origin master To https://361way:mypassword@github.com/361way/shell.git ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://361way:mypassword@github.com/361way/shell.git' hint: Updates were rejected because the remote contains work that you do hint: not have locally. This is usually caused by another repository pushing hint: to the same ref. You may want to first merge the remote changes (e.g., hint: 'git pull') before pushing again. hint: See the 'Note about fast-forwards' in 'git push --help' for details.
登錄后復制
再次push,發現又有報錯,根據報錯內容,大致了解的情況是,本地和遠端的內容可能不一致,建議git pull 一份,再push到romte 。由于平時有些修改會在阿里云服務器上修改過的懶得push到遠端同步,所以本地和遠端的不一致也是有可能的。即然不一致,以阿里云上保存的為準吧,強制同步下。
[root@361way shell]# git push -u origin master --force
登錄后復制
強制同步,發現可以正常同步內容到github上,而且后面再加文件進行同步,發現也未出現報錯了。