說到Git就一定要說GitHub——全球最大的同性交友網(wǎng)站(咳咳Q爸洹)
GitHub是一個提供Git倉庫托管服務的網(wǎng)站芋膘,在這個網(wǎng)站上只要注冊一個GitHub賬號,就可以免費獲得Git遠程倉庫。那么首先允扇,我們還是先看概念愧怜,再看操作~
一呀页、遠程倉庫
Git是分布式版本控制系統(tǒng),同一個Git倉庫拥坛,可以分布到不同的機器上蓬蝶。此后,別的機器可以“克隆”這個原始版本庫猜惋,而且每臺機器的版本庫其實都是一樣的丸氛,并沒有主次之分。而這個原始的版本庫著摔,就是我們所說的遠程倉庫缓窜。
遠程倉庫的運行機制呢,往往是找一臺電腦充當服務器的角色,每天24小時開機禾锤,其他每個人都從這個“服務器”倉庫克隆一份到自己的電腦上私股,并且各自把各自的提交推送到服務器倉庫里,也從服務器倉庫中拉取別人的提交恩掷。
當然倡鲸,我們也可以自己搭建一臺Git服務器。但是現(xiàn)階段黄娘,我們還是先來用現(xiàn)有工具——GitHub來看一看遠程倉庫怎么玩吧峭状。
二、擁有自己的GitHub
1. 注冊GitHub賬號
這一步應該不用教....打開GitHub逼争,自學成才(不認識英文的优床,就右鍵翻譯網(wǎng)頁唄)
2. 根據(jù)提示新建一個倉庫
寫完庫名,其他默認誓焦。至于公開還是私有胆敞,就看你的心情了(同樣,翻譯大法好)罩阵。
下面竿秆,重點來了,開始關聯(lián)本地與遠程的倉庫8灞凇S母帧!
3. 設置免秘鑰登錄遠程倉庫傅是,配置ssh
-
任意目錄下打開
git bush
匪燕,依次輸入,然后瘋狂回車就行$ cd ~/.ssh $ ssh-keygen -t rsa -C "你的郵箱"
- 這里的郵箱就是我們在之前配置git時候的郵箱喧笔,如果忘了帽驯,可以用
git config --list
進行查看。
- 這里的郵箱就是我們在之前配置git時候的郵箱喧笔,如果忘了帽驯,可以用
然后我們可以看到命令行給我們一類似
C:\Users\XXX\.ssh
的路徑书闸。在這個路徑下尼变,找到這個文件id_rsa.pub
,用編輯器或者記事本打開浆劲,里面就是我們等下要用到的公鑰嫌术。復制它!打開GitHub牌借,依次點擊右上角頭像 → Settings → SSH and GPG keys → NEW SSH key
Title:可以隨便填寫度气。不過一臺電腦一般對應一個SSH,為了便于管理膨报,個人建議填寫一個你一看就知道這個SSH對應哪臺電腦的名字磷籍。
-
Key:直接粘貼剛才復制的公鑰(SSH)
填寫完成后點擊 Add SSH key 提交即可
-
轉(zhuǎn)回頭在
git bush
中輸入命令檢測是否連接成功:$ ssh -T git@github.com
看到提示讓你寫
yes/no
的适荣,輸入yes
就可以啦。接著院领,如果你在
C:\Users\XXX\.ssh
的目錄下弛矛,看到一個known_hosts
的文件,那就證明連接成功了栅盲。
到此為止汪诉,你電腦中本地倉庫的東西就可以開始往遠程倉庫里面?zhèn)髁朔狭担唧w怎么傳谈秫,往下看!
三鱼鼓、跟GitHub的第一次遠程傳輸
直接開擼步驟:
找個合適的地方建個文件夾拟烫,同理,路徑中不要有中文迄本!
然后我們可以隨便建一個文件硕淑,比如index.txt,里面隨便寫點東西嘉赎。
右鍵點擊
Git Bash Here
置媳,輸入git init
初始化 git 倉庫。在GitHub打開剛才新建的倉庫公条,按照下圖依次點擊① ②完成復制拇囊。注意在SSH模式下復制(紅色箭頭)
-
在bash命令窗口輸入:
$ git remote add origin 粘貼剛才復制的內(nèi)容(不要Ctrl V,右鍵 → Paste粘貼)
這里面的
origin
就是遠程庫的意思靶橱,是Git默認的叫法寥袭,也可以改成別的。 -
把本地庫的內(nèi)容推送到遠程庫上
$ git push -u origin master
把本地庫的內(nèi)容推送到遠程关霸,用
git push
命令传黄,實際上是把當前分支master
推送到遠程。由于遠程庫是空的队寇,我們第一次推送
master
分支時膘掰,加上了-u
參數(shù),Git不但會把本地的master
分支內(nèi)容推送的遠程新的master
分支佳遣,還會把本地的master
分支和遠程的master
分支關聯(lián)起來识埋,在以后的推送或者拉取時就可以簡化命令,去掉-u
:$ git push origin master
這時候我們再打開GitHub苍日,會發(fā)現(xiàn)我們文件夾里的文件已經(jīng)上傳到遠程倉庫啦~(沒看到的就刷新一下頁面 )
四惭聂、日常與GitHub的基礎交互
想象這么一個場景,有一天相恃,你開始了一個新的項目辜纲。晚上準備關電腦休息,出于一個程序員的良好品質(zhì),你決定把項目隨手保存到GitHub耕腾。于是你在GitHub上建了一個倉庫见剩,復制了SSH,然后你在項目的根目錄下打開了 git bash
輸入:
$ git remote add origin 粘貼剛才復制的內(nèi)容(不要Ctrl V扫俺,右鍵 → Paste粘貼)
然后苍苞,你開始提交你的項目代碼
$ git add -A
$ git commit -m "lalala"
$ git push origin master
就這樣,你每天都在寫代碼狼纬,然后重復著 git add
羹呵、 git commit
、 git push
三連.....
很快疗琉,你的項目寫完了冈欢,你分享給你的朋友們看,他們在你的GitHub上復制了你的SSH盈简,然后建了個文件夾凑耻,打開了 git bash
,輸入:
$ git clone 粘貼剛才復制的內(nèi)容(不要Ctrl V柠贤,右鍵 → Paste粘貼)
這樣香浩,他們就拿到了的源碼。于是臼勉,又有一天邻吭,你的一個朋友發(fā)現(xiàn)你有個地方有個bug,但是你抽不開手坚俗,想讓他幫你改改镜盯。很快,他改好了猖败,但是直接把代碼發(fā)給你多l(xiāng)ow啊速缆,于是.....
于是就涉及到多人協(xié)作了,關于如何在GitHub上進行多人協(xié)作恩闻,我們在后面了解過分支艺糜、標簽的概念后,繼續(xù)了解~~
五幢尚、擴充一:Git支持的協(xié)議
大家會發(fā)現(xiàn)破停,在GitHub除了 SSH
以外,還給出了 HTTPS
的傳輸協(xié)議尉剩,但是我們經(jīng)常使用的是 SSH
地址真慢,這是為什么呢?
實際上理茎,Git支持多種協(xié)議黑界,默認的
git://
使用ssh管嬉,但也可以使用https
等其他協(xié)議。
通過
SSH
支持的原生git協(xié)議速度最快使用
https
除了速度慢以外朗鸠,還有個最大的麻煩是每次推送都必須輸入口令但是在某些只開放http端口的公司內(nèi)部蚯撩,就無法使用
ssh
協(xié)議而只能用https
。
六烛占、擴充二:關于SSH警告
當你第一次使用Git的clone
或者push
命令連接GitHub時胎挎,會得到一個警告:
The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
RSA key fingerprint is xx.xx.xx.xx.xx.
Are you sure you want to continue connecting (yes/no)?
這是因為Git使用SSH連接,而SSH連接在第一次驗證GitHub服務器的Key時忆家,需要你確認GitHub的Key的指紋信息是否真的來自GitHub的服務器犹菇,輸入yes
回車即可。
Git會輸出一個警告弦赖,告訴你已經(jīng)把GitHub的Key添加到本機的一個信任列表里了:
Warning: Permanently added 'github.com' (RSA) to the list of known hosts.
這個警告只會出現(xiàn)一次项栏,后面的操作就不會有任何警告了浦辨。
如果你實在擔心有人冒充GitHub服務器蹬竖,輸入yes
前可以對照GitHub的RSA Key的指紋信息是否與SSH連接給出的一致。
七流酬、擴充三:只提交某個文件的內(nèi)容
$ git status ./ 查看這個文件夾下的文件狀態(tài)币厕,會列出有哪些沒有加入追蹤,哪些沒有commit
$ git add ./* 把這個文件下的所有應該加入追蹤的芽腾,加入到暫存區(qū)
$ git commit -m "日志描述" ./ 把這個文件夾下可以commit的旦装,都commit到本地庫
$ git push push到遠程庫
參考資料:
廖雪峰-Git
git單獨只提交某個文件夾的簡便操作方法