《LINUX實戰:你要用到的 Git 常用命令》要點:
本文介紹了LINUX實戰:你要用到的 Git 常用命令,希望對您有用。如果有疑問,可以聯系我們。
像大多數新手一樣,我一開始是在 StackOverflow 上搜索 Git 命令,然后把答案復制粘貼,并沒有真正理解它們畢竟做了什么.
Image credit:?XKCD
我曾經想過:“如果有一個最常見的 Git 命令的列表,以及它們的功效是什么,這不是極好的嗎?”
多年之后,我編制了這樣一個列表,而且給出了一些最佳實踐,讓新手們甚至中高級開發人員都能從中發現有用的東西.
為了堅持實用性,我將這個列表與我過去一周實際使用的 Git 命令進行了比較.
幾乎每個開發人員都在使用 Git,當然很可能是 GitHub.但年夜多數開發者年夜概有 99% 的時間只是使用這三個命令:
如果你只是單槍匹馬,或者參加一場黑客馬拉松或開發一次性的應用時,它工作得很好,但是當穩定性和可維護性開始成為一個優先考慮的事情后,清理提交、保持分支策略和提交信息的規范性就變得很重要.
我將從常用命令的列表開始,使新手更容易了解 Git 能做什么,然后進入更高檔的功能和最佳實踐.
?
要想在倉庫(repo)中初始化 Git,你只需輸入以下命令即可.如果你沒有初始化 Git,則不克不及在該倉庫內運行任何其他的 Git 命令.
gitinit
如果你在使用 GitHub,而且正在將代碼推送到在線存儲的 GitHub 倉庫中,那么你正在使用的便是遠程(remote)倉庫.該遠程倉庫的默認名稱(也稱為別名)為 origin
.如果你已經從 Github 復制了一個項目,它就有了一個 origin
.你可以使用命令 git remote -v
查看該 origin
,該命令將列出遠程倉庫的 URL.
如果你初始化了本身的 Git 倉庫,并希望將其與 GitHub 倉庫相關聯,則必須在 GitHub 上創建一個,復制新倉庫提供的 URL,并使用 git remote add origin <URL>
命令,這里使用 GitHub 提供的 URL 替換 <URL>
.這樣,你就可以添加、提交和推送更改到你的遠程倉庫了.
最后一條命令用在當你需要更改遠程倉庫時.如果你從其他人那里復制了一個倉庫,并希望將遠程倉庫從原始所有者更改為你本身的 GitHub 帳戶.除了改用 set-url
來更改遠程倉庫外,流程與 git remote add origin
相同.
git remote -v
git remote add origin <url>
git remote set-url origin <url>
復制倉庫最常見的方式是使用 git clone
,后跟倉庫的 URL.
請記住,長途倉庫將連接到克隆倉庫原屬于的帳戶.所以,如果你克隆了一個屬于別人的倉庫,你將無法推送到 GitHub,除非你使用上面的命令改變了 origin
.
gitclone<url>
你很快就會發現本身正在使用分支.如果你還不理解什么是分支,有許多其他更深入的教程,你應該先閱讀它們,再繼續下面的操作.(這里是一個教程)
命令 git branch
列出了當地機器上的所有分支.如果要創建一個新的分支,可以使用命令 git branch <name>
,其中 <name>
表示分支的名字,比如說 master
.
git checkout <name>
命令可以切換到現有的分支.你也可以使用 git checkout -b
命令創立一個新的分支并立即切換到它.大多數人都使用此命令而不是單獨的 branch
和 checkout
命令.
git branch
git branch <name>
git checkout <name>
git checkout -b <name>
如果你對一個分支進行了一系列的更改,假如說此分支名為 develop
,如果想要將該分支合并回主分支(master
)上,則使用 git merge <branch>
命令.你必要先檢出(checkout
)主分支,然后運行 git merge develop
將 develop
合并到主分支中.
git merge <branch>
如果你正在與多個人進行協作,你會發現有時 GitHub 的倉庫上已經更新了,但你的當地卻沒有做相應的更改.如果是這樣,你可以使用 git pull origin <branch>
命令從遠程分支中拉取最新的更改.
git pull origin <branch>
如果您好奇地想看到哪些文件已被變動以及哪些內存正在被跟蹤,可以使用 git status
命令.如果要查看每個文件的變動,可以使用 git diff
來查看每個文件中變動的行.
git status
gitdiff--stat
?
很快你會到達一個階段,這時你希望你的提交看起來整潔一致.你可能還必要調整你的提交記錄,使得提交更容易理解或者能還原一個意外的有破壞性的更改.
git log
?命令可以輸出提交的汗青記錄.你將使用它來查看提交的汗青記錄.
你的提交會附帶消息和一個哈希值,哈希值是一串包括數字和字母的隨機序列.一個哈希值示例如下:c3d882aa1aa4e3d5f18b3890132670fbeac912f7
.
git log
假設你推送了一些可能破壞了你應用法式的東西.你最好回退一個提交然后再提交一次正確的,而不是修復它和推送新的東西.
如果你希望及時回退并從之前的提交中檢出(checkout
)你的應用程序,則可以使用該哈希作為分支名直接執行此操作.這將使你的應用程序與當前版天職離(因為你正在編輯歷史記錄的版本,而不是當前版本).
git checkout c3d88eaa1aa4e4d5f
然后,如果你在那個歷史分支中做了更改,并且想要再次推送,你必需使用強制推送.
注意:強制推送是危險的,只有在絕對需要的時候才能執行它.它將覆蓋你的應用程序的歷史記錄,你將失去之后版本的任何信息.
git push -f origin master
在其他時候,將所有內容保留在一個提交中是不現實的.也行你想在嘗試有潛在風險的操作之前保留當前進度,或者也許你犯了一個錯誤,但希望在你的版本歷史中避免尷尬地留著這個錯誤.對此,我們有 git rebase
.
假設你在當地歷史記錄上有 4 個提交(沒有推送到 GitHub),你要回退這是個提交.你的提交記錄看起來很亂很拖拉.這時你可以使用 rebase
將所有這些提交合并到一個簡單的提交中.
git rebase -i HEAD~4
上面的命令會打開你計算機的默認編纂器(默認為 Vim,除非你將默認修改為其他的),提供了幾個你準備如何修改你的提交的選項.它看起來就像下面的代碼:
pick 130deo9 oldest commit message
pick 4209fei second oldest commit message
pick 4390gne third oldest commit message
pick bmo0dne newest commit message
為了合并這些提交,我們需要將 pick
選項修改為 fixup
(如代碼下面的文檔所示),以將該提交合并并丟棄該提交消息.請注意,在 Vim 中??你需要按下 a
或 i
才能編輯文本,要保留退出,你需要按下 Esc
鍵,然后按 shift + z + z
.不要問我為什么,它就是這樣.
pick 130deo9 oldest commit message
fixup 4209fei second oldest commit message
fixup 4390gne third oldest commit message
fixup bmo0dne newest commit message
這將把你的所有提交歸并到一個提交中,提交消息為 oldest commit message
.
下一步是重定名你的提交消息.這完全是一個建議的操作,但只要你一直遵循一致的模式,都可以做得很好.這里我建議使用 Google 為 Angular.js 提供的提交指南.
為了變動提交消息,請使用 amend
標志.
git commit --amend
這也會打開 Vim,文本編輯和保留規則如上所示.為了給出一個良好的提交消息的例子,下面是遵循該指南中規則的提交消息:
feat: add stripe checkout button to payments page
- add stripe checkout button
-write tests for checkout
保持指南中列出的類型(type)的一個優點是它使編寫更改日志更加容易.你還可以在頁腳(footer)(再次,在指南中規定的)中包括信息來引用問題(issue).
注意:如果你正在協作一個項目,并將代碼推送到了 GitHub,你應該避免重新引用(rebase
)并壓縮(squash
)你的提交.如果你開始在人們的眼皮子底下變動版本歷史,那么你可能會遇到難以追蹤的錯誤,從而給每個人都帶來麻煩.
Git 有無數的命令,但這里介紹的命令可能是您最初幾年編程所必要知道的所有.
Sam Corcos 是 Sightline Maps 的首席開發工程師和聯合創始人,Sightline Maps 是最直觀的 3D 打印地形圖的平臺,以及用于構建 Phoenix 和 React 的可擴展生產應用法式的中級高級教程網站 LearnPhoenix.io.使用優惠碼:freecodecamp 取得 LearnPhoenix 的20美元.
(題圖:GitHub?Octodex)
更多 Git 教程系列文章:?
GitHub 使用教程圖文詳解? ?
Git使用圖文具體教程?
Ubuntu Git安裝與使用
Git 標簽治理詳解 ?
Git 分支治理詳解 ?
Git 長途倉庫詳解 ?
Git 當地倉庫(Repository)詳解 ?
Git 服務器搭建與客戶端安裝? ?
Git 概述 ?
分享適用的GitHub 使用教程 ?
Git從入門到學會
Git根本操作詳解
Git部署與常用根本命令詳解? ?
散布式版本控制系統 Git 詳細教程?
Git 的詳細先容:請點這里
Git 的下載地址:請點這里
via: https://medium.freecodecamp.org/git-cheat-sheet-and-best-practices-c6ce5321f52
作者:Sam Corcos 譯者:firmianay 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
本文永遠更新鏈接地址:
歡迎參與《LINUX實戰:你要用到的 Git 常用命令》討論,分享您的想法,維易PHP學院為您提供專業教程。
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/7060.html