本文將了解該如何用 git 進行檢查、刪除和整理操作。我們還將介紹如何用 bash 別名和 git 編輯器配置來逃避 vim 以節省時間。
檢查
先了解一下如何檢查改動痕跡。
用 git 進行檢查並不麻煩。相比之下,git 中有不少刪除和撤銷提交以及檔案改動的操作。
撤銷
可以用 git reset、git checkout 和 git revert 撤銷在**庫中所做的改動,這些命令可能有點難理解。
git reset 和 git checkout 既可用於提交也可用於單個檔案的修改,而 git revert 只能用在提交層面。如果你只需要處理尚未合併到協作遠端工作的本地提交,你可以使用這三者中任何一條命令。如果是協同工作且需要撤銷遠端分支中的提交,那麼就用 git revert。
這些命令中的每一條都有多個引數。以下是常見的用法:
指定不同的提交而不是 head,以撤銷自這條提交以來的更改。--hard 指的是撤銷暫存區和非暫存區的更改。
要確保你撤銷的不是協作夥伴所依賴的遠端分支的提交。
head 常用在 my_commit,用來撤銷最近一次提交以來在本地工作目錄的改動。
checkout 最適合用於僅限於本地的撤銷。它不會破壞你的協作夥伴所依賴的遠端分支的提交歷史。
如果你將 checkout 用在分支而不是提交上,head 將會切換到指定分支,並更新成匹配的工作目錄。這是 checkout 命令更常見的用法。
對協作專案而言,revert 是很安全的,因為它不會覆蓋其他使用者分支可能依賴的歷史記錄。
有時候你只想刪除本地目錄中的未追蹤檔案。例如,也許你執行的**在版本庫中建立了許多你不需要的不同型別的檔案。你可以一鍵清除它們!
預設情況下不會刪除 .gitignore 中的未追蹤檔案,但這種行為是可以更改的。
現在你已經知道了 git 中用於撤銷操作的命令,接下來我們再看兩條可以有序排列檔案的命令。
整理
如果暫存區中什麼都沒有,你可以用該命令編輯最新的提交資訊。只有在提交尚未整合到遠端主分支中時才使用該命令!
如果你用的是 python,並希望更改你所構建的包,bump2version 會自動為你建立標籤。一旦將標籤推送出去,你就可以在自己的版本中使用了。這裡有一篇我的指南,可以指導你完成第乙個 oss python 包。跟緊我,確保你不會錯過版本控制的部分!
求助,我被困在 vim **不去了!
使用 git 時,你可能偶爾會發現自己被困在 vim 會話中了。例如,你試著在沒有提交資訊的情況下提交,vim 會自動開啟。如果你不知道 vim 的話,這種情況糟糕透了——在這個關於如何擺脫這一困境的 stack overflow 回答下有超過 4,000 的投票。
以下四步用於在已儲存的檔案中逃離 vim:
1. 按 i 進入插入模式
2. 在第一行輸入你的提交資訊
3. 按下退出鍵——esc
4. 輸入 :x。別忘了冒號(colon)。
更改預設編輯器
git config --global core.editor "atom --wait"
假設你已經安裝了 atom,你現在就可以在 atom 中解決 git 問題了。
建立 git 命令的快捷鍵
在 .bash_profile 中新增以下 alias 命令可以給 git 命令新增快捷鍵:
alias gs='git status '
alias ga='git add '
alias gaa='git add -a '
alias gb='git branch '
alias gc='git commit '
alias gcm='git commit -m '
alias go='git checkout '
你可以調整上述命令,來為任何 git 命令新增快捷鍵。
如果你沒有 .bash_profile,你可以用以下命令在 macos 上建立乙個:
touch ~/.bash_profile
開啟該檔案:
open ~/.bash_profile
現在你在終端鍵入 gs 的效果和鍵入 git status 的效果是一樣的。注意,在終端中你可以輸入快捷鍵後再輸入其它標記。
你也可以使用 git 的別名,但這要求你在輸入快捷鍵命令之前先輸入 git。誰會需要這些額外的按鍵呢?
總結
英文:jeff hale,編譯:機器之心
入門Linux運維工程師,必須要掌握的10個技術點
linux系統的學習,可以選用redhat或centos,特別是centos在企業中用得最多,當然還會有其它版本的,但學習者還是以這2個版本學習就行,因為這兩個版本都是兄弟,沒區別的,有空可以再研究一下suse,有些公司也喜歡用。對於剛入門或準備入門linux運維的來說,我們也整理總結了以下10個必...
入門Linux運維工程師,必須要掌握的10個技術點
閱讀數 232 對於剛入門或準備入門linux運維的來說,我們也整理總結了以下10個必須掌握的技術點和相關工具 1 linux系統基礎,這個不用說了,是基礎中的基礎,連這個都不會就別幹了,參考書籍,可以看鳥哥linux基礎篇,至少要掌握這書60 內容,沒必須全部掌握,但基本命令總得會吧 2 網路服務...
入門Linux運維工程師,必須要掌握的10個知識點
linux系統的學習,可以選用redhat或centos,特別是centos在企業中用得最多,當然還會有其它版本的,但學習者還是以這2個版本學習就行,因為這兩個版本都是兄弟,沒區別的,有空可以再研究一下suse,有些公司也喜歡用。1 linux系統基礎,這個不用說了,是基礎中的基礎,連這個都不會就別...