這是我參與8月更文挑戰的第22天,活動詳情檢視:8月更文挑戰。為應掘金的八月更文挑戰
,
如何解決git上傳檔案出錯[rejected] master -> master (fetch first) error: failed to push some refs to '
剛開始用git上傳檔案的時候遇到了一些問題 第一個問題 上傳步驟:
git add .
git commit -m "提示訊息"
git push origin master
複製程式碼
出錯:
! [rejected] master -> master (fetch first) error: failed to push some refs to ' 。。。'
複製程式碼
出現這個問題是因為github中的README.md檔案不在原生程式碼目錄中,可以通過如下命令進行程式碼合併
git pull --rebase origin master
複製程式碼
第二個問題 ! [remote rejected] master -> master (pre-receive hook declined)
在推送程式碼時報錯如上,網上搜到的方法說是專案的setting中master是受保護的專案,所以開發者無法推送,解決方法是修改protected的設定,或者新建一個分支,推送到自己的分支上
前天準備上傳一個project到GitLab上,但是試了很多次都上傳不上去,報錯如下:
! [remote rejected] master -> master (pre-receive hook declined)
一開始還以為自己使用者名稱和密碼錯誤,試了好多次,網上搜所索也沒搜尋到明確的結果,不過最後還是找到了解決的辦法。
git push不上去的原因在於所push的分支許可權為protected,只有專案的管理員或者專案的管理員指派的具有相應許可權的人才能進行push,要進行專案的push,有如下兩種方法:
1.將所要push的內容所在的分支的protected許可權關閉
(1)進入所在專案的settings
(2)點選進入Protected branches,點選unprotected將master分支的許可權改變,即關閉master的protected許可權
2.新建其它分支,將專案push到新建的分支上,後期再進行merge
(1)新建分支
git branch 分支名
複製程式碼
(2)切換分支
git checkout 分支名
複製程式碼
(3)進行專案上傳
git add .
git commit -m "提交的資訊"
git remote add origin 遠端倉庫地址
git push -u origin 分支名
複製程式碼
沒事就來寫寫部落格哈哈哈!
第三個問題
git add .
git push origin master
複製程式碼
出現了這樣的問題 everything up-to-date
原因:git提交改動到快取,要push的時候不會將本地所有的分支都push掉,所以出現這個問題。那麼我們就需要新建分支提交改動然後合併分支。
1.先建立一個新的分支提交改動
git branch newbranch
複製程式碼
2.檢查這條命令是否建立成功
git branch
複製程式碼
這時終端會輸出:
newbranch
*master
複製程式碼
這樣就建立成功了,前面的*代表的是當前你所在的工作分支,接下來就要切換工作分支。
3.git checkout newbranch
4.然後將你的改動提交到新的分支上
git add .
git commit -m "提示訊息"
複製程式碼
此時可以檢查下提交情況。如果提交成功,我們接下來就要回主分支了, git checkout master
5.我們將新分支提交的改動合併到主分支上
git merge newbranch
複製程式碼
合併分支可能產生衝突這是正常的,雖然我們這是新建的分支不會產生衝突,但還是在這裡記錄下。可以用
git diff 來檢視產生衝突的檔案,然後做對應的修改再提交一次就可以了。
6.我們的問題解決了,接下來就可以push程式碼了
git push -u origin master
複製程式碼
7.最後,新建分支的朋友別忘了刪除分支
git branch -D newbranch
複製程式碼
如果想保留分支只是想刪除已經合併的部分只要把大寫的D改成小寫的d就行了。
總結,我在上傳的過程中大概就遇到了這幾個主要問題,網上搜了很多解決方案,發現即使遇到的問題一樣,解決方法也可能不適用自己。記錄一下,以後再看有沒有其他解決方法和問題。