10個你應該了解的Git命令(以及Git省時小竅門)
在本文中,我們將討論那些作為開發人員、數據科學家或產品經理應該知道的各種各樣的Git命令。并且將使用Git查看、刪除和整理。此外,我們還將介紹如何使用Bash別名和Git編輯器配置轉義Vim和節省時間的方法。
如果你不熟悉基本的git命令,那么在閱讀本文之前,請查看我之前關于git工作流的文章。
下面是需要了解的10個命令和它們的一些常見標志。每個命令都鏈接到該命令的Atlassian Bitbucket指南。
查看信息
首先,讓我們來查看變化。
- git diff——查看所有本地文件更改。可以附加文件名,以僅顯示一個文件的更改。
- git log——查看所有提交歷史記錄。也可以用于具有git log -p my_file的文件。輸入q退出。
- git blame my_file——查看誰更改了my_file中的內容和時間。
- git reflog——顯示本地存儲庫HEAD的更改日志。有助于找到遺失的文件。
用git查看信息并不是很混亂。相比之下,Git提供了大量的選項來刪除、撤消提交和文件更改。
撤消信息
git reset、git checkout和git revert用于撤消對存儲庫所做更改的影響。這些命令可能很難理解。
git reset和git checkout可用于提交和單個文件。git revert僅用于提交級別。
如果你只是處理尚未合并到協作遠程工作中的本地提交,則可以使用這些命令中的任何一個。
如果你正在協作工作,并且需要撤銷在遠程分支中的提交,那么就使用git revert。
這些命令中的每一個都可以采用多種選擇。 以下是常見用途:
- git reset --hard HEAD——丟棄自最近提交以來的階段性和非階段性更改。
指定一個不同的提交,而不是HEAD來丟棄自提交以來的更改。——hard指定階段性和非階段性的更改。
確保你不會放棄協作者所依賴的遠程分支的提交!
- git checkout my_commit——放棄my_commit之后非階段性的更改。
HEAD通常用于my_commit,以放棄自最近一次提交以來對本地工作目錄的更改。
checkout最適合用于本地撤銷。它不會打亂協作者所依賴的遠程分支的提交歷史記錄!
如果你將checkout與分支一起使用,而不是使用提交,則HEAD將切換到指定的分支,并更新工作目錄以匹配。這是checkout命令的更常見用法。
- git revert my_commit——撤消my_commit中更改的效果。當撤消更改時,revert會進行新的提交。
revert對于協作項目是安全的,因為它不會覆蓋其他用戶的分支所可能依賴的歷史記錄。
revert是安全的
有時你只想刪除本地目錄中的未跟蹤文件。例如,你可能運行了一些代碼,這些代碼創建了許多你在repo中不需要的不同類型的文件。那么,你可以在一瞬間把它們清洗干凈!
- git clean -n——刪除本地工作目錄中的未跟蹤文件
-n標志用于沒有刪除任何內容的干運行。
使用-f標志來實際刪除文件。
使用-d標志刪除未跟蹤的目錄。
默認情況下,.gitignore未跟蹤的文件不會被刪除,但是可以更改此行為。
現在你已經了解了在Git中撤消操作的工具,那么讓我們來看看另外兩個命令。
整理信息
- git commit --amend——將階段性的更改添加到最近的提交。
如果沒有執行暫存,此命令只允許你編輯最近的提交消息。只有在提交未集成到遠程主分支時才使用此命令!
- git push my_remote --tags——將所有本地標記發送到遠程repo。適合于版本控制更改。
如果你正在使用python并對構建的包進行更改,bump2version將自動為你創建標記。一旦你推送了標記,就可以在發布中使用它們。這是我制作***個OSS python包的指南。跟著我,確保你不會錯過版本控制的部分!
救命,我被困在Vim里出不來了!
使用Git,你可能有時會發現自己陷入了Vim編輯器會話。例如,假設你嘗試在沒有提交消息的情況下提交,Vim將自動打開。如果你不了解Vim,這有點難纏——看看這個在Stack Overflow中超過4,000投票的回答,來了解如何擺脫它。
自由了!
以下是使用保存文件逃避Vim的四步計劃:
1.按i進入插入模式。
2.在***行輸入提交消息。
3.按下退出鍵-——Esc。
4.輸入:x。別忘了冒號。
恭喜,你自由了!
改變默認編輯器
為了完全避免Vim,可以在Git中更改默認編輯器。這里是一些帶有通用編輯器命令的文檔。下面是修改我使用的編輯器Atom默認值的命令:
假設你已經安裝了Atom,現在可以解決其中的Git問題。太棒了!
為Git命令創建快捷方式
通過在.bash_profile中添加以下別名,為Git命令添加快捷方式。

你可以根據自己的喜好調整Git命令的快捷方式。
如果你沒有.bash_profile,可以使用以下命令在macOS上創建一個:

然后打開它:

有關.bash_profile的更多信息,請點擊這里。
現在,當你在終端中輸入gs時,它與輸入git status相同。請注意,你可以在快捷方式之后在終端中輸入其他標志。
你也可以制作Git別名,但是那些要求你在快捷命令之前鍵入git。這就多此一舉了。
包裝
在本文中,你已經看到了一些關鍵的Git命令,并配置了環境以節省時間。現在你已經有了Git和GitHub的基礎。準備好下一步了嗎?
查看這個Bitbucket Git教程,來了解更多。
探索Git分支的交互式指南。分支可能不好理解,但絕對值得一看。
去玩,去學習,向別人解釋這些不同之處。
我希望這篇介紹Git和GitHub的文章對你有用。如果可以,請在你最喜歡的社交媒體上分享,這樣其他人也能找到它。