1.直接刪除.git隱藏文件
2.重新初始化項目
git init
3.將項目提交
用idea
如果遇到以下情況
關於git提交代碼報錯:Push to origin/master was rejected
不管怎么樣權限是第一位,首先要有push權限,沒有push權限,其他的都不行
經過一段驚心動魄的戰斗之后,終於將代碼改成了自己想要的樣子了,此時,萬事俱備只欠東風。只需要將代碼git push提交一下,就能下班了,約妹子吃飯,逛街啦,美滋滋。想想還有點小激動呢。
然而,現實總是殘酷的。偉大主義領袖馬先生說過。戰斗不進行到最后一步的勝利,隨時都可能失敗。博弈論里也有過“一着不慎滿盤皆輸”。看着前人無數次慘痛的教訓之后,我的push也完美的爆出了一個小bug。o(╥﹏╥)o
“Push to origin/master was rejected”短小精湛的bug是如此美妙啊。but為毛會報這個bug呢,提交代碼也沒有錯呀,前面提交的時候也沒有毛病啊。每當遇到bug的時候,菜鳥的心里總是會回響起無數個聲音,“沒毛病啊”,“沒問題啊”,“完美,簡直么得問題啊”,柴犬眉頭一皺,發覺事情沒有這么簡單。一般沒問題的bug通常都是個奇行種。不能用一般的思路去解決。
水深火熱的艱苦奮斗以后,Push to origin/master was rejected推到主分支時被拒絕了(阿西吧,主分支也帶套路的嘛),問題的原因就是:你莫得感情,也莫得錢,所以被丑拒了。呸! 不對,是因為本地倉庫和遠程倉庫的代碼不一樣。簡單來說就是代碼沖突了,復雜來說就是你動了不該動的代碼。
找到了問題所在,接下來就是解決bug的時間了,歡迎收聽你的月亮,我的心…
解決方案No.1
一般代碼沖突的問題,是你在代碼里隨手敲了個空格,tab,或者臉滾了一下鍵盤,導致代碼中出現了原本不該有的東西。此時,你需要做的就是 Ctrl + z 一直撤銷,將代碼恢復,注意不要把你自己修改的代碼也撤回了。畢竟,腦子是個好東西。
解決方案No.2
在git項目對應的目錄位置右鍵打開Git Bash Here(注意項目目錄的位置)
然后在命令窗輸入下面命令:
git pull origin master --allow-unrelated-histories
最后出現完成信息,則操作成功!
再次Push代碼,可以成功進行提交!!!
這句命令的猜想是:允許不相關的歷史提交。類似於try
解決方案 No.3
最簡單粗暴的方法,就是直接將代碼重新Clone下來,然后將你修改的代碼,重新添加進去,再試着push一下。保證成功解決。
解決方案 No.4
最最最最重要的一個方法了,記得檢查一下你需要push的項目,嗯,這是一項很重要的任務,如果你push的項目沒有git push提交過,或者說 你push的項目跟你以前push過的項目搞混了,此時你就已經達到了超凡入聖的境界,“無招勝有招”。
嗯,我很開心,真的。
git pull的時候發生沖突的解決方法之“error: Your local changes to the following files would be overwritten by merge”
今天在使用git pull 命令的時候發生了以下報錯
目前git的報錯提示已經相關友好了,可以直觀的發現,這里可以通過commit的方式解決這個沖突問題,但還是想看看其他大佬是怎么解決這類問題的
在網上查了資料和其他大佬的博客,得到了兩種解決方法:
方法一、stash
1 git stash 2 git commit 3 git stash pop
接下來diff一下此文件看看自動合並的情況,並作出相應修改。
git stash: 備份當前的工作區的內容,從最近的一次提交中讀取相關內容,讓工作區保證和上次提交的內容一致。同時,將當前的工作區內容保存到Git棧中。
git stash pop: 從Git棧中讀取最近一次保存的內容,恢復工作區的相關內容。由於可能存在多個Stash的內容,所以用棧來管理,pop會從最近的一個stash中讀取內容並恢復。
git stash list: 顯示Git棧內的所有備份,可以利用這個列表來決定從那個地方恢復。
git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。
方法二、放棄本地修改,直接覆蓋
1 git reset --hard 2 git pull
3 git pull origin master --allow-unrelated-histories
4 git push
就可以直接提交了