波尔多产区:學到了!用 Git 和 Github 提高效率的 10 個技巧 [復制鏈接]

2019-9-26 10:21
hardwork 閱讀:240 評論:0 贊:1
Tag:  Git

恋恋波尔多 www.luaogj.com.cn Git 和 GitHub都是非常強大的工具。即使你已經使用他們很長時間,你也很有可能不知道每個細節。我整理了Git和GitHub可能提高日常效率的10個常用技巧。

GitHub

快捷鍵: t 和 w

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

忽略空格: ?w=1

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

按范圍過濾提交記錄: [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項目中全部昨天開始的提交記錄和變化:

學到了!用 Git 和 Github 提高效率的 10 個技巧

按作者過濾提交記錄: ?author=github_handle

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

.diff 和 .patch

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

郵件回復

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

鏈接行

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

關注用戶

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

自動鏈接

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

學到了!用 Git 和 Github 提高效率的 10 個技巧

hub

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

Git

git log -p FILE

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

git log -p README.mdgit log -S’PATTERN’

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

git log -S'stupid'git add -p

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

git add -pgit 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


我來說兩句
您需要登錄后才可以評論 登錄 | 立即注冊
facelist
所有評論(0)
領先的中文移動開發者社區
18620764416
7*24全天服務
意見反?。[email protected]

掃一掃關注我們

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 恋恋波尔多 )