本文爲翻譯文章。原文連接:Ten Things You Didn't Know Git And GitHub Could Dohtml
Git 和 GitHub都是很是強大的工具。即便你已經使用他們很長時間,你也頗有可能不知道每一個細節。我整理了Git和GitHub可能提升平常效率的10個經常使用技巧。git
在你的源碼瀏覽頁面,按t
能夠快速進入模糊文件名搜索模式:程序員
在你倉庫主頁,按w
能夠快速進行分支過濾:github
在任意GitHub頁面中,按?
展現當前頁面可用的快捷鍵:工具
在任意的diff URL添加?w=1用來整理縮進:網站
你能夠建立一個對比頁面經過使用URL github.com/user/repo/compare/{range}
。範圍(range)能夠是兩個SHA例如sha1…sha2
或者兩個分支名稱例如master…my-branch
。範圍同時也很是智能的支持使用時間做爲關注點。你能夠經過master@{1.day.ago}…master
過濾從昨天開始的提交。例如:連接,https://github.com/rails/rails/compare/master@{1.day.ago}…master
顯示Rails項目中所有昨天開始的提交記錄和變化:spa
你能夠經過在對比頁面URL中增長?author=github_handle
來按做者過濾提交記錄。例如:連接https://github.com/dynjs/dynjs/commits/master?author=jingweno
顯示jingweno對Dynjs 的提交記錄:命令行
在比較頁面、合併請求頁面或者評論頁面的URL後增長.diff
或者.patch
,能夠獲得diff或者patch的文本格式。例如:連接https://github.com/rails/rails/compare/master@{1.day.ago}…master.patch
顯示Rails項目中所有昨天開始的提交記錄和變化的文本格式:翻譯
你能夠直接在收到的GitHub通知郵件進行評論,沒必要在網站頁面中評論。GitHub會正確的處理你的評論:設計
在文件展現頁面,點擊某行或者經過按SHIFT
選擇多行,URL會有相應的改變。若是你要給你的隊友分享一段代碼是很是方便的:
在合併請求、問題或者任何評論中中提到用戶會使用戶關注所有的後續通知:
在合併請求、問題、或者任何評論中,sha和問題碼(例如:#1)會被自動連接。而且,你也能夠連接其它倉庫的sha或者問題碼,格式:user/repo@sha1
或者user/repo#1
。下面是一個評論中經過sha自動連接的例子:
Hub 是 GitHub的命令行。它提供了Git和Github之間的集成。一個最有用的命令就是在命令行輸入hub pull-request
建立pull request。詳見readme.
查看README.md
的修改歷史,例如:
> git log -p README.md
例如,搜索修改符合stupid
的歷史:
> git log -S'stupid'
交互式的保存和取消保存變化,使用:
> git add -p
這個命令只刪除遠程文件,例如:
> git rm --cached database.yml
刪除database.yml
被保存的記錄,可是不影響本地文件。這對刪除已經推送過的忽略文件記錄並且不影響本地文件是很是的方便的。
這個命令返回某個非HEAD分支的提交記錄。假如你在一個功能分支,輸入:
> git log ..master
返回所有master分支的歷史記錄,包括未被合併到當前分支的提交記錄。
這個命令返回已合併分支列表或未合併的分支列表。這個命令對合並前檢查很是有用。例如,在一個功能分支,輸入
> git branch --no-merged
返回未合併到該分支的分支列表。
返回包含某個指定sha的分支列表。例如:
> git branch --contains 2f8e2b
顯示所有包含提交2f832b
的分支。這個命令對於驗證git cherry-pick
完成很是有幫助。
返回一個簡單版的git status。我設置這個命令爲默認git status來減小噪音。
顯示你在本地已完成的操做列表。
顯示提交記錄的參與者列表。和GitHub的參與者列表相同。
Git是一個設計良好的工具。瞭解它能夠直接讓你更有效率併成爲一個更有才華的程序員。GitHub,在另外一個方面,在Git基礎上提供便利的團隊合做特性。有能力使用GitHub也會提升你平常效率。
爲了更好的加深你對的Git和Github瞭解,我推薦一些資料:
ProGit, 最好的Git指南