6種常見的Git錯誤以及解決的辦法

2022-02-14 04:44:21 字數 3143 閱讀 5630

我們都會犯錯誤,尤其是在使用像git這樣複雜的東西時。如果你是git的新手,可以學習如何在命令列上開始使用git。下面介紹如何解決六個最常見的git錯誤。

經過幾個小時的編碼後,拼寫錯誤很容易帶到你的提交訊息裡面。 幸運的是,有乙個簡單的解決方案。

git commit --amend

這會開啟編輯器,並允許你更改最後一次提交訊息。 沒有人知道你把「addded」單詞多加了乙個字母「d」的拼寫錯誤。

另乙個常見的git陷阱是過早提交。 你少新增了乙個檔案,忘了儲存它,或者需要對最後一次提交做乙個小改動才有意義。--amend再次成為你的朋友。

新增錯過的檔案然後執行該命令。

git add missed-file.txt

git commit --amend

此時,可以修改提交訊息,也可以只儲存它以使其保持不變。

但如果你的做法的正好相反呢?如果新增了不想提交的檔案怎麼辦?乙個環境檔案,乙個構建目錄,或者是一張不小心儲存到錯誤的目錄?這都是可以解決的。

如果你所做的只是對檔案進行了stage操作放入了暫存區,還沒有commit本地**倉庫,那麼只需重新設定暫存區的檔案即可:

如果已經提交了更改,那麼需要先執行乙個額外的步驟:

這將撤銷提交,刪除檔案,然後在其位置新增乙個新的提交。

你正在開發乙個新特性,在匆忙之中,忘記為它開啟乙個新的分支。已經提交了一堆檔案,現在它們都位於主分支(master)上。幸運的是,gitlab可以防止你直接推到master 主分支上。因此,我們可以使用以下三個命令將所有這些更改回滾到乙個新分支:

note

確保首先commit或stash更改,否則所有更改都將丟失!

git branch future-brunch

git reset head~ --hard

git checkout future-brunch

這會建立乙個新分支,然後將主分支回滾到進行更改之前的位置,然後最終檢出新分支,並保留所有先前的更改。

對錯誤分支進行重新命名的方式與用mv命令重新命名檔案的方式類似:將它移動到乙個新的位置,並使用正確的名稱。例如把future-brunch分支名稱更改為feature-branch。

git branch -m future-brunch feature-branch
如果已經push了這個分支到遠端**倉庫,那麼還需要一些額外的步驟。需要從遠端**倉庫刪除舊的分支,將新分支 push 上去:

git push origin --delete future-brunch

git push origin feature-branch

這個命令適用於一切都出錯的地方。 當從stack overflow複製貼上乙個太多的解決方案時,

**倉庫處於比你一開始時更糟糕的狀態。

git reflog向你顯示所有的事情列表。然後,它允許你使用git的神奇時間旅行技巧,回退到過去的任何時間點。這裡應該指出,這是最後的手段,不應該輕易使用。要得到這個列表,輸入:

git reflog
我們採取的每一步,我們所做的每乙個動作,git都有記錄。 在我們的專案上執行該命令得到以下列表:

3ff8691 (head -> feature-branch) head@: branch: renamed refs/heads/future-brunch to refs/heads/feature-branch

3ff8691 (head -> feature-branch) head@: checkout: moving from master to future-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,但是還是忍不住儲存了下來。如果自己以後的過程遇到了這方面的知識,還是可以翻出來看看的

Oracle tns配置的6種常見錯誤解決問題

經過長時間學習oracle,你可能會遇到oracle tns配置問題,這裡將介紹oracle tns配置問題的解決方法。最近忙著安裝oracle資料庫,本來挺簡單的,可老是出現問題,最後自己在網上整理了一些tns錯誤解決方法,希望對初學者有益。常見問題 1 ora 12541 tns 沒有 顯而易見...

ORACLE常見錯誤以及解決辦法

好記性不如爛筆頭,以後將專案中常見的oracle的錯誤,已經解決辦法詳細記錄下來。1.ora 24324 錯誤描述 sql sql shutdown immediate ora 24324 service handle not initialized ora 24323 value not allo...

錯誤檔案ORACLE 常見錯誤以及解決辦法

ps 今天上午,非常鬱悶,有很多簡單基礎的題問搞得我有些迷茫,哎,幾天不寫就忘。目前又不當coo,還是得用心記 哦!好忘性不如爛筆頭,後以將專案中見常的oracle的錯誤,已處理辦法具體記錄下來。1.ora 24324 錯誤描述 sql shutdown immediate ora 24324 se...