關於Git和Github你不知道的十件事

原文鏈接:http://owenou.com/2012/01/13/ten-things-you-didnt-know-git-and-github-could-do.html

點擊上方“成猿之路”,選擇“置頂公衆號”

技術文章第一時間送達!


作者:張伯函

segmentfault.com/a/1190000003830252


Git 和 GitHub 都是非常強大的工具。即使你已經使用他們很長時間,你也很有可能不知道每個細節。


我整理了 Git 和 GitHub 可能提高日常效率的10個常用技巧。


GitHub



在你的源碼瀏覽頁面,按 t 可以快速進入模糊文件名搜索模式:


640


在你倉庫主頁,按 w 可以快速進行分支過濾:


640


在任意 GitHub 頁面中,按 ? 展示當前頁面可用的快捷鍵:


640


2、忽略空格: ?w=1


在任意的 diff URL 添加 ?w=1 用來整理縮進:


640


3、按範圍過濾提交記錄: master@{time}..master


你可以創建一個對比頁面通過使用 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 項目中全部昨天開始的提交記錄和變化:


640



你可以通過在對比頁面URL中增加 ?author=github_handle 來按作者過濾提交記錄。例如:鏈接 https://github.com/dynjs/dynjs/commits/master?author=jingweno 顯示 jingweno 對 Dynjs 的提交記錄:

640

5、.diff 和 .patch


在比較頁面、合併請求頁面或者評論頁面的URL後增加 .diff 或者 .patch,可以得到 diff 或者 patch 的文本格式。例如:鏈接 https://github.com/rails/rails/compare/master@{1.day.ago}…master.patch 顯示Rails項目中全部昨天開始的提交記錄和變化的文本格式:


640


6、郵件回覆


你可以直接在收到的 GitHub 通知郵件進行評論,不必在網站頁面中評論。GitHub 會正確的處理你的評論:


640


7、鏈接行


在文件展示頁面,點擊某行或者通過按 SHIFT 選擇多行,URL 會有相應的改變。如果你要給你的隊友分享一段代碼是非常方便的:


640


8、關注用戶


在合併請求、問題或者任何評論中中提到用戶會使用戶關注全部的後續通知:


640


9、自動鏈接


在合併請求、問題、或者任何評論中,sha和問題碼(例如:#1)會被自動鏈接。並且,你也可以鏈接其它倉庫的 sha 或者問題碼,格式:user/repo@sha1 或者 user/repo#1。下面是一個評論中通過sha自動鏈接的例子:


640


10、hub


Hub 是 GitHub的命令行。它提供了Git和Github之間的集成。一個最有用的命令就是在命令行輸入 hub pull-request 創建pull request。詳見 readme.https://github.com/defunkt/hub#commands


Git


1、git log -p FILE


查看 README.md 的修改歷史,例如:


> git log -p README.md

2、git log -S’PATTERN’


例如,搜索修改符合 stupid 的歷史:


> git log -S'stupid'

3、git add -p


交互式的保存和取消保存變化,使用:


> git add -p

4、git rm –cached FILE


這個命令只刪除遠程文件,例如:


> git rm --cached database.yml

刪除 database.yml 被保存的記錄,但是不影響本地文件。這對刪除已經推送過的忽略文件記錄而且不影響本地文件是非常的方便的


5、git log ..BRANCH


這個命令返回某個非 HEAD 分支的提交記錄。假如你在一個功能分支,輸入:


> git log ..master

返回全部 master 分支的歷史記錄,包括未被合併到當前分支的提交記錄。


6、git branch –merged & git branch –no-merged


這個命令返回已合併分支列表或未合併的分支列表。這個命令對合並前檢查非常有用。例如,在一個功能分支,輸入


> git branch --no-merged

返回未合併到該分支的分支列表。


7、git branch –contains SHA


返回包含某個指定 sha 的分支列表。例如:


> git branch --contains 2f8e2b

顯示全部包含提交 2f832b 的分支。這個命令對於驗證 git cherry-pick 完成非常有幫助。


8、git status -s


返回一個簡單版的 git status。我設置這個命令爲默認 git status 來減少噪音。


9、git reflog


顯示你在本地已完成的操作列表。


10、git shortlog -sn


顯示提交記錄的參與者列表。和GitHub的參與者列表相同。


Summary


Git 是一個設計良好的工具。Git操作常用的命令都在這裏了。瞭解它可以直接讓你更有效率併成爲一個更有才華的程序員。GitHub,在另一個方面,在 Git 基礎上提供便利的團隊合作特性。有能力使用 GitHub 也會提高你日常效率。


覺得不錯?歡迎轉發分享給更多人

END


喜歡本文的朋友們,歡迎長按下圖關注訂閱號成猿之路,收看更多精彩內容!

推薦閱讀:


640?
在看再走唄!640?wx_fmt=gif



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章