Git 命令提示提供工作效率_相關技巧

來源:互聯網
上載者:User

與其他技術相比,Git應該拯救了更多開發人員的飯碗。只要你經常使用Git儲存自己的工作,你就一直有機會可以將代碼退回到之前的狀態,因此就可以挽回那些你深夜裡迷迷糊糊犯下的錯誤。

儘管這麼說,Git的命令列介面可是出了名的難掌握。接下來,就給大家介紹7個小技巧,最大限度發揮Git的作用。

通常,大部分時間我們都只會用到add、commit、branch和push/pull這些命令。大部分人熟悉這套只往一個方向運轉的工作流程。你們有沒有想過,如果自己往倉庫中添加了錯誤的檔案,或是將代碼提交到了錯誤的分支,而且提交資訊還寫錯了的話,自己怎樣才能取消之前的操作?如果你也是按照上面漫畫中所描繪的一樣操作的(即刪除本地專案檔夾,再重新下載倉庫),那麼你就有必要瞭解下面這些Git提示了。

七個你無法忽視的 Git 提示

1. 修改錯誤的提交資訊commit message

提交資訊很長時間內會一直保留在你的程式碼程式庫code base中,所以你肯定希望通過這個資訊正確地瞭解代碼修改情況。 下面這個命令可以讓你編輯最近一次的提交資訊,但是你必須確保沒有對當前的程式碼程式庫working copy做修改,否則這些修改也會隨之一起提交。

$ git commit --amend -m ”YOUR-NEW-COMMIT-MESSAGE”

假如你已經將代碼提交(git commit)推送(git push)到了遠程分支,那麼你需要通過下面的命令強制推送這次的代碼提交。

$ git push <remote> <branch> --force

你可以關注Stack Overflow網站上的這條問答, 擷取更多詳情。

2. 提交之前撤銷 git add

如果你往暫存區staging area中加入了一些錯誤的檔案,但是還沒有提交代碼。你可以使用一條簡單的命令就可以撤銷。如果只需要移除一個檔案,那麼請輸入:

$ git reset <檔案名稱>

或者如果你想從暫存區移除所有沒有提交的修改:

$ git reset

你可以關注Stack Overflow網站上的這條問答, 擷取更多詳情。

3. 撤銷最近一次代碼提交

有時候你可能會不小心提交了錯誤的檔案或一開始就遺漏了某些東西。下面這三步操作可以協助你解決這個問題。

$ git reset --soft HEAD~1
# 對工作檔案進行必要的更改
$ git add -A .
$ git commit -c ORIG_HEAD

你執行第一個命令時,Git會將HEAD指標後移到此前的一次提交,之後你才能移動檔案或作必要的修改。

然後你就可以添加所有的修改,而且當你執行最後的命令時,Git會開啟你的預設文字編輯器,其中會包含上一次提交時的資訊。如果願意的話,你可以修改提交資訊,或者你也可以在最後的命令中使用-C而不是-c,來跳過這一步。

4. Git倉庫撤銷至前一次提交時的狀態

“撤銷”revert在許多情況下是非常有必要的——尤其是你把代碼搞的一團糟的情況下。最常見的情況是,你想回到之前代碼版本,檢查下那個時候的程式碼程式庫,然後再回到現在狀態。這可以通過下面的命令實現:

$ git checkout <SHA>

“”是你想查看的提交擁有的雜湊值Hash Code中前8至10個字元。 這個命令會使<HEAD>指標脫離detach,可以讓你在不檢出check out任何分支的情況下查看代碼——脫離HEAD並不像聽上去那麼可怕。如果你想在這種情況下提交修改,你可以通過建立新的分支來實現:

$ git checkout -b <SHA>

要想回到當前的工作進度,只需要檢出check out你之前所在的分支即可。

你可以關注Stack Overflow網站上的這條問答, 擷取更多詳情。

5. 撤銷合并Merge

要想撤銷合并,你可能必須要使用恢複命令HARD RESET回到上一次提交的狀態。“合并”所做的工作基本上就是重設索引,更新working tree(工作樹)中的不同檔案,即當前提交()代碼中與HEAD遊標所指向代碼之間的不同檔案;但是合并會保留索引與working tree之間的差異部分(例如那些沒有被追蹤的修改)。

$ git checkout -b <SHA>

當然,Git中總是有其他的實現辦法,你可以查看看這篇文章繼續瞭解。

6. 從當前Git分支移除未追蹤的本地檔案

假設你湊巧有一些未被追蹤的檔案(因為不再需要它們),不想每次使用git status命令時讓它們顯示出來。下面是解決這個問題的一些方法:

$ git clean -f -n         # 1
$ git clean -f            # 2
$ git clean -fd           # 3
$ git clean -fX           # 4
$ git clean -fx           # 5

(1): 選項-n將顯示執行(2)時將會移除哪些檔案。
(2): 該命令會移除所有命令(1)中顯示的檔案。
(3): 如果你還想移除檔案件,請使用選項-d。
(4): 如果你只想移除已被忽略的檔案,請使用選項-X。
(5): 如果你想移除已被忽略和未被忽略的檔案,請使用選項-x。
請注意最後兩個命令中X的區別。

更多詳情,請查看官方文檔中關於git-clean的介紹。

7. 刪除本地和遠程Git分支

刪除本地分支:

$ git branch --delete --force <branchName>

或者使用選項-D作為簡寫:

$ git branch -D

刪除遠程分支:

$ git push origin --delete <branchName>

建議:要想更好地掌握Git的用法,請仔細閱讀Git官方文檔。

通過此文,希望能協助到有需要的朋友,謝謝大家對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.