git 的新用戶,我正在運行一個可通過 cpanel 訪問的網站。通常使用 FTP,但注意到 git 選項,所以試了一下。
將我的 public_html 目錄設定為 git remote,將本地存盤庫克隆到我的筆記本電腦上(盡管沒有將任何內容復制到我的本地目錄,這是另一個問題。)
現在我已經設定并完成了一些提交并成功推送但現在遇到了一個問題,每次我提交和推送我都會得到這個回應 -
[remote rejected] master -> master (Working directory has unstaged changes)
error: failed to push some refs to 'ssh://mywebsite/public_html/'
我曾經使用git reset --hard origin/master過重置,我可以成功地獲取、拉動和推送而不會出現任何錯誤。
PC MINGW64 ~/Desktop/mywebsite (master)
$ git pull
Already up to date.
$ git push
Everything up-to-date
所以我創建了一個用于測驗的檔案 git_commands.txt
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
git_commands.txt
nothing added to commit but untracked files present (use "git add" to track)
$ git add .
$ git commit -m "added git_command.txt"
[master 695416e] added git_command.txt
1 file changed, 1 insertion( )
create mode 100644 git_commands.txt
$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 8 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 405 bytes | 405.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To ssh://mywebsite/public_html/
! [remote rejected] master -> master (Working directory has unstaged changes)
error: failed to push some refs to 'ssh://mywebsite/public_html/'
任何幫助將不勝感激,似乎我所做的一切都會在我嘗試推動時立即出現上述錯誤,即使從表面上看我都是“最新的”。
uj5u.com熱心網友回復:
! [remote rejected] master -> master (Working directory has unstaged changes)
這告訴您的是遠程存盤庫ssh://mywebsite/public_html/在其作業目錄中有未暫存的更改。轉到該存盤庫并擦除或提交這些更改。
通常遠程存盤庫是“裸”的;他們沒有簽出任何檔案。將提交推送到裸存盤庫很簡單。
“非裸”存盤庫已檢出檔案。推送時,您正在更新存盤庫和簽出的檔案。如果結帳中沒有更改,這還可以,Git 可以將結帳更新為新的提交。
如果遠程結帳中有未提交的更改并且您推送,那將是一個非常混亂的情況。想象一下,您正在處理您的 public_html 結帳,而其他人正在向它推送;突然間,沒有任何警告,一切都從你身下發生了變化。Git 拒絕讓這種情況發生。
出于這個原因,以及其他原因,git push是一種糟糕的釋放機制。使用 SFTP、FTPS 或 SCP 發送您的更改。
uj5u.com熱心網友回復:
你可以試試:
git pull --rebase origin master
git push --all
在此處輸入圖片說明
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/361396.html
上一篇:gitrebase忽略沖突
