在講如何上傳本地文件到github之前,有必要先簡(jiǎn)單的講一下如何在本地創(chuàng)建倉(cāng)庫淀弹,以及如何添加文件。
創(chuàng)建版本庫
什么是版本庫呢庆械?版本庫又名倉(cāng)庫薇溃,英文名repository,你可以簡(jiǎn)單理解成一個(gè)目錄缭乘,這個(gè)目錄里面的所有文件都可以被Git管理起來沐序,每個(gè)文件的修改、刪除堕绩,Git都能跟蹤策幼,以便任何時(shí)刻都可以追蹤歷史,或者在將來某個(gè)時(shí)刻可以“還原”奴紧。
所以特姐,創(chuàng)建一個(gè)版本庫非常簡(jiǎn)單。
1.在電腦上選擇一個(gè)合適的地方黍氮,創(chuàng)建一個(gè)空目錄唐含。
$ mkdir learngit創(chuàng)建一個(gè)名為learngit的文件夾。
$ cd learngit進(jìn)入該文件夾沫浆。
$ pwd查看一下當(dāng)前文件夾路徑捷枯。
2.通過git init這個(gè)命令初始化倉(cāng)庫,使之變?yōu)樽约嚎梢怨芾淼膫}(cāng)庫专执。
瞬間Git就把倉(cāng)庫建好了淮捆,而且告訴你是一個(gè)空的倉(cāng)庫(empty Git repository),細(xì)心的讀者可以發(fā)現(xiàn)當(dāng)前目錄下多了一個(gè).git
的目錄他炊,這個(gè)目錄是Git來跟蹤管理版本庫的争剿,沒事千萬不要手動(dòng)修改這個(gè)目錄里面的文件,不然改亂了痊末,就把Git倉(cāng)庫給破壞了蚕苇。
如果你沒有看到.git
目錄,那是因?yàn)檫@個(gè)目錄默認(rèn)是隱藏的凿叠,用ls -ah
命令就可以看見涩笤。
在本地倉(cāng)庫添加文件
現(xiàn)在嚼吞,我們先創(chuàng)建一個(gè)名為text的txt格式的文件
$ vi text
編輯內(nèi)容為Hello world!
1.使用git add命令告訴git,把文件添加到倉(cāng)庫蹬碧。
$ git add text
然后回車
這時(shí)候終端并沒有什么提示舱禽,這樣就對(duì)了。
2.使用git commit命令告訴git恩沽,把文件提交到倉(cāng)庫誊稚。
$ git commit -m "a text file"
然后下面會(huì)出現(xiàn)這段代碼告訴你添加文件的信息,也就是添加成功了罗心。
[master 79d23f4] a text file
1 file changed, 1 insertion(+)
create mode 100644 text
簡(jiǎn)單解釋一下git commit
命令里伯,-m
后面輸入的是本次提交的說明,可以輸入任意內(nèi)容渤闷,當(dāng)然最好是有意義的疾瓮,這樣你就能從歷史記錄里方便地找到改動(dòng)記錄。
添加遠(yuǎn)程庫
之前在介紹搭建hexo靜態(tài)博客的時(shí)候飒箭,有講過如何在github上創(chuàng)建倉(cāng)庫狼电。所以,這里添加遠(yuǎn)程庫也是一個(gè)道理弦蹂,在Repository name填入learngit
(這里要和你本地倉(cāng)庫的名稱一樣)肩碟,其他保持默認(rèn)設(shè)置,點(diǎn)擊“Create repository”按鈕盈匾,就成功地創(chuàng)建了一個(gè)新的Git倉(cāng)庫腾务。
目前,在GitHub上的這個(gè)learngit倉(cāng)庫還是空的削饵,GitHub告訴我們岩瘦,可以從這個(gè)倉(cāng)庫克隆出新的倉(cāng)庫,也可以把一個(gè)已有的本地倉(cāng)庫與之關(guān)聯(lián)窿撬,然后启昧,把本地倉(cāng)庫的內(nèi)容推送到GitHub倉(cāng)庫。
現(xiàn)在劈伴,我們根據(jù)GitHub的提示密末,在本地的learngit
倉(cāng)庫下運(yùn)行命令:
$ git remote add origin git@github.com:IsaJenko/learngit.git
請(qǐng)千萬注意,把上面的IsaJenko
替換成你自己的GitHub賬戶名跛璧,否則严里,你在本地關(guān)聯(lián)的就是我的遠(yuǎn)程庫,關(guān)聯(lián)沒有問題追城,但是你以后推送是推不上去的刹碾,因?yàn)槟愕腟SH Key公鑰不在我的賬戶列表中。
添加后座柱,遠(yuǎn)程庫的名字就是origin迷帜,這是Git默認(rèn)的叫法物舒,也可以改成別的,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫戏锹。
下一步冠胯,就可以把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上:
$ git push -u origin master
請(qǐng)千萬注意,把上面的IsaJenko
替換成你自己的GitHub賬戶名锦针,否則荠察,你在本地關(guān)聯(lián)的就是我的遠(yuǎn)程庫,關(guān)聯(lián)沒有問題奈搜,但是你以后推送是推不上去的割粮,因?yàn)槟愕腟SH Key公鑰不在我的賬戶列表中。
添加后媚污,遠(yuǎn)程庫的名字就是origin,這是Git默認(rèn)的叫法廷雅,也可以改成別的耗美,但是origin這個(gè)名字一看就知道是遠(yuǎn)程庫。
下一步航缀,就可以把本地庫的所有內(nèi)容推送到遠(yuǎn)程庫上:
$ git push -u origin master
由于遠(yuǎn)程庫是空的商架,我們第一次推送master
分支時(shí),加上了-u
參數(shù)芥玉,Git不但會(huì)把本地的master
分支內(nèi)容推送的遠(yuǎn)程新的master
分支蛇摸,還會(huì)把本地的master
分支和遠(yuǎn)程的master
分支關(guān)聯(lián)起來,在以后的推送或者拉取時(shí)就可以簡(jiǎn)化命令灿巧。
推送成功后赶袄,可以立刻在GitHub頁面中看到遠(yuǎn)程庫的內(nèi)容已經(jīng)和本地一模一樣。
從現(xiàn)在起抠藕,只要本地作了提交饿肺,也就是在本地git add
之后在git commit
之后就可以通過命令:
$ git push origin master
把本地master
分支的最新修改推送至GitHub,現(xiàn)在盾似,你就擁有了真正的分布式版本庫敬辣!
最后
一些可能遇到的問題解決:
如果輸入
$ git remote add origin git@github.com:djqiang(github帳號(hào)名)/gitdemo(項(xiàng)目名).git
提示錯(cuò)誤信息:fatal: remote origin already exists.
解決辦法如下:
1、先輸入$ git remote rm origin
2零院、再輸入$ git remote add origin git@github.com:djqiang/gitdemo.git
就不會(huì)報(bào)錯(cuò)了溉跃!
如果輸入
$ git push origin master
提示出錯(cuò)信息:
error:failed to push som refs to …….
解決辦法如下:
1、先輸入$ git pull origin master
//先把遠(yuǎn)程服務(wù)器github上面的文件拉下來
2告抄、再輸入$ git push origin master
3撰茎、如果出現(xiàn)報(bào)錯(cuò) fatal: Couldn’t find remote ref master
或者fatal: ‘origin’ does not appear to be a git repository
以及fatal: Could not read from remote repository.
4、則需要重新輸入
$ git remote add origingit@github.com:IsaJenko/learngit.git
Create a new repository on the command line
touch README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:IsaJenko/learngit.git
git push -u origin master
Push an existing repository from the command line
git remote add origin git@github.com:IsaJenko/learngit.git
git push -u origin master