GitHub與Git簡單介紹

GitHub入門與實踐總結
自己的博客 http://blog.csdn.net/qq_22329521
什么是GitHub
==
github是開發者提供Git倉庫的拓寬平臺,讓開發者與朋友,同事同學及陌生人共享代碼的一個平臺

GitHub除了提供Git倉庫的托管服務外,還為開發者或團隊提供了一系列功能,幫助其高效率,高品質地進行代碼的編寫

GitHub提供的主要功能

  • Git倉庫:
    一般情況下我們可以免費創建任意個GitHub提供的Git倉庫。但如果需要建立只對特定人物或者自己公開的私有倉庫,則需要付錢
  • Organization:
    個人在使用個人賬戶就足夠了,但如果是公司,建議使用Origaniztion賬戶,它的優點在于可以統一管理賬戶和權限,還能統一支付一些費用。如果只是公開倉庫,是交流群或者小團體開發軟件,可以免費創建Organiztion賬戶。
  • Issue
    Issue功能,是將一個任務或者問題分配給一個Issues進行追蹤和管理的功能。每一個功能更改或者修正都對應一個Issue,討論或修正都已這個Issue為中心進行。只要查看Issus,就知道這個更改相關的一切信息,以此進行管理。在Git上提交信息寫上Issus的ID(例如 “#7"),GitHub就會自動生成從Issue到對應提交的鏈接。另外,只要按照特定的格式描述提交信息,還可以關閉Issue。
  • WiKi:
    Wiki作為Git倉庫進行管理。改版的歷史記錄都會被保存下來。
  • Pull Request:
    開發者向GitHub的倉庫推送更改或功能添加,可以通過Pull Request向別人倉庫提出申請,請求對方合并。
    PullRequest 送出去后,目標倉庫的管理者等人將能夠查看Pull Request的內容及其包含的代碼更改
    同時,GitHub還提供了對Pull Request和源代碼進行討論的功能。提供此功能可以對行為單位對源代碼進行評論,讓程序員高效的交流

Git

git的基本操作

  • git init--初始化倉庫
  • git status--查看倉庫的狀態,是一個非常常用的命令,工作數和倉庫在被操作的過程中,狀態會不停發送變化,通過git status可以查看當前的狀態。
  • git add --向暫存區中添加文件,如果只是用Git倉庫的工作樹創建了文件,那么該文件并不會被計入Git倉庫的版本管理對象中,所需我們需要用git add 講其加入暫存區中。暫存區只是提交之前的一個臨時區域
  • git commit--保存倉庫的歷史記錄 通常 命令為 git commit -m xxx -m 后面的參數標示提交的信息
  • git log 查看提交日志
  • git log xxx文件 只顯示該目錄下的日志,如果是文件名,就會顯示該文件的相關日志
  • git log -p 顯示提交所帶來的改動
  • git log -p xxx文件 顯示文件的改動
  • git diff 查看更改前后的差異
  • q 在git命令行中退出,一個q按鍵

git分支操作

  • git branch 顯示分支一覽 帶*開頭的是當前的分支
  • git checkout -b xxx 創建,切換分支
  • git checkout xxx 切換分支
  • git checkout - 切換到上一個分支 "-"替代了分支名,通常master分支作為主分干
  • git merge 合并分支 git merge --no-ff xxx
  • git log --graph 以圖表形式查看分支
  • git reset 回退歷史版本,使用 git reset --hard xxx(這個提供目標點的哈希值通過git log 等日志查看過去提交的時間點的哈希值)
  • git reflog 命令 以查看當前倉庫的操作日志 gitlog只能查看當前狀態為終點的歷史日志

![LZ4MYR@0}99T7]XON2GBTH1.png](http://upload-images.jianshu.io/upload_images/2326281-2a6b5a90baa7c681.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

這里寫圖片描述
  • git commit -am 將add 和commit命令結合起來 git commit -am xxx備注
  • git push -u origin master(xxxx) 推送到遠程倉庫 -u 可以在推送的同時,將origin倉庫的xxx作為本地倉庫的當前分支的上游。
  • 以后 通過 git pull 就可以從遠程倉庫獲取內容
  • git clone 克隆
  • git checkout -b xxx origin/xxx 將遠端中xxx分支獲取到本地倉庫
  • git pull 獲取

GitHub的功能

點擊頭像


這里寫圖片描述
  • Explore:GitHub公司特別推薦的軟件,按語音篩選本日/周/月的熱門倉庫/開發者(里面好多都是高大上的東西)
  • integrations:GitHub 功能集成工具(包括 Travis CI、Code Climate、Gitter 等)
Alt text
  • Pull Requeste 顯示用戶已經進行過的Pull Request
  • Issues 查看用戶擁有的權限的倉庫 或分配給自己的Issue。用戶同時進多個項目時,可以在這里一并查看
  • Repositories you contribute to:顯示用戶做個貢獻的倉庫。
  • Your Repositories 用戶自己的倉庫,根據更新時間順序來拍

這是安卓牛人的github 作為模板案例


Alt text
  • Popular repositories (好像是在看個人界面才看的到) 顯示公開倉庫中受歡迎,擁有大量Star的部熱門倉庫
  • contributions 活躍度 一格標示一天 ,記錄用戶對擁有讀取權限的倉庫的大致貢獻度。貢獻度的衡量標準包括發送Pull Request的次數,寫Issue的次數,進行提交的次數等。顏色越深貢獻度越高
  • Contribution Activity,按照時間順序顯示具體貢獻活動的鏈接。
  • Public Activity 顯示該用戶公開活動。指用戶做了什么,比如倉庫的提交或者pull Request 等,大量的公開信息都會記錄在這里。
  • Repositories 顯示該用戶公開的倉庫。Fork來的倉庫也會顯示在這
這里寫圖片描述

倉庫的名稱,語言,簡要說明,最終更新日期都會出現在這里,星形圖案旁邊的數字表示star的人數,在旁邊表示Fork數,背景顯示的圖標表示倉庫的更新頻率,橫向為時間軸,右側為最新時間。色塊越高,倉庫的更新頻率越高

倉庫

這里寫圖片描述

倉庫的url https://github.com/用戶名/倉庫名/ (如 https://github.com/alibaba/fastjson

  • Code 顯示該倉庫的文件列表
  • watch 這個按鈕可以watch該倉庫。今后該倉庫的更新信會顯示在用戶的公開活動中。start 這個數越高 越受歡迎,watch和start的區別在于watch之后該倉庫的相關信息會在通知中顯示,讓用戶可以跟蹤倉庫的內容而Star更像是書簽,讓用戶將來可以在Star標記的列表中找到該倉庫。
  • Fork 這個數字越大,表示參與這個倉庫的人越多
  • Issus 用戶BUG報告,功能添加,方向性討論等,將這些以Issue形式進行管理。Pull Request時也會創建Issue。判斷顯示的數字是當前處于Open狀態的issue 數


    Alt text
  • Pull Requests 可以查看列表中并管理Pull Request 。代碼更改和討論都在這里進行。判斷顯示的數字表示尚未Close的Pull Request
  • Wiki常用與記錄開發者共享的信息或軟件文檔
  • Pulse顯示該倉庫最近的活動信息。
  • Graphs 通過圖表的心事顯示該倉庫的各項指標
  • clone or download 下載或者clone項目
  • commit 多少次提交 點擊可以查看提交歷史
  • branches 可以查看倉庫的分支列表
  • releases 顯示倉庫的標簽。同時將標簽加入時的文件以歸檔形式(ZIP,tar.gz)下載到本地。軟件在版本升級時都會打標簽,如果需要特定版本的文件,可以從這里查找
  • contributors 顯示該倉庫進行提交的程序員名單。如果你對該倉庫發送過Pull Request并且被采納,那么在這里就能找到自己的名字。
  • Branch:master 可以點擊切換到不同分支去查看差別

查看文件的差別

這里寫圖片描述

我們點擊左側行號某一行就會成黃色,同時url末尾會添加#Lxx 如果我要查看第99到101,查看url末尾地址
Alt text

如果我們要快速查看某個文件 我們在最開始的界面 按住鍵盤的T,然后搜索關鍵字 就很快搜索到了

Alt text

  • Blame 可以能夠按行顯示最新提交的信息
  • History可以查看該文件的歷史記錄

在GitHub 上直接修改url可以給用戶已多種形式查看差別
查看分支的區別

Alt text

查看幾天的區別
Alt text

https://github.com/alibaba/fastjson/compare/maters@{7.day.ago}...master

  • day
  • week
  • month
  • year

指定期間可以使用四個單位。如果差別過大則不會列出所有提交只顯示最近的一部分

Lssue

開發者為了跟蹤Bug及軟件相關討論,進而方便管理,創建了Issue。
GitHub的Issue的評論可以使用GFM的語法進行描述


Alt text

具體可以自己去嘗試
Issue可以添加標簽進行管理,點擊標簽,可以只顯示該標簽的Issue,標簽可以自由從創建,BUG,任務備忘等分類。
如果Issue積累到一定數量,可以考慮設置標簽
在Issue下有個milestones 可以設置里程碑(個人理解版本,管理任務,查看某個版本下還有剩余的Issue)

Pull Request

是用戶修改代碼想對付查看發送采納請求的功能,也是GitHub的核心功能,


Alt text
  • conversation標簽頁,可以查看當前Pull Request相關的評論以及提交的歷史記錄,人民可以在這里評論互相探討。
  • Files Changed 可以查看當前Pull Request更改的文件內容的前后差別

Pull Request流程

  1. Fork 點擊Fork創建自己的倉庫,新建倉庫
  2. clone
  3. branch
  4. 添加代碼
  5. 提交修改
  6. 創建遠程分支
  7. 來到github 頁面查看自己提交的分支, 查看分支差別頁面, 有個creat pull Request 按鈕 隨后填寫相應的表單
  8. 來到github頁面 點擊pull Request 查看自己提交的狀態

接受Pull Request

  1. 代碼審查
  2. 查看圖片的區別 https://github.com/blog/817-behold-image-view-modes官方博客,可以對圖片進行對比

Git Flow

以部署為中心的開發模式
流程

  1. 令master分支常保持部署的狀態
  2. 進行新的作業時要從master分支創建新分支,新分支名稱要具有描述性
  3. 在新建的本地倉庫分支中進行提交
  4. 在GitHub端倉庫創建同名分支 ,定期push
  5. 需要幫助或反饋時創建Pull Request,以Pull Request進行交流
  6. 讓其他開發者進行審查,確認作業完成后與master分支合并
  7. 與master分支合并后立刻部署
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容