每個(gè)人都該學(xué)git,最新GitHub與Git指令快速上手

真的,還等什么,趕緊加入github懷抱

2016/5/17更新

github這個(gè)磨人的小妖精,又更新了頁(yè)面布局,我下面的文章又得改了,以下內(nèi)容更新到當(dāng)前時(shí)間。

為什么要學(xué)github

  • 如果你想要快速建立自己博客,學(xué)git。
  • 如果你是程序猿,請(qǐng)務(wù)必學(xué)git,并習(xí)慣把自己的代碼同步到github上(你想說,不嘛,我自己的代碼,不想給別人看。喂喂!有點(diǎn)開源精神好不好)。
  • 如果你是文案工作者,你得到處跑,在不同的電腦上同步文章,學(xué)git(涉秘內(nèi)容你可以選擇私有倉(cāng)庫(kù))。
  • 如果你要在不同平臺(tái)上發(fā)文章,覺得圖片同步是個(gè)麻煩事,學(xué)git。
    ……
    只要你有任何同步的需求(太大的內(nèi)容除外),學(xué)git真沒錯(cuò)。

什么是git

Git是一款免費(fèi)、開源的分布式版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的項(xiàng)目。

Git 不等于 github大家注意了!git和github就是球和球場(chǎng)的關(guān)系!

github是一個(gè)平臺(tái)網(wǎng)站,建立在git之上的。國(guó)內(nèi)外還有很多這樣的代碼托管平臺(tái)比如bitbucket(我之前一直在這上面弄,有免費(fèi)的私有倉(cāng)庫(kù))。

github的優(yōu)勢(shì)在與用戶群大,而且十分活躍,能在上面找到很多好玩的東西,加上上面建站方便(以后再寫)。反正,如果你在找一個(gè)托管平臺(tái),選github沒錯(cuò)!

創(chuàng)建賬戶

之前做代碼版本控制都是在bitbucket上面的私有倉(cāng)庫(kù)?,F(xiàn)在開源社區(qū)挺火的,想在github找些開源的工程學(xué)習(xí)一下,于是加入了github,這里記錄一下入門的經(jīng)歷。

首先創(chuàng)建賬戶的過程在這里就省略一萬字了…

點(diǎn)這里進(jìn)github官網(wǎng)

創(chuàng)建完賬戶,你就可以開始建立自己的第一個(gè)倉(cāng)庫(kù)了。你會(huì)在你奇奇怪怪的默認(rèn)頭像旁邊看見一個(gè)很大的“+”號(hào),點(diǎn)下去,可以看到2個(gè)選項(xiàng),第一個(gè)就是新建個(gè)代碼倉(cāng)庫(kù)。

填好倉(cāng)庫(kù)名,然后點(diǎn)上創(chuàng)建一個(gè)README,最好也填點(diǎn)說明。

然后你就能看到下面的界面了,現(xiàn)在里面只有一個(gè)ReadMe,注意紅框的位置,這就是你的倉(cāng)庫(kù)地址,如果要克隆倉(cāng)庫(kù),就是這個(gè)地址。

Paste_Image.png

接下來就可以添加你的工程文件了,你可以用網(wǎng)站上的功能按鈕新建文件或者上傳文件,但是推薦還是在本地用命令行操作。

本地操作方案

那本地怎么操作呢?有2個(gè)方案:

1.直接下載github的桌面程序,是可視化的,很容易上手。
https://desktop.github.com/

2.使用命令行,這里【推薦】使用命令行,一來效率高,二來以后你到不同的平臺(tái)上,能很快的上手,再者如果你以后用的服務(wù)器沒有圖形界面,只能用命令行。所以還是熟悉的好。

首先你需要安裝git

Linux上安裝Git

紅帽系列

$ sudo yum install git

Ubuntu系,請(qǐng)嘗試用 apt-get:

$ sudo apt-get install git

Mac上安裝Git

在 Mac 上安裝 Git 有多種方式。 最簡(jiǎn)單的方法是安裝 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系統(tǒng)中,在 Terminal 里嘗試首次運(yùn)行 git 命令即可。 如果沒有安裝過命令行開發(fā)者工具,將會(huì)提示你安裝。

如果你想安裝更新的版本,可以使用二進(jìn)制安裝程序。 官方維護(hù)的 OSX Git 安裝程序可以在 Git 官方網(wǎng)站下載,網(wǎng)址為 http://git-scm.com/download/mac。

Windows上安裝Git

windows用戶用2個(gè)選擇:

  1. 如果命令已經(jīng)熟悉的建議用msysGit可以去官網(wǎng)下載:
    https://git-for-windows.github.io/
  2. 如果安裝了github桌面版,自動(dòng)會(huì)有個(gè)git shell (我在這里展示用的這個(gè),比較好看,方便介紹命令。但是后續(xù)使用,我基本只用git bash,雖然丑點(diǎn),但是方便啊,直接到倉(cāng)庫(kù)對(duì)應(yīng)目錄下點(diǎn)擊右鍵就可以打開bash
    https://desktop.github.com/

安裝就一路下一步就好了。由于我是windows環(huán)境,這里重點(diǎn)就講windows上git的使用,不過命令都是通用的。(不管你用什么git工具,在命令行下的命令基本是一致的,所以不需要特別跟我用一樣的git工具

Windows上git使用

安裝完msysgit后,會(huì)有Git Bash的圖標(biāo),安裝完github桌面版會(huì)有個(gè)git shell,不管哪個(gè)都一樣的。我這里用的git shell,比較友好(但是命令都是通用的)。Git shell里面,windows和linux的常用命令都可以用!是不是很贊。

打開后是一個(gè)控制臺(tái),然后就可以輸入命令了

一開始什么都不會(huì)的時(shí)候,可以使用

 git help

查看可用命令。下面先記錄一些剛開始可能會(huì)用到的命令,剩下的命令以后再記錄。

Git常用命令

一般人,如果不是做協(xié)同開發(fā),真的只要知道這些命令就好了!如果懶癌發(fā)作連這些命令也不想看,直接跳到最后??!立馬上手?。?/strong>

獲取倉(cāng)庫(kù)

可以用

git init

初始化一個(gè)倉(cāng)庫(kù),這個(gè)一般在什么時(shí)候用呢?一般就是你本地目錄已經(jīng)準(zhǔn)備就緒了,然后想直接在github上新建一個(gè)“空”倉(cāng)庫(kù)(連README.d也不要)把東西全丟進(jìn)去的時(shí)候用這個(gè)。這個(gè)命令一般和remote命令配合使用,效果更佳。(下面會(huì)介紹別急哦)

  git remote add

我們一般常用的都是克隆現(xiàn)有的倉(cāng)庫(kù),這里還是用剛才創(chuàng)建的helloworld倉(cāng)庫(kù)(這里我用https地址,但是推薦大家使用ssh,ssh使用方法后面也會(huì)提,大家少安毋躁

git clone https://github.com/hk029/hello-world.git

url后面可以用一個(gè)新的路徑名https://github.com/username/reponame.git,讓它保存到特定的目錄下,默認(rèn)就是當(dāng)前路徑下創(chuàng)建一個(gè)和倉(cāng)庫(kù)名一樣的目錄。

注意:這個(gè)命令是克隆了一個(gè)倉(cāng)庫(kù)而不是簡(jiǎn)單的拷貝了文件下來,還保存了有關(guān)倉(cāng)庫(kù)的信息,基本就是克隆出了一個(gè)小的本地倉(cāng)庫(kù)。(有個(gè).git目錄)

然后可以cd進(jìn)去看看

這里有個(gè)比較有意思的地方,你會(huì)發(fā)現(xiàn)目錄名后一個(gè)[master]這個(gè)表示目前這是一個(gè)master分支。當(dāng)前目錄有個(gè).git目錄,它會(huì)記錄倉(cāng)庫(kù)的信息,所以你能看到[master]這個(gè)標(biāo)簽。之后你對(duì)當(dāng)前目錄的文件做的操作,都會(huì)被記錄。

如果你是用的git bash,也能看到后面有個(gè)小括號(hào)寫的master

狀態(tài)與暫存

檢查目前倉(cāng)庫(kù)的狀態(tài)是挺重要的一個(gè)環(huán)節(jié),以免你提交代碼的時(shí)候提交的不是最新代碼。
一般來說,你目前目錄下的文件就兩種狀態(tài)

  • 跟蹤
  • 未跟蹤

我們可以先輸入命令看看當(dāng)前倉(cāng)庫(kù)的狀態(tài)

 git status

可以發(fā)現(xiàn)目前目錄下很干凈,一切都和當(dāng)初克隆下來一樣,所以狀態(tài)顯示也是很干凈。

我們新鍵一個(gè)文件,或者從別的地方移動(dòng)一個(gè)文件到當(dāng)前目錄下,看看有什么變化。

我們可以看見,‘[master]’之后多了幾個(gè)東西。

+1 表示目前有1個(gè)新文件
~0 表示0個(gè)修改的文件
-0 表示0個(gè)刪除的文件
! 表示未保存

我們?cè)佥斎雜tatus命令看看

發(fā)現(xiàn)目前有個(gè)未跟蹤的文件了。

我們把它暫存到暫存區(qū)

 git add NewFile

這個(gè)命令會(huì)把這個(gè)文件放到暫存區(qū)(還是在本地)到時(shí)候提交的時(shí)候就會(huì)把暫存區(qū)的東西提交到網(wǎng)上。

這個(gè)時(shí)候,我們發(fā)現(xiàn)紅色的字變成了綠色,感嘆號(hào)也沒有了,說明目前修改都已經(jīng)保存了。

再輸入status命令看看


這個(gè)時(shí)候已經(jīng)是跟蹤狀態(tài)了。

如果我們這時(shí)候修改NewFile會(huì)發(fā)生什么呢?

可以發(fā)現(xiàn),又變紅了,這時(shí)候出先了~1,說明有一個(gè)修改文件。使用status命令看看

果然,出現(xiàn)了一個(gè)NewFile在未跟蹤里面。這不是很奇怪嗎,一個(gè)文件既是跟蹤又是未跟蹤?其實(shí)這很好理解,你可以理解為暫存區(qū)還有一個(gè)NewFile拷貝,就是原來那個(gè)我們add的“空”的NewFile。修改的這個(gè)不在暫存區(qū),如果這時(shí)候我們把所有修改提交,那么提交的是“空”的NewFile。

所以當(dāng)我們提交前,一定要git status看是不是還有紅字?是不是還有什么修改沒有更新到暫存區(qū)!

最后,還說下,其實(shí)git status有個(gè)簡(jiǎn)化輸出的形式。

git status -s

這里我為了讓所有狀態(tài)都出現(xiàn),刪除了README.md,可以發(fā)現(xiàn)這個(gè)簡(jiǎn)化版輸出其實(shí)更直觀。

我們把所有的修改更新到暫存區(qū)吧:

git add NewFile
git rm README.md

現(xiàn)在所有的更新都更新到暫存區(qū)了,可以提交了!

提交到本地倉(cāng)庫(kù)

這里的commit只是保存到了本地。如果你只需要一個(gè)本地倉(cāng)庫(kù),那么現(xiàn)在也就夠了。

git commit -m "my first commit"

注意:一定要帶-m加上說明

推送到遠(yuǎn)程倉(cāng)庫(kù)

因?yàn)槟闶侵苯訌倪h(yuǎn)程倉(cāng)庫(kù)拷貝的,所以你輸入

git remote

會(huì)發(fā)現(xiàn)已經(jīng)有個(gè)orignal了
這個(gè)時(shí)候你直接git push就行了

git push

用SSH連接并推送到遠(yuǎn)程倉(cāng)庫(kù)

如果大家是在自己的電腦上,墻裂建立大家使用這種模式??!

下面說下ssh的模式怎么用,首先你要?jiǎng)?chuàng)建一個(gè)私鑰,就是在自己電腦里的鑰匙。

ssh-keygen -t rsa -C "your email addr"


第一個(gè)是問你改不改目錄,回車就好。然后輸入密碼,確認(rèn)(這個(gè)密碼是生成這個(gè)密鑰的密碼,也可以為空(為空有多方便以后你就知道了),這樣你下次push就不用輸入密碼了)。

然后你就可以去那個(gè)目錄下找id_rsa.pub文件,打開(隨便用什么打開),把里面的東西復(fù)制。

然后去網(wǎng)站上把自己私鑰輸入進(jìn)去,頭像——settings

根據(jù)圖片點(diǎn)New SSH key

然后輸入一個(gè)隨便什么title自己知道就好,和你剛才復(fù)制的東西在key里

這時(shí)候,就算在github上注冊(cè)了你的私鑰,然后在輸入

ssh -T git@github.com

看看是不是能ssh連上github

好了一切準(zhǔn)備就緒。
我們先把遠(yuǎn)程倉(cāng)庫(kù)加上:

選擇ssh,然后復(fù)制后面的地址。

(因?yàn)橹坝幸粋€(gè)original的,我們這里方便測(cè)試先刪了它)

git remote rm origin

輸入

git remote 

發(fā)現(xiàn)沒東西了,可以添加新的遠(yuǎn)程倉(cāng)庫(kù)了。(如果你是init創(chuàng)建的倉(cāng)庫(kù),就要用下面的命令添加遠(yuǎn)程倉(cāng)庫(kù)啦?。?/p>

git remote add origin git@github.com:hk029/hello-world.git

然后輸入

git push -u origin master

master是你的分支,origin是你的遠(yuǎn)程倉(cāng)庫(kù)

第一次git push -u origin master后,就可以用直接用git push指令了


One more things

現(xiàn)在,走完整個(gè)流程,你應(yīng)該大概對(duì)git有一個(gè)認(rèn)識(shí)了,熟練的掌握git命令能成倍提升你的工作效率(特別是如果你經(jīng)常要在多臺(tái)電腦上工作,同步數(shù)據(jù))。

這里最后說一下,如果你不想記憶那么多命令(至少把這上面的那個(gè)ssh配置看一下),那么請(qǐng)至少記住以下5條:
首先是

git clone ……

不管什么情況,你都可以先用git clone 把倉(cāng)庫(kù)弄下來,然后再把文件復(fù)制進(jìn)去。然后!就是下面的我稱為無腦四重奏的命令。

  • 如果你有更新了該怎么辦??記住下面的四條命令:
git pull
git add * /rm
git commit -m "add"
git push

以后你在不同地方同步自己的更新,無腦敲4條命令就好了。(前提是你本地有倉(cāng)庫(kù)了呀!)

你可以把這4條命令寫在.bat文件里(就是新建一個(gè)文件,把4條命令輸進(jìn)去,后綴改成.bat,linux就.sh)

這里我放在d盤

然后每次只用輸入1條命令就好了!

d:/gitpush.bat

遇到問題怎么辦

對(duì)于小白來說,如果遇到了問題怎么辦??這里有個(gè)無敵小竅門(重啟?。。?/p>

  • 如果你實(shí)在不知道發(fā)生了什么,你又確定你自己的本地目錄是最新的。你可以把本地的.git刪除,然后新建一個(gè)倉(cāng)庫(kù),git remote add ……然后使用上面的無鬧四重奏,重新push上去。

  • 如果你確定網(wǎng)上的是最新的,你本地被你毀的面目全非了,也不要怕,把這個(gè)本地目錄整個(gè)刪除,重新git clone就好了。


深入學(xué)習(xí),推薦:廖雪峰的git教程


如果你喜歡,可以關(guān)注小V,我會(huì)不定期送上一些有趣而又實(shí)用的小工具,助你快步提升你的工作效率。同時(shí)會(huì)分享一些我的一些生活和學(xué)習(xí)經(jīng)驗(yàn)。
小V力求以最簡(jiǎn)單好玩的方式和大家一起進(jìn)步。

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

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

  • 一 Git配置和倉(cāng)庫(kù)初始化 下面會(huì)介紹Git的使用,每個(gè)小節(jié)里會(huì)講解各個(gè)功能在命令行中的實(shí)現(xiàn)方式,并在每小節(jié)的最后...
    Happioo閱讀 3,657評(píng)論 0 5
  • Git 安裝和使用教程 Git介紹 分布式:Git版本控制系統(tǒng)是一個(gè)分布式的系統(tǒng),是用來保存工程源代碼歷史狀態(tài)的命...
    無名_ff98閱讀 1,690評(píng)論 0 3
  • git /g?t/ 是一個(gè)開源的分布式版本控制系統(tǒng) 最初是 Linus Torvalds 為了幫助管理 Linux...
    TurboSnail閱讀 1,424評(píng)論 0 0
  • 1.GitHub 有什么用 學(xué)習(xí)優(yōu)秀的開源項(xiàng)目開源社區(qū)一直有一句流行的話叫「不要重復(fù)發(fā)明輪子」,某種意義上正是因?yàn)?..
    Clemente閱讀 1,549評(píng)論 1 14
  • 第1章 Shell和vi 1.1什么是shell 在計(jì)算機(jī)科學(xué)中,Shell俗稱殼,用來區(qū)別于Kernel(核),...
    福爾摩雞閱讀 1,206評(píng)論 0 1

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