前端工具篇:淺談Git和GitHub

首先指出,GitGithub不是一個概念,完全沒有可比性。

Git可以說是每個程序員必備的技能,Github是檢驗一個程序員是否合格的標(biāo)準(zhǔn)。反正這東西雖然不一定要十分精通,但一定要能懂會用。Git是一個實用的版本控制(代碼管理)工具,Github則是一個倉庫托管(代碼共享)平臺,全國大神聚集的地方,裝逼神器。

關(guān)于Git的詳細(xì)教程建議閱讀其官方文檔,中文版,就是有點多,對于一般人來說閱讀前三章即可。本篇文章主要介紹下面這幾個方面:

  • Git的基本使用
  • Git與GitHub搭配使用
  • Git分支
  • GitHub靜態(tài)站點

這是我總結(jié)的對于一般開發(fā)人員來說,比較實用的幾個方面。本篇文章,只會引入幾個概念和一些比較重要的思想,不是一篇純教程。

Git的基本使用

Git是一個分布式版本控制工具,對應(yīng)的SVN則是集中式版本控制工具。如果你不知道SVN,那也沒必要去學(xué)它了(除非工作需要),直接學(xué)Git可能更實用一點。

分布式和集中式

簡單的說,集中式,就是將項目集中在一臺服務(wù)器上進(jìn)行管理。而分布式就是將項目分布在各臺計算機或服務(wù)器中進(jìn)行管理。分布式管理中每臺計算機都是一個完整的倉庫,而集中式管理中只能在服務(wù)器中進(jìn)行版本管理。聽起來可能很模糊,詳細(xì)請參考官方介紹。

基本使用

  • 配置用戶信息
# 名稱和郵箱隨意, Git僅用于記錄身份
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
  • 基本命令
# 在項目根目錄下運行 初始化一個本地倉庫
$ git init
# 跟蹤文件 或?qū)⑽募砑拥?暫存區(qū)
$ git add 文件名
# 提交 將暫存區(qū)的文件提交到版本控制中
$ git commit -m "提交信息"

# 查看當(dāng)前版本狀態(tài) 有事沒事多敲敲
$ git status

這是一個最基本的操作流程。但是實際使用中,總是不會如此順利,會遇到各種問題和需求。建議:

  • 遇到問題要多使用--help-h參數(shù)查看幫助;
  • 多使用git status命令
# 比如查看push相關(guān)的用法
$ git push -h
# 或
$ git push --help

這里補充一下,Git有三個工作區(qū)域:工作目錄、暫存區(qū)、Git倉庫。我們寫代碼可以直接操作的是工作目錄,通過git add將文件添加到暫存區(qū),git commit指令將文件提交到Git倉庫。

實用技巧

  • 放棄本次工作目錄中的修改
$ git checkout -- 文件名
  • 將暫存區(qū)的文件移除到工作目錄
$ git reset HEAD 文件名
  • .gitignore不起作用
# 移除git倉庫中所有文件,不會從真實的目錄移除
$ git rm -r --cached .

這種情況是Git倉庫中已經(jīng)有了(跟蹤了)某個文件,然后又修改了.gitignore文件,所以需要用上面的命令將要忽略的文件從Git倉庫中移除。.代表移除所有文件。

  • 執(zhí)行命令報錯Unable to create '/.git/index.lock': File exists之類的
# 刪除該文件即可
$ rm -rf .git/index.lock

出現(xiàn)該問題一般都是之前手動或其他問題而終止了某條命令。

Git與GitHub搭配使用

對于個人來說,Git的遠(yuǎn)程倉庫大多都是github。要將一個本地倉庫推送到github上,首先必須github上要存在一個與本地同名的倉庫,并且與本地倉庫關(guān)聯(lián)起來。

基本使用

你有兩種方式可以選擇,第一就是首先在github上建立項目倉庫,然后克隆到本地使用。

$ git clone git@github.com:username/project-name.git

第二種就是本地已經(jīng)存在一個項目倉庫,然后先在github上建立一個同名的倉庫,并關(guān)聯(lián)起來。

# 添加遠(yuǎn)程倉庫
$ git remote add origin git@github.com:username/project-name.git
# 推送到遠(yuǎn)程服務(wù)器
$ git push -u origin master

如果push失敗,先pull更新到本地,然后再執(zhí)行上面的push命令。這里的origin是遠(yuǎn)程倉庫的名稱,也是默認(rèn)的。一個本地的Git倉庫可以添加多個遠(yuǎn)程倉庫,遠(yuǎn)程倉庫名用來區(qū)分每個遠(yuǎn)程倉庫(一般可能用不上,對于個人來說,遠(yuǎn)程倉庫一般都是github一個)。

配置SSH

如果要使用github,配置一個SSH公鑰也是必不可少的。如果你執(zhí)行某項操作提示你沒有權(quán)限,那么很有可能就是沒有正確配置SSH公鑰。

一臺本地計算機對應(yīng)一個SSH公鑰,一個github賬號可以添加多個SSH公鑰,也就是說可以通過多臺電腦來管理一個github賬號下的項目倉庫。

# 生成SSH公鑰 一路回車即可
$ ssh-keygen
# 查看生成的SSH公鑰
$ cat ~/.ssh/id_rsa.pub

然后,復(fù)制所有查看到的內(nèi)容,添加到github上即可。

Git分支

Git的另一個重要的特性就是分支,要學(xué)好分支,必須得先弄懂Git分支的本質(zhì)。

理解分支

每建立一個Git倉庫,默認(rèn)就有一個master分支(主分支)。Git中的分支本質(zhì)上就是一個指向commit對象的指針。每commit一次,就對應(yīng)一個提交記錄(暫且就叫版本號),把這些提交記錄想象成一條串聯(lián)起來的方塊,而分支就是指向這些方塊的指針。

因此,在一個分支上的所有修改和提交只會將當(dāng)前分支的指向往最新的版本移動,而其他分支依舊指向原來的提交版本,不會有任何影響。

Git中可以有很多分支,HEAD指針指向當(dāng)前的分支,建議參考官方解釋,圖文例子很形象,一定要理解它的本質(zhì)和原理。

基本操作

# 創(chuàng)建分支
$ git branch 分支名
# 創(chuàng)建并切換到分支
$ git checkout -b 分支名

# 刪除分支
$ git branch -d 分支名
# 合并其他分支到當(dāng)前分支
$ git meger 分支名

對于新手,建議不要在重要的項目上試用各種分支操作,不然你會越高越亂,最后可能就回不去了。

GitHub靜態(tài)站點

github有一個十分強大的特性,就是每一個倉庫,都可以是一個可訪問的靜態(tài)站點,也就是說,你可以將html文件放在倉庫中,可以通過域名的方式來訪問這個頁面。

github提供一個主站點,它的倉庫名必須是username.github.iousername就是你自己的用戶名),默認(rèn)訪問的域名是username.github.io,而且還可以配置自己的域名(比如baidu.com,前提是這個域名是你的)。其他項目站點都只能通過username.github.io/project-name的形式訪問。大多數(shù)人都會用這個主站點搭建一個個人的主頁或博客之類的,網(wǎng)上與之相關(guān)的教程很多,對于非專業(yè)的前端開發(fā)人員,大多就是采用hexo來快速搭建自己的博客系統(tǒng)。有興趣的可以自己百度hexo關(guān)鍵字,會有很多相關(guān)的教程。

其他項目有三種方法將倉庫配置為可訪問的站點,具體請參考這里。

后記

Git對于剛接觸的人可能并不友好,一路走來,我不知道弄壞了多少個項目倉庫。最好是身邊有會的人指導(dǎo),這樣會少走很多彎路。我的前端開發(fā)之路只有我一個人,而且所有東西全部都是靠自學(xué),吃過的苦踩過的坑也是不計其數(shù)。

到現(xiàn)在,也算是真正步入前端這個行業(yè)了。知道前端需要學(xué)些什么,也知道一些東西的基本用法,自學(xué)的時候就會有一個比較明確的方向。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.git的安裝 1.1 在Windows上安裝Git msysgit是Windows版的Git,從https:/...
    落魂灬閱讀 12,839評論 4 54
  • 《民主主義與教育》讀書筆記(十一) ——第十一章:經(jīng)驗和思維 2017/8/12 一、經(jīng)驗的性質(zhì): 經(jīng)驗既包含有主...
    河南麥子的書寫閱讀 2,734評論 0 2
  • 我感賞自己是個能干的人,在我人生低落的時候,別人又為我介紹了一份兼職工作。這一兩年來由于老公一直堅持要與我離婚,我...
    張元玲閱讀 255評論 0 0
  • 有時候想,孤獨,到底是一種狀態(tài)呢,還是一種過程? 2017年8月16日,星期三,雨 清晨,我腫紅的雙眼全然不顧我意...
    絳洞花王閱讀 872評論 53 21

友情鏈接更多精彩內(nèi)容