如果您曾經與許多開發者一起開發乙個大專案,那麼使用 git 作為版本控制是乙個最好的選擇。不過 git 很複雜,使用過程中經常會犯各種錯誤。在本文中,我將討論程式設計師在使用 git 時所犯的一些常見錯誤以及如何解決它們。
經過幾個小時的編碼後,您的提交訊息可能存在很多拼寫錯誤,好在有乙個簡單的解決方案:
git commit --amend
該命令將開啟您的編輯器,並允許您更改最後一次提交訊息。因為可能沒人會注意到你寫的 「initial commment」 有三個 m。
假設已經是下午三點了,但是你還沒有吃午飯。飢腸轆轆的你可能直接就用 feature-brunch 作為你的分支名了,哇塞,好美味啊。可是很明顯你寫錯了,應該是 feature-branch 。
所以你可以使用 mv 命令類似重新命名檔案的方式重新命名此分支:將其移動到具有正確名稱的新位置。
如:
git branch -m feature-brunch feature-branch
但如果您已推送此分支,則需要執行幾個額外步驟。我們需要從遠端刪除舊分支並推送新分支:
git push origin --delete feature-brunch
git push origin feature-branch
不小心將所有更改提交到主分支
你可能正在開發一項新功能,由於太倉促,你忘記為它開啟乙個新的分支。這時候已經提交了大量檔案,而且這些提交都位於主分支上。
現在我們需要使用以下三個命令將所有這些更改回滾到新分支:
注意:確保先提交或儲存更改,否則一切都將丟失!
git branch feature-branch
git reset head~ --hard
git checkout feature-branch
這將建立乙個新分支,然後將主分支回滾到您進行更改之前的位置,然後最終檢出您之前所有更改完整的新分支。
忘了將檔案新增到最後一次提交
另乙個常見的 git 陷阱是過早提交。你可能錯過了乙個檔案,忘了儲存它,或者需要對最後一次提交做乙個小改動。這時候 --amend 再次成為你的朋友。
新增忘掉的檔案,然後執行該此靠譜命令:
git add missed-file.txt
git commit --amend
此時,您可以修改提交訊息,也可以只儲存它以使其保持不變。
但是如果你做的恰恰相反呢?如果您新增了乙個不想提交的檔案,該怎麼辦?乙個流氓env檔案,乙個構建目錄,乙個你不小心儲存到錯誤資料夾的狗的?這一切都是可以解決的。
如果您所做的只是暫存檔案但尚未提交,那就像重置該暫存檔案一樣簡單:
如果你已經提交了這些改變,那也不用擔心了。您只需要在之前執行額外的步驟:
上述命令將撤消提交,刪除影象,然後在其位置新增新提交。
這個命令適用於一切都出錯的地方。當您從stack overflow中複製貼上太多解決方案時,您的repo處於比開始時更糟糕的狀態。我們都遇到過此情況。
git reflog 顯示了您已完成的所有事情的列表。然後它允許你使用git的神奇時間旅行技能回到過去的任何一點。但是你不應該輕易使用。
要獲取此列表,請鍵入:
git reflog
我們所做的每乙個動作,git 都記錄下來。下面是執行該命令的輸出示例:
3ff8691 (head -> feature-branch) head@: branch: renamed refs/heads/feature-brunch to refs/heads/feature-branch
3ff8691 (head -> feature-branch) head@: checkout: moving from master to feature-brunch
2b7e508 (master) head@: reset: moving to head~
3ff8691 (head -> feature-branch) head@: commit: adds the client logo
2b7e508 (master) head@: reset: moving to head~1
37a632d head@: commit: adds the client logo to the project
2b7e508 (master) head@: reset: moving to head
2b7e508 (master) head@: commit (amend): added contributing info to the site
dfa27a2 head@: reset: moving to head
dfa27a2 head@: commit (amend): added contributing info to the site
700d0b5 head@: commit: addded contributing info to the site
efba795 head@: commit (initial): initial commit
記下最左邊的列,因為這是索引。如果要返回歷史記錄中的任何一點,請執行以下命令,將替換為該引用,例如dfa27a2。
git reset head@
你是否有自己的一些 git 技巧?歡迎分享!
最常見的http錯誤
5.http 401錯誤 未經授權 訪問者試圖訪問受限頁面但未經授權時,返回http 401錯誤。錯誤登入嘗試是導致這一錯誤的主因。web伺服器通過返回http 400錯誤告訴訪問者,訪問者用來訪問 的程式出錯,或訪問請求途中遭到破壞。403錯誤類似於401錯誤,不同之處在於401錯誤是未經授權,而...
5種最常見的http錯誤
對對http 500錯誤的定義已經充分證明了這是乙個最常見的http錯誤。一般來說,http 500 錯誤就是web伺服器發生內部錯誤時返回的資訊。例如,web伺服器過載時將無法正確處理訪問請求。根據google的搜尋資料統計,http 500 錯誤發生機率是404錯誤的兩倍 大多數人都知道這個錯誤...
常見的大資料架構都有哪些(三)
在大資料的發展下,很多的企業也開始重視大資料的應用。而在生活中,大資料也開始變得十分流行了,這些都得益於大資料的架構生態圈打通。我們在這篇文章中重點給大家介紹一下大資料的架構例項,希望能夠幫助大家更好地理解大資料架構。說到大資料的結構我們需要先介紹一下大資料,大資料指無法在一定時間範圍內用常規軟體工...