每個人都該學git,最新GitHub與Git指令快速上手

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

2016/5/17更新

github這個磨人的小妖精,又更新了頁面布局,我下面的文章又得改了,以下內容更新到當前時間。

為什么要學github

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

什么是git

Git是一款免費、開源的分布式版本控制系統,用于敏捷高效地處理任何或小或大的項目。

Git 不等于 github大家注意了!git和github就是球和球場的關系!

github是一個平臺網站,建立在git之上的。國內外還有很多這樣的代碼托管平臺比如bitbucket(我之前一直在這上面弄,有免費的私有倉庫)。

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

創建賬戶

之前做代碼版本控制都是在bitbucket上面的私有倉庫。現在開源社區挺火的,想在github找些開源的工程學習一下,于是加入了github,這里記錄一下入門的經歷。

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

點這里進github官網

創建完賬戶,你就可以開始建立自己的第一個倉庫了。你會在你奇奇怪怪的默認頭像旁邊看見一個很大的“+”號,點下去,可以看到2個選項,第一個就是新建個代碼倉庫。

填好倉庫名,然后點上創建一個README,最好也填點說明。

然后你就能看到下面的界面了,現在里面只有一個ReadMe,注意紅框的位置,這就是你的倉庫地址,如果要克隆倉庫,就是這個地址。

Paste_Image.png

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

本地操作方案

那本地怎么操作呢?有2個方案:

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

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

首先你需要安裝git

Linux上安裝Git

紅帽系列

$ sudo yum install git

Ubuntu系,請嘗試用 apt-get:

$ sudo apt-get install git

Mac上安裝Git

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

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

Windows上安裝Git

windows用戶用2個選擇:

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

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

Windows上git使用

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

打開后是一個控制臺,然后就可以輸入命令了

一開始什么都不會的時候,可以使用

 git help

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

Git常用命令

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

獲取倉庫

可以用

git init

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

  git remote add

我們一般常用的都是克隆現有的倉庫,這里還是用剛才創建的helloworld倉庫(這里我用https地址,但是推薦大家使用ssh,ssh使用方法后面也會提,大家少安毋躁

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

url后面可以用一個新的路徑名https://github.com/username/reponame.git,讓它保存到特定的目錄下,默認就是當前路徑下創建一個和倉庫名一樣的目錄。

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

然后可以cd進去看看

這里有個比較有意思的地方,你會發現目錄名后一個[master]這個表示目前這是一個master分支。當前目錄有個.git目錄,它會記錄倉庫的信息,所以你能看到[master]這個標簽。之后你對當前目錄的文件做的操作,都會被記錄。

如果你是用的git bash,也能看到后面有個小括號寫的master

狀態與暫存

檢查目前倉庫的狀態是挺重要的一個環節,以免你提交代碼的時候提交的不是最新代碼。
一般來說,你目前目錄下的文件就兩種狀態

  • 跟蹤
  • 未跟蹤

我們可以先輸入命令看看當前倉庫的狀態

 git status

可以發現目前目錄下很干凈,一切都和當初克隆下來一樣,所以狀態顯示也是很干凈。

我們新鍵一個文件,或者從別的地方移動一個文件到當前目錄下,看看有什么變化。

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

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

我們再輸入status命令看看

發現目前有個未跟蹤的文件了。

我們把它暫存到暫存區

 git add NewFile

這個命令會把這個文件放到暫存區(還是在本地)到時候提交的時候就會把暫存區的東西提交到網上。

這個時候,我們發現紅色的字變成了綠色,感嘆號也沒有了,說明目前修改都已經保存了。

再輸入status命令看看


這個時候已經是跟蹤狀態了。

如果我們這時候修改NewFile會發生什么呢?

可以發現,又變紅了,這時候出先了~1,說明有一個修改文件。使用status命令看看

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

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

最后,還說下,其實git status有個簡化輸出的形式。

git status -s

這里我為了讓所有狀態都出現,刪除了README.md,可以發現這個簡化版輸出其實更直觀。

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

git add NewFile
git rm README.md

現在所有的更新都更新到暫存區了,可以提交了!

提交到本地倉庫

這里的commit只是保存到了本地。如果你只需要一個本地倉庫,那么現在也就夠了。

git commit -m "my first commit"

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

推送到遠程倉庫

因為你是直接從遠程倉庫拷貝的,所以你輸入

git remote

會發現已經有個orignal了
這個時候你直接git push就行了

git push

用SSH連接并推送到遠程倉庫

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

下面說下ssh的模式怎么用,首先你要創建一個私鑰,就是在自己電腦里的鑰匙。

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


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

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

然后去網站上把自己私鑰輸入進去,頭像——settings

根據圖片點New SSH key

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

這時候,就算在github上注冊了你的私鑰,然后在輸入

ssh -T git@github.com

看看是不是能ssh連上github

好了一切準備就緒。
我們先把遠程倉庫加上:

選擇ssh,然后復制后面的地址。

(因為之前有一個original的,我們這里方便測試先刪了它)

git remote rm origin

輸入

git remote 

發現沒東西了,可以添加新的遠程倉庫了。(如果你是init創建的倉庫,就要用下面的命令添加遠程倉庫啦!)

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

然后輸入

git push -u origin master

master是你的分支,origin是你的遠程倉庫

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


One more things

現在,走完整個流程,你應該大概對git有一個認識了,熟練的掌握git命令能成倍提升你的工作效率(特別是如果你經常要在多臺電腦上工作,同步數據)。

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

git clone ……

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

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

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

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

這里我放在d盤

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

d:/gitpush.bat

遇到問題怎么辦

對于小白來說,如果遇到了問題怎么辦??這里有個無敵小竅門(重啟啊!):

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

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


深入學習,推薦:廖雪峰的git教程


如果你喜歡,可以關注小V,我會不定期送上一些有趣而又實用的小工具,助你快步提升你的工作效率。同時會分享一些我的一些生活和學習經驗。
小V力求以最簡單好玩的方式和大家一起進步。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容