github新手入門

【初識Github】

Git是一個分布式的版本控制系統,最初由Linus Torvalds編寫,用作Linux內核代碼的管理。在推出后,Git在其它項目中也取得了很大成功,尤其是在Ruby社區中。目前,包括Rubinius和Merb在內的很多知名項目都使用了Git。Git同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用。同樣,eoe.cn客戶端的源碼也托管在github上。

GitHub可以托管各種git庫,并提供一個web界面,但與其它像 SourceForge或Google Code這樣的服務不同,GitHub的獨特賣點在于從另外一個項目進行分支的簡易性。為一個項目貢獻代碼非常簡單:首先點擊項目站點的“fork”的按鈕,然后將代碼檢出并將修改加入到剛才分出的代碼庫中,最后通過內建的“pull request”機制向項目負責人申請代碼合并。已經有人將GitHub稱為代碼玩家的MySpace。

在GitHub進行分支就像在Myspace(或Facebook…)進行交友一樣,在社會關系圖的節點中不斷的連線。

GitHub 使用 git 分布式版本控制系統,而 git 最初是 Linus Torvalds 為幫助Linux開發而創造的,它針對的是 Linux 平臺,因此 git 和 Windows 從來不是最好的朋友,因為它一點也不像 Windows。GitHub 發布了GitHub for Windows,為 Windows 平臺開發者提供了一個易于使用的 Git 圖形客戶端。

GitHub For Windows
GitHub for Windows 是一個 Metro 風格應用程序,集成了自包含版本的 Git,bash 命令行 shell,PowerShell 的 posh-git 擴展。GitHub 為 Windows 用戶提供了一個基本的圖形前端去處理大部分常用版本控制任務,可以創建版本庫,向本地版本庫遞交補丁,在本地和遠程版本庫之間同步。微軟也通過CodePlex向開發者提供 git 版本控制系統,而 GitHub 創造了一個更具有吸引力的 Windows 版本。

GitHub上已自動配置的Mac筆記本電腦,一個工具,可以轉換設置Linux或Windows機器。

BOXEN是GitHub的自動化工具,設置和配置的Mac筆記本電腦軟件開發[3]或其他類型的工作,正在使用他們的開發人員,律師,設計師,付貨人,等。我們的想法是準備系統以自動方式和作為無差錯盡可能用最少的干預工作。根據GitHub上,與一個新的開發機器上,他的Mac系統成立,并準備在30分鐘內提交代碼。

BOXEN的基礎上收集了大量的幾十個木偶模塊,使設置的各種軟件,如卡桑德拉,MongoDB中,Java軟件中,Python和Ruby開發中,節點,JS,nginx的,Skype公司,甚至MINECRAFT。雖然機器上配備了一個預配置,每個用戶都可以調整它的配置應有的作用。

【如何使用】

1.注冊賬戶以及創建倉庫

要想使用github第一步當然是注冊github賬號了。之后就可以創建倉庫了(免費用戶只能建公共倉庫),Create a New Repository,填好名稱后Create,之后會出現一些倉庫的配置信息,這也是一個git的簡單教程。

2.安裝客戶端msysgit

github是服務端,要想在自己電腦上使用git我們還需要一個git客戶端,我這里選用msysgit,這個只是提供了git的核心功能,而且是基于命令行的。如果想要圖形界面的話只要在msysgit的基礎上安裝TortoiseGit即可。

裝完msysgit后右鍵鼠標會多出一些選項來,在本地倉庫里右鍵選擇Git Init Here,會多出來一個.git文件夾,這就表示本地git創建成功。右鍵Git Bash進入git命令行,為了把本地的倉庫傳到github,還需要配置ssh key。

3.配置Git

首先在本地創建ssh key;

ssh-keygen -t rsa -C "your_email@youremail.com"  

后面的your_email@youremail.com改為你的郵箱,之后會要求確認路徑和輸入密碼,我們這使用默認的一路回車就行。成功的話會在~/下生成.ssh文件夾,進去,打開id_rsa.pub,復制里面的key。
回到github,進入Account Settings,左邊選擇SSH Keys,Add SSH Key,title隨便填,粘貼key。為了驗證是否成功,在Git bash下輸入:

$ ssh -T git@github.com  

如果是第一次的會提示是否continue,輸入yes就會看到:You’ve successfully authenticated, but GitHub does not provide shell access 。這就表示已成功連上github。
接下來我們要做的就是把本地倉庫傳到github上去,在此之前還需要設置username和email,因為github每次commit都會記錄他們。

$ git config --global user.name "your name"  
$ git config --global user.email "your_email@youremail.com" 

新建本地倉庫:
在想要存放倉庫的根目錄下創建本地倉庫:

git init [倉庫的名字]

或者:
新建一個存放.git(倉庫)的文件如(github目錄下面的firstday目錄):

git init //就會在firstday目錄下生成.git倉庫文件

進入要上傳的倉庫(firstday文件),右鍵git bash,添加遠程地址:

$ git remote add origin git@github.com:yourName/yourRepo.git  

后面的yourName和yourRepo表示你在github的用戶名 和 剛才新建的倉庫,加完之后進入.git,打開config,這里會多出一個remote “origin”內容,這就是剛才添加的遠程地址,也可以直接修改config來配置遠程地址。
-----------------以上就是在git上配置本地倉庫的全部步驟-----------------

4.提交、上傳

接下來在本地倉庫里(firstday目錄下)添加一些文件,比如README文件,在原來的firstday目錄下Git Bash Here:

$ git touch README
$ git add README 
$ git commit -m "first commit"  

上傳到github:

$ git push -u origin master  (這里可能會有報錯:請查看git的報錯以及解決方法)
如果這里報錯:

ERROR: Repository not found.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
說明你的github上找不到helloworld的同名倉庫,需創建一個線上的倉庫(上面有教程)
切記:如果我們在創建遠程倉庫的時候添加了README和.ignore等文件(默認在github上創建時自動幫我們創建這兩個文件),我們在后面關聯倉庫后,(上傳push前)需要先執行pull操作:
關聯倉庫命令:$ git remote add origin git@github.com:yourName/yourRepo.git

pull命令:$ git pull -u origin master

再接著上面的操作:

$ git push -u origin master
(這時刷新你的github的helloworld倉庫就會看到我們剛剛添加的README文件和 first commit的提交說明了)
git push命令會將本地倉庫推送到遠程服務器。
git pull命令則相反。

-----------------以上就是Git本地倉庫與Github遠程倉庫關聯的全部步驟-----------------

tips:

當本地倉庫的文件和線上文件都有修改的時候很容易起代碼沖突,問題來了,就是要決解沖突,我在這里就簡單的提一下:

在我們在README文件中添加一句話"這是我的本地README文件”保存,

$git add README (添加到暫存區)
$ git commit -m '添加了 這是我的本地README文件 這句話'

如果下面直接執行$ git push origin master (在沒有修改遠程github上的同名文件時是可提交的,但如果也有修改就要執行下面pull操作再合并本地的代碼,否則就會報代碼沖突)
假設在github中的README文件中添加了一句話“這是我的github的README文件”保存,

首先我們先pull修改后git遠程文件:

$git pull origin master

這時候在打開本地的README文件應該有我們線上和線下修改后的代碼,取舍其中需要的代碼如把它們合并為“這是我的github的README文件,這是我的本地README文件”,并保存。

$git add README (重新添加到暫存區)
$ git commit -m '添加了 這是我的本地README文件' (重新提交)

最后push到遠程倉庫上

$ git push origin master

這時候刷新github頁面就能看到我們合并后的README文件了。
(修改完代碼后,使用git status可以查看文件的差別,使用git add 添加要commit的文件,也可以用git add -i來智能添加文件。)

花了2個晚上學習git,感謝這幾位的博主的文章讓我受益良多!
常用的git命令傳送門:http://www.songyawei.cn/?s=git
學習git圖文教程:http://www.lxweimin.com/p/dcbb8baa6e36
github入門:http://blog.csdn.net/hcbbt/article/details/11651229
代碼沖突:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840202368c74be33fbd884e71b570f2cc3c0d1dcf000

git我還是新手,根據自己學習過程中遇到的問題和大家分享,避免走這些彎路,如果文章有什么問題還望您指出,我會虛心求教的(●'?'●)。希望我們共同進步!

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

推薦閱讀更多精彩內容