成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

你可能不知道的15個有用的Github功能

開發 前端
我們平時的工作中,github是必不可少的代碼托管平臺,但是大多數同學也只是把它做為了托管代碼的地方,并沒有合理的去運用。

 引言

我們平時的工作中,github是必不可少的代碼托管平臺,但是大多數同學也只是把它做為了托管代碼的地方,并沒有合理的去運用。

[[330855]]

其實github里面有非常多好玩或者有趣的地方的。當然,這些技巧也能對你的工作效率有很大的提升。

我整理了一些自己平時用的比較多的一些功能/技巧,也希望能給你的工作帶來一些幫助!

Gist

可能很多人并沒有聽過Gist。它在github首頁的子目錄下:

 

這是github提供的一個非常有用的功能。Gist作為一個粘貼數據的工具,就像 Pastie 網站一樣,可以很容易地將數據粘貼在Gist網站中,并在其他網頁中引用Gist中粘貼的數據。

作為GitHub的一個子網站,很自然地,Gist使用Git版本庫對粘貼數據進行維護,這是非常方便的。

進入Gist網站的首頁,就會看到一個大大的數據粘貼對話框. 只要提供一行簡單的描述、文件名,并粘貼文件內容,即可創建一個新的粘貼。

 

 

 

每一個新的粘貼稱為一個Gist,并擁有一個單獨的URL。

當一個粘貼創建完畢后,會顯示新建立的Gist頁面, 點擊其中的embed(嵌入)按鈕,就會顯示一段用于嵌入其他網頁的JavaScript代碼,將上面的JavaScript代碼嵌入到網頁中,即可在相應的網頁中嵌入來自Gist的數據,并保持語法高亮等功能。

 

 

 

通過 web 界面創建文件

在有些時候,我們可能不太想用本地創建文件,然后通過git推送到遠程這種方式去創建文件,那么有沒有簡單高效的一種做法呢?

很簡單,通過github提供的 web 界面創建方式(create new file)去創建就可以了:

 

 

 

 

 

文件查找

有時,我們想在一個龐大的 git 倉庫中去查找某一個文件,如果一個一個的去看,可能需要一段時間(我之前時常感覺在github倉庫中去查找一個文件真的好麻煩)。

其實 github 提供了一個快捷的查找方式:按鍵盤'T'鍵激活文件查找器,按 ⬆️ 和 ⬇️ 上下選擇文件,當然也可以輸入你要查找的文件名,快速查找。

 

github cli(命令行) 

 

 

 

當我們將本地代碼提交到 GitHub 后,就可以在 GitHub 網站上查看到各種的交互信息了,例如其它開發者提的 Issue,或者提交的代碼合并請求等。但是,如果我們能在命令行上直接查看、處理這些信息,那么這一定非常酷。

下面讓我帶你從 0 到 1 上手GitHub CLI吧!

安裝

要安裝 GitHub CLI 非常簡單。

在macOS下面可以使用Homebrew工具進行安裝:

 

  1. $ brew install github/gh/gh 
  2. # 如果需要更新執行下面的命令即可 
  3. $ brew update && brew upgrade gh 

在Windows下可以使用如下命令行進行安裝:

 

  1. scoop bucket add github-gh https://github.com/cli/scoop-gh.git 
  2. scoop install gh 

安裝完成后直接在命令行中執行gh命令,看到如下圖所示的信息就說明已經安裝成功了:

 

其他平臺的安裝參考官方文檔即可: https://cli.github.com/manual/installation

 

 

使用

使用的時候需要我們進行一次授權:

 

 

 

在命令行中輸入回車鍵就會在瀏覽器中打開授權頁面,點擊授權即可:

 

授權成功回到命令行,我們發現通過gh issue list指令已經拿到了issue列表:

 

 

我這邊列舉幾個常用的操作。

創建 issue

我們通過 CLI 先交互式地提交了一條issue,issue的 Body 需要通過nano編輯。

 

 

 

篩選 issue

issue列表往往存在有太多的條目,通過指定條件篩選issue是一個很常見的需求:

 

如上圖所示,它將篩選出label是動態規劃的所有issue

 

 

快速瀏覽

找到一個你關注的issue過后,要想查看該issue的具體信息,可以使用如下命令在瀏覽器中快速將issue的詳細信息頁面打開:

 

接下來可以選擇打開網頁,預覽并提交。當然,我們也可以選擇直接在命令行進行提交。

 

 

這里我只是簡單介紹了issue相關的幾個常用命令,更多的使用方式可以查看官方文檔了解更多:https://cli.github.com/manual/examples。

GitHub Actions 

 

GitHub Actions 是 GitHub 的持續集成服務。

 

 

通常持續集成是由很多操作組成的,比如抓取代碼、執行腳本、登錄遠程服務器、發布到第三方服務等。GitHub將這些操作稱作actions。

如果你需要某個 action,不必自己寫復雜的腳本,直接引用他人寫好的 action 即可,整個持續集成過程,就變成了一個 actions 的組合。

GitHub 做了一個官方市場,可以搜索到他人提交的 actions:

 

下面分別從基本概念和發布流程詳細說明一下GitHub Actions。

 

 

基本概念

  • workflow (流程):持續集成一次運行的過程,就是一個 workflow。
  • job (任務):一個 workflow 由一個或多個 jobs 構成,含義是一次持續集成的運行,可以完成多個任務。
  • step(步驟):每個 job 由多個 step 構成,一步步完成。
  • action (動作):每個 step 可以依次執行一個或多個命令(action)。

實例:React 項目發布到 GitHub Pages

這里通過 GitHub Actions 構建一個 React 項目,并發布到 GitHub Pages。最終代碼都在這個倉庫里面,發布后的網址為https://jack-cool.github.io/github-actions-demo/。

生成密鑰

由于示例需要將構建成果發到GitHub倉庫,因此需要 GitHub 密鑰。按照官方文檔,生成一個密鑰。然后,將這個密鑰儲存到當前倉庫的Settings/Secrets里面。

 

我這里環境變量的名字用的是ACCESS_TOKEN。

 

 

創建 React 項目

使用create-react-app初始化一個 React 應用:

 

  1. $ npx create-react-app github-actions-demo 
  2. $ cd github-actions-demo 

在項目的package.json中,添加一個homepage字段(表示該應用發布后的根目錄)

 

  1. "homepage""https://jack-cool.github.io/github-actions-demo" 

創建 workflow 文件

在項目的.github/workflows目錄,創建一個workflow文件,這里用的是ci.yml。

上面已經提到GitHub有一個官方的市場,這里我們直接采用的是JamesIves/github-pages-deploy-action:

 

  1. name: GitHub Actions Build and Deploy Demo 
  2. on
  3.   push: 
  4.     branches: 
  5.       - master 
  6. jobs: 
  7.   build-and-deploy: 
  8.     runs-on: ubuntu-latest 
  9.     steps: 
  10.       # 拉取代碼 
  11.       - name: Checkout 
  12.         uses: actions/checkout@v2 # If you're using actions/checkout@v2 you must set persist-credentials to false in most cases for the deployment to work correctly. 
  13.         with
  14.           persist-credentials: false 
  15.       # 安裝依賴、打包 
  16.       - name: Install and Build 
  17.         run: | 
  18.           npm install 
  19.           npm run-script build 
  20.  
  21.       # 部署到 GitHub Pages 
  22.       - name: Deploy 
  23.         uses: JamesIves/github-pages-deploy-action@releases/v3 
  24.         with
  25.           ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }} 
  26.           BRANCH: gh-pages 
  27.           FOLDER: build 

這里梳理下配置文件都做了些什么:

1、 拉取代碼。這里用的是 GitHub 官方的 action: actions/checkout@v2

2、安裝依賴、打包

3、部署到GitHub Pages。使用了第三方作者的 action:JamesIves/github-pages-deploy-action@releases/v3。我這里詳細介紹下這個 action:

使用 with 參數向環境中傳入了三個環境變量:

ACCESS_TOKEN:讀取 GitHub 倉庫 secrets 的 ACCESS_TOKEN 變量,也就是我們前面設置的

BRANCH:部署分支 gh-pages(GitHub Pages 讀取的分支)

FOLDER:需要部署的文件在倉庫中的路徑,也就是我們使用 npm run build 生成的打包目錄

這里有一點需要注意:我使用的是 v3 版本,需要使用 with 參數傳入環境變量,且需要自行構建;網上常見的教程使用的是 v2 版本,使用 env 參數傳入環境變量,不需要自行構建,可使用 BUILD_SCRIPT 環境變量傳入構建腳本。

到這里,配置工作就完成了。

以后,你每次有代碼 push 到 master 分支時,GitHub 都會開始自動構建。

分享具體代碼

平時我們可能有一行非常好的代碼,想分享給其他同事看,那么可以在url后面加上#L 行號,比如:https://github.com/Jack-cool/rest_node_api/blob/master/app/models/users.js#L17,效果如下圖:

 

 

 

如果是想分享某幾行的,可以在url后面添加如#L 開始行號-L 結束行號,像https://github.com/Jack-cool/rest_node_api/blob/master/app/models/users.js#L17-L31,效果如下圖:

 

 

 

通過提交的msg自動關閉 issue

我們先來看一下關閉issues的關鍵字:

  • close
  • closes
  • closed
  • fix
  • fixes
  • fixed
  • resolve
  • resolves
  • resolved

關閉同一個倉庫中的 issue

如果是在同一個倉庫中去關閉issue的話,可以使用上面列表中的關鍵字并在其后加上issue編號的引用。

例如一個提交信息中含有fixes #26,那么一旦這次提交被合并到默認分支,倉庫中的 26 號issue就會自動關閉。

如果這次提交不是在默認分支,那么這個issue將不會關閉,但是在它下面會有一個提示信息。這個提示信息會提示你某人添加了一個提交提到了這個issue,如果你將它合并到默認分支就會關閉該issue。

關閉不同倉庫中的 issue

如果想關閉另一個倉庫中的issue,可以使用username/repository/#issue_number這樣的語法。

例如,提交信息中包含closes Jack-cool/fe_interview/issues/113,將會關閉fe_interview中的113號issue。

關閉其他倉庫issue的前提是你將代碼push到了對應的倉庫

查看項目的訪問數據

在自己的項目下,點擊 Insights,然后再點擊 Traffic,里面有 Referring sites 和 Popular content 的詳細數據和排名。

 

 

 

其中 Referring sites 表示大家都是從什么網站來到你的項目的,Popular content 則表示大家經常看你項目的哪些文件。

任務清單

有時候我們需要標記一些任務清單去記錄我們接下來要做的事情。

創建任務列表

issues 和 pull requests 里可以添加復選框,語法如下(注意空白符):

 

  1. - [ ] 步驟一 
  2. - [ ] 步驟二 
  3.   - [ ] 步驟2.2 
  4.   - [ ] 步驟2.3 
  5. - [ ] 步驟三 

效果如下:

 

 

 

普通的markdown文件中可創建只讀的任務列表,比如在README.md中添加 TODO list:

 

  1. ### 接下來要做的事 🦀 
  2. - [x] 數據結構與算法 
  3. - [ ] react源碼 
  4. - [ ] docker 

效果如下:

 

 

 

對任務排序

你可以單擊任務左邊的復選框并拖放至新位置,對單一評論中的任務列表重新排序。

 

issues 模版和 pull request 模版 

這里以issue模版舉例,pr模板類似

這個issue模版我是在給element ui提issue時發現的:

 

在GitHub中,代碼庫維護者如果提供有定制的 issues 模版和pull request 模版,可以讓人們有針對性的提供某類問題的準確信息,從而在后續維護中能夠進行有效地對話和改進,而不是雜亂無章的留言。

創建issues模版

  • 在代碼庫根目錄新建.github目錄
  • 在 .github 目錄下添加 ISSUE_TEMPLATE.md 文件作為 issues 默認模版。當創建 issue 時,系統會自動引用該模版。

如我在項目根目錄下新建了.github/ISSUE_TEMPLATE.md:

 

  1. ## 概述 
  2.  
  3. bug 概述 
  4.  
  5. ## 重現步驟 
  6.  
  7. 1. aaa 
  8. 2. bbb 
  9. 3. ccc 
  10.  
  11. ## Bug 行為 
  12.  
  13. Bug 的表現行為 
  14.  
  15. ## 期望行為 
  16.  
  17. 軟件的正確行為 
  18.  
  19. ## 附件 
  20.  
  21. 附上圖片或日志,日志請用格式: 
  22.  
  23. > ``` 
  24. > 日志內容 
  25. > ``` 

在該倉庫新建issue時就會出現上面預設的issue模版:

 

GitHub Wiki 

 

大家平時的項目,一般都使用 Markdown 來編寫項目文檔和 README.md 等。Markdown 一般情況下能夠滿足我們的文檔編寫需求,如果使用得當的話,效果也非常棒。不過當項目文檔比較長的時候,閱讀體驗可能就不是那么理想了,這種情況我想大家應該都曾經遇到過。

GitHub 每一個項目都有一個單獨完整的 Wiki 頁面,我們可以用它來實現項目信息管理,為項目提供更加完善的文檔。我們可以把 Wiki 作為項目文檔的一個重要組成部分,將冗長、具體的文檔整理成 Wiki,將精簡的、概述性的內容,放到項目中或是 README.md 里。

關于Wiki的使用,這里就不展開說明了,具體可以參考官方文檔

查看提交記錄熱度圖

查看文件時,可以按b查看提交記錄和顯示每一行的最近修改情況的熱度圖。它會告訴你每行代碼的提交人,并且提供一個可以點擊的鏈接去查看完整提交。

 

 

 

中間有一個橙色的豎條。顏色越鮮艷,更改的時間就越近。

Git Submodules vs Git Subtrees 

 

為什么使用 Submodules or Subtrees?

團隊中一般都會有公共的代碼庫,submodule和subtrees可以讓我們在不同項目中使用這些公共的代碼,避免因拷貝產生重復代碼,甚至導致相同代碼出現不同修改產生多個版本。

區別

subtree 和 submodule 的目的都是用于 git 子倉庫管理,二者的主要區別在于,subtree 屬于拷貝子倉庫,而 submodule 屬于引用子倉庫。

使用

關于實踐,官方文檔寫的已經非常清楚了,我這里直接放上鏈接:

  • submodule: https://git-scm.com/book/en/v2/Git-Tools-Submodules
  • subtree: https://einverne.github.io/post/2020/04/git-subtree-usage.html

GitHub 插件推薦 

 

 

 

GitHub的插件有很多很多,這里就推薦一下我常用的三個插件。

Octotree

 

 

 

 

我們有時經常需要在github上查找文件,但如果文件結構嵌套很深,查找起來是非常麻煩的,這時使用Octotree可以在倉庫左側顯示當前項目的目錄結構,讓你可以在github上像使用Web IDE一樣方便。

 

 

 

isometric-contributions

 

 

這個是可以更酷炫的 3D 立體式渲染github貢獻。

 

 

Enhanced GitHub

 

 

這個插件支持在倉庫中顯示倉庫大小、每個文件的大小以及每個文件的下載鏈接。

 

 

GitHub 吉祥物 Octocat

哈哈 這個就比較有意思了 我也是剛知道原來github也有自己的吉祥物。

這里貼下網站,順便選了幾個感覺很萌的,大家也可以去上面選幾個作為自己的頭像什么的。

[[330860]]

 

 

[[330861]]

[[330862]]

 



 

 

責任編輯:華軒 來源: 前端森林
相關推薦

2011-02-14 16:11:44

2012-11-23 10:57:44

Shell

2021-12-17 00:10:00

ChromeDevtools功能

2022-08-13 09:19:07

Bash命令Linux

2023-02-27 09:20:24

絕對定位CSS

2023-01-29 09:46:47

Dialog彈窗模態

2019-04-30 08:09:12

Windows 10操作系統工具

2024-03-04 00:00:00

Kubernetes技巧API

2016-09-05 13:14:11

2015-08-13 09:03:14

調試技巧

2019-11-20 10:25:06

sudoLinux

2020-01-29 19:40:36

Python美好,一直在身邊Line

2021-01-05 11:22:58

Python字符串代碼

2015-05-14 15:59:33

DockerLinux容器管理工具

2022-01-17 22:33:37

Java特定類型

2021-07-12 07:59:06

安全 HTML 屬性

2017-11-07 21:58:25

前端JavaScript調試技巧

2009-09-04 11:06:06

Linux桌面Linux操作系統linux

2020-11-03 09:51:04

JavaScript開發 技巧

2014-12-08 10:39:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲免费在线视频 | 欧美xxxx黑人又粗又长 | jdav视频在线观看免费 | 男女污污网站 | 99精品一区二区 | 91精品国产91久久久久青草 | 成人免费小视频 | 欧美一级二级在线观看 | 久久九九99 | 成人免费视频网站在线看 | 不卡在线视频 | 日韩精品中文字幕一区二区三区 | 欧美黄a| 亚洲欧美日韩精品久久亚洲区 | 国产精品毛片 | 国产成人一区二区三区 | 国产激情在线观看 | 免费观看的av | 成人av观看 | 久久精品欧美视频 | 久久久久国产精品一区 | 久久在线视频 | 综合色在线 | 久久综合99 | 国产一区二区三区免费 | 天天射美女 | 成人做爰www免费看视频网站 | 日日夜夜精品视频 | 日韩在线免费 | 色吧久久 | 久久av影院 | 嫩草研究影院 | 久久精品中文字幕 | 妞干网视频 | 国产精品久久久久久福利一牛影视 | 91原创视频在线观看 | 国产精品久久av | 一区二区精品视频 | 国产精品日韩一区 | 91精品无人区卡一卡二卡三 | 日韩亚洲视频在线 |