標籤:
英文原文:Ten Things You Didn‘t Know Git And GitHub Could Do
Git 和 GitHub 都是非常強大的工具。即使你已經使用他們很長時間,你也很有可能不知道每個細節。我整理了 Git 和 GitHub 可能提高日常效率的 10 個常用技巧。
GitHub
快速鍵: t 和 w
在你的源碼瀏覽頁面,按t可以快速進入模糊檔案名稱搜尋模式:
在你倉庫首頁,按w可以快速進行分支過濾:
在任意 GitHub 頁面中,按?展示當前頁面可用的快速鍵:
忽略空格: ?w=1
在任意的 diff URL 添加?w=1用來整理縮排:
按範圍過濾提交記錄: [email protected]{time}..master
你可以建立一個對比頁面通過使用 URL github.com/user/repo/compare/{range}。範圍(range)可以是兩個 SHA 例如sha1…sha2或者兩個分支名稱例如master…my-branch。範圍同時也非常智能的支援使用時間作為關注點。你可以通過[email protected]{1.day.ago}…master過濾從昨天開始的提交。例如:連結,https://github.com/rails/rails/compare/[email protected]{1.day.ago}…master顯示 Rails 項目中全部昨天開始的提交記錄和變化:
按作者過濾提交記錄: ?author=github_handle
你可以通過在對比頁面 URL 中增加?author=github_handle來按作者過濾提交記錄。例如:連結https://github.com/dynjs/dynjs/commits/master?author=jingweno顯示 jingweno 對 Dynjs 的提交記錄:
.diff 和 .patch
在比較頁面、合并請求頁面或者評論頁面的 URL 後增加.diff或者.patch,可以得到 diff 或者 patch 的文字格式設定。例如:連結https://github.com/rails/rails/compare/[email protected]{1.day.ago}…master.patch顯示 Rails 項目中全部昨天開始的提交記錄和變化的文字格式設定:
郵件回複
你可以直接在收到的 GitHub 通知訊息進行評論,不必在網站頁面中評論。GitHub 會正確的處理你的評論:
連結行
在檔案展示頁面,點擊某行或者通過按SHIFT選擇多行,URL 會有相應的改變。如果你要給你的隊友分享一段代碼是非常方便的:
關注使用者
在合并請求、問題或者任何評論中中提到使用者會使使用者關注全部的後續通知:
自動連結
在合并請求、問題、或者任何評論中,sha 和問題碼(例如:#1) 會被自動連結。並且,你也可以連結其它倉庫的 sha 或者問題碼,格式:user/[email protected]或者user/repo#1。下面是一個評論中通過 sha 自動連結的例子:
hub
Hub 是 GitHub 的命令列。它提供了 Git 和 Github 之間的整合。一個最有用的命令就是在命令列輸入hub pull-request建立 pull request。詳見 readme.
Git
git log -p FILE
查看README.md的修改曆史,例如:
> git log -p README.md
git log -S’PATTERN’
例如,搜尋修改符合stupid的曆史:
> git log -S‘stupid‘
git add -p
互動儲存和取消儲存變化,使用:
> git add -p
git rm –cached FILE
這個命令只刪除遠程檔案,例如:
> git rm --cached database.yml
刪除database.yml被儲存的記錄,但是不影響本地檔案。這對刪除已經推送過的忽略檔案記錄而且不影響本地檔案是非常的方便的。
git log ..BRANCH
這個命令返回某個非 HEAD 分支的提交記錄。假如你在一個功能分支,輸入:
> git log ..master
返回全部 master 分支的記錄,包括未被合并到當前分支的提交記錄。
git branch –merged & git branch –no-merged
這個命令返回已合并分支列表或未合并的分支列表。這個命令對合并前檢查非常有用。例如,在一個功能分支,輸入
> git branch --no-merged
返回未合并到該分支的分支列表。
git branch –contains SHA
返回包含某個指定 sha 的分支列表。例如:
> git branch --contains 2f8e2b
顯示全部包含提交2f832b的分支。這個命令對於驗證git cherry-pick完成非常有協助。
git status -s
返回一個簡單版的 git status。我設定這個命令為預設 git status 來減少噪音。
git reflog
顯示你在本地已完成的巨集指令清單。
git shortlog -sn
顯示提交記錄的參與者清單。和 GitHub 的參與者清單相同。
Summary
Git 是一個設計良好的工具。瞭解它可以直接讓你更有效率並成為一個更有才華的程式員。GitHub,在另一個方面,在 Git 基礎上提供便利的團隊合作特性。有能力使用 GitHub 也會提高你日常效率。
為了更好的加深你對的 Git 和 Github 瞭解,我推薦一些資料:
- ProGit, 最好的 Git 指南
- Advanced Git
- Git and GitHub Secrets
from:http://news.cnblogs.com/n/530478/
關於Git和Github