【初識Github】
Git是一個分布式的版本控制系統(tǒng)挺物,最初由Linus Torvalds編寫涧黄,用作Linux內(nèi)核代碼的管理。在推出后壳坪,Git在其它項目中也取得了很大成功,尤其是在Ruby社區(qū)中掰烟。目前弥虐,包括Rubinius和Merb在內(nèi)的很多知名項目都使用了Git。Git同樣可以被諸如Capistrano和Vlad the Deployer這樣的部署工具所使用媚赖。同樣,eoe.cn客戶端的源碼也托管在github上珠插。
GitHub可以托管各種git庫惧磺,并提供一個web界面,但與其它像 SourceForge或Google Code這樣的服務(wù)不同捻撑,GitHub的獨特賣點在于從另外一個項目進行分支的簡易性磨隘。為一個項目貢獻代碼非常簡單:首先點擊項目站點的“fork”的按鈕缤底,然后將代碼檢出并將修改加入到剛才分出的代碼庫中,最后通過內(nèi)建的“pull request”機制向項目負責(zé)人申請代碼合并番捂。已經(jīng)有人將GitHub稱為代碼玩家的MySpace个唧。
在GitHub進行分支就像在Myspace(或Facebook…)進行交友一樣,在社會關(guān)系圖的節(jié)點中不斷的連線设预。
GitHub 使用 git 分布式版本控制系統(tǒng)徙歼,而 git 最初是 Linus Torvalds 為幫助Linux開發(fā)而創(chuàng)造的,它針對的是 Linux 平臺鳖枕,因此 git 和 Windows 從來不是最好的朋友魄梯,因為它一點也不像 Windows。GitHub 發(fā)布了GitHub for Windows宾符,為 Windows 平臺開發(fā)者提供了一個易于使用的 Git 圖形客戶端酿秸。
GitHub For Windows
GitHub for Windows 是一個 Metro 風(fēng)格應(yīng)用程序,集成了自包含版本的 Git魏烫,bash 命令行 shell辣苏,PowerShell 的 posh-git 擴展。GitHub 為 Windows 用戶提供了一個基本的圖形前端去處理大部分常用版本控制任務(wù)哄褒,可以創(chuàng)建版本庫稀蟋,向本地版本庫遞交補丁,在本地和遠程版本庫之間同步读处。微軟也通過CodePlex向開發(fā)者提供 git 版本控制系統(tǒng)糊治,而 GitHub 創(chuàng)造了一個更具有吸引力的 Windows 版本。
GitHub上已自動配置的Mac筆記本電腦罚舱,一個工具井辜,可以轉(zhuǎn)換設(shè)置Linux或Windows機器。
BOXEN是GitHub的自動化工具管闷,設(shè)置和配置的Mac筆記本電腦軟件開發(fā)[3]或其他類型的工作粥脚,正在使用他們的開發(fā)人員,律師包个,設(shè)計師刷允,付貨人,等碧囊。我們的想法是準備系統(tǒng)以自動方式和作為無差錯盡可能用最少的干預(yù)工作树灶。根據(jù)GitHub上,與一個新的開發(fā)機器上糯而,他的Mac系統(tǒng)成立天通,并準備在30分鐘內(nèi)提交代碼。
BOXEN的基礎(chǔ)上收集了大量的幾十個木偶模塊熄驼,使設(shè)置的各種軟件像寒,如卡桑德拉烘豹,MongoDB中,Java軟件中诺祸,Python和Ruby開發(fā)中携悯,節(jié)點,JS筷笨,nginx的憔鬼,Skype公司,甚至MINECRAFT奥秆。雖然機器上配備了一個預(yù)配置逊彭,每個用戶都可以調(diào)整它的配置應(yīng)有的作用。
【如何使用】
1.注冊賬戶以及創(chuàng)建倉庫
要想使用github第一步當然是注冊github賬號了构订。之后就可以創(chuàng)建倉庫了(免費用戶只能建公共倉庫)侮叮,Create a New Repository,填好名稱后Create悼瘾,之后會出現(xiàn)一些倉庫的配置信息囊榜,這也是一個git的簡單教程。
2.安裝客戶端msysgit
github是服務(wù)端亥宿,要想在自己電腦上使用git我們還需要一個git客戶端卸勺,我這里選用msysgit,這個只是提供了git的核心功能烫扼,而且是基于命令行的曙求。如果想要圖形界面的話只要在msysgit的基礎(chǔ)上安裝TortoiseGit即可。
裝完msysgit后右鍵鼠標會多出一些選項來映企,在本地倉庫里右鍵選擇Git Init Here悟狱,會多出來一個.git文件夾,這就表示本地git創(chuàng)建成功堰氓。右鍵Git Bash進入git命令行挤渐,為了把本地的倉庫傳到github,還需要配置ssh key双絮。
3.配置Git
首先在本地創(chuàng)建ssh key浴麻;
ssh-keygen -t rsa -C "your_email@youremail.com"
后面的your_email@youremail.com改為你的郵箱,之后會要求確認路徑和輸入密碼囤攀,我們這使用默認的一路回車就行软免。成功的話會在~/下生成.ssh文件夾,進去焚挠,打開id_rsa.pub或杠,復(fù)制里面的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上去硅急,在此之前還需要設(shè)置username和email覆享,因為github每次commit都會記錄他們。
$ git config --global user.name "your name"
$ git config --global user.email "your_email@youremail.com"
新建本地倉庫:
在想要存放倉庫的根目錄下創(chuàng)建本地倉庫:
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”內(nèi)容,這就是剛才添加的遠程地址跪另,也可以直接修改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的同名倉庫,需創(chuàng)建一個線上的倉庫(上面有教程)
切記:如果我們在創(chuàng)建遠程倉庫的時候添加了README和.ignore等文件(默認在github上創(chuàng)建時自動幫我們創(chuàng)建這兩個文件),我們在后面關(guān)聯(lián)倉庫后,(上傳push前)需要先執(zhí)行pull操作:
關(guān)聯(lián)倉庫命令:$ 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命令會將本地倉庫推送到遠程服務(wù)器嘲驾。
git pull命令則相反淌哟。
-----------------以上就是Git本地倉庫與Github遠程倉庫關(guān)聯(lián)的全部步驟-----------------
tips:
當本地倉庫的文件和線上文件都有修改的時候很容易起代碼沖突,問題來了距淫,就是要決解沖突绞绒,我在這里就簡單的提一下:
在我們在README文件中添加一句話"這是我的本地README文件”保存,
$git add README (添加到暫存區(qū))
$ git commit -m '添加了 這是我的本地README文件 這句話'
如果下面直接執(zhí)行$ git push origin master (在沒有修改遠程github上的同名文件時是可提交的榕暇,但如果也有修改就要執(zhí)行下面pull操作再合并本地的代碼蓬衡,否則就會報代碼沖突)
假設(shè)在github中的README文件中添加了一句話“這是我的github的README文件”保存,
首先我們先pull修改后git遠程文件:
$git pull origin master
這時候在打開本地的README文件應(yīng)該有我們線上和線下修改后的代碼彤枢,取舍其中需要的代碼如把它們合并為“這是我的github的README文件,這是我的本地README文件”狰晚,并保存。
$git add README (重新添加到暫存區(qū))
$ git commit -m '添加了 這是我的本地README文件' (重新提交)
最后push到遠程倉庫上
$ git push origin master
這時候刷新github頁面就能看到我們合并后的README文件了缴啡。
(修改完代碼后壁晒,使用git status可以查看文件的差別,使用git add 添加要commit的文件业栅,也可以用git add -i來智能添加文件秒咐。)
花了2個晚上學(xué)習(xí)git,感謝這幾位的博主的文章讓我受益良多谬晕!
常用的git命令傳送門:http://www.songyawei.cn/?s=git
學(xué)習(xí)git圖文教程:http://www.reibang.com/p/dcbb8baa6e36
github入門:http://blog.csdn.net/hcbbt/article/details/11651229
代碼沖突:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001375840202368c74be33fbd884e71b570f2cc3c0d1dcf000
git我還是新手,根據(jù)自己學(xué)習(xí)過程中遇到的問題和大家分享携取,避免走這些彎路攒钳,如果文章有什么問題還望您指出,我會虛心求教的(●'?'●)雷滋。希望我們共同進步不撑!