http://blog.csdn.net/yyh352091626/article/details/50714880
提起GitHub大家并不陌生,GitHub也算為“開(kāi)源”做出突出的貢獻(xiàn)了~?Git這種良好支持分支管理的分布式的SCM真正解決了一個(gè)問(wèn)題問(wèn)題:每個(gè)工程師在自己本地分支上開(kāi)發(fā),完成功能以后往master分支合并。
關(guān)于Windows下GitHub的一些使用,隨處可見(jiàn)。本文著重介紹如何在Mac OSX下上傳本地的項(xiàng)目源代碼至GitHub。
首先當(dāng)然是安裝Git工具。
1、下載Git installer,地址:http://git-scm.com/downloads
2、pkg包下載完成,雙擊安裝。
3、打開(kāi)終端,使用git --version命令查看安裝版本,能查看到就是安裝成功了(eg:git version 2.5.4 (Apple Git-61))。
接下來(lái)就是創(chuàng)建SSH。打開(kāi)終端,輸入以下命令來(lái)查看.ssh是否存在:
[plain]view plaincopy
$?cd?~/.ssh
若提示“-bash: cd: ~/.ssh: No such file or directory” 那就說(shuō)明.ssh文件夾不存在,那么則進(jìn)行下一個(gè)步驟,否則就是將原來(lái)的.ssh文件夾備份以下,亦或是切換到其他路徑下建立ssh。輸入以下命令來(lái)創(chuàng)建ssh:
[plain]view plaincopy
$?ssh-keygen?-t?rsa?-C?xxx@xx.com
xxx@xx.com為你注冊(cè)GitHub時(shí)的郵箱賬號(hào),命令執(zhí)行成功后,會(huì)有以下提示
[plain]view plaincopy
Generating?public/private?rsa?key?pair.
Enter?file?in?which?to?save?the?key?(/Users/yuyuhang/.ssh/id_rsa):???????//?.ssh默認(rèn)路徑,不輸入則不修改
Enter?passphrase?(empty?for?no?passphrase):??????????????????????????????//?密碼長(zhǎng)度至少為4,否則失敗
Enter?same?passphrase?again:
Your?identification?has?been?saved?in?/Users/yuyuhang/.ssh/id_rsa.
Your?public?key?has?been?saved?in?/Users/yuyuhang/.ssh/id_rsa.pub.
The?key?fingerprint?is:
8d:d3:5f:31:ae:13:48:f0:78:df:a1:8f:a5:a4:c0:06?352091626@qq.com
The?key's?randomart?image?is:
+--[?RSA?2048]----+
|????????.????????|
|?????????+???????|
|??????E?.?+???+??|
|???????o?*?o?+?+?|
|????????S?+?=?=??|
|???????.?o?+?O???|
|??????????.?*?.??|
|?????????????.???|
|?????????????????|
+-----------------+
接下來(lái)就是在GitHub上創(chuàng)建SSH。首先登陸你的GitHub,右上角用戶(hù)頭像下選擇Settings,在SSH Keys 選項(xiàng)里面添加ssh,如下所示。
Title:xxx@xx.com
Key:打開(kāi)你生成的id_rsa.pub文件(/User/yourname/.ssh/is_rsa.pub),將其中內(nèi)容拷貝過(guò)來(lái)。
值得一提的是,在Mac OSX下,隱藏文件默認(rèn)是不顯示的,可以通過(guò)以下命令來(lái) 顯示/隱藏 隱藏文件夾,當(dāng)然,熟悉Linux命令行操作的人,可以直接用vim命令打開(kāi),或者cat直接顯示。
[plain]view plaincopy
顯示Mac隱藏文件的命令:defaults?write?com.apple.finder?AppleShowAllFiles?YES
隱藏Mac隱藏文件的命令:defaults?write?com.apple.finder?AppleShowAllFiles?NO
然后在GitHub上創(chuàng)建版本庫(kù)(Repository),在GitHub首頁(yè)上,點(diǎn)擊“Create a New Repository”,如下所示(為了便于后面演示,創(chuàng)建README.md這步暫不勾選):
創(chuàng)建完成后跳轉(zhuǎn)到代碼倉(cāng)庫(kù)界面,如下:
當(dāng)然了,在沒(méi)有上傳代碼之前,列表是空的。
緊接著按照以下步驟進(jìn)行本地倉(cāng)庫(kù)的創(chuàng)建及代碼上傳。打開(kāi)終端,輸入以下命令:
[plain]view plaincopy
$?touch?README.md?????????????????????????????????????????//新建一個(gè)README文檔,若上一步勾選了創(chuàng)建README.md,提交時(shí)導(dǎo)致沖突
$?git?init????????????????????????????????????????????????//初始化本地倉(cāng)庫(kù)
$?git?add?README.md???????????????????????????????????????//添加剛剛創(chuàng)建的README文檔
$?git?commit?-m?"你的注釋...."?????????????????????????????//提交到本地倉(cāng)庫(kù),并寫(xiě)一些注釋
$?git?remote?add?origin?git@github.com:yourname/xxxx.git??//連接遠(yuǎn)程倉(cāng)庫(kù)并建了一個(gè)名叫:origin的別名,當(dāng)然可以為其他名字,但是origin一看就知道是別名,youname記得替換成你的用戶(hù)名
$?git?push?-u?origin?master??????????????????????????????//將本地倉(cāng)庫(kù)的文件提交到別名為origin的地址的master分支下,-u為第一次提交,需要?jiǎng)?chuàng)建master分支,下次就不需要了
初始化完成之后,我們可以把我們項(xiàng)目的源代碼提交上去,使用git add命令,如下:
[plain]view plaincopy
$?git?add?系統(tǒng)簽名/??????????????????????????????????????//?添加需要提交的文件夾,使用git?add?.??則添加全部
$?git?add?assets/
$?git?add?project.properties
$?git?add?res/
$?git?add?src/
$?git?commit?-m?"上傳項(xiàng)目源代碼"?????????????????????????//?提交到本地倉(cāng)庫(kù)
$?git?push?origin?master???????????????????????????????//?將本地倉(cāng)庫(kù)合并到別名為origin地址的master分支下
顯示結(jié)果如下,則代碼上傳成功。
[plain]view plaincopy
Counting?objects:?63,?done.
Delta?compression?using?up?to?8?threads.
Compressing?objects:?100%?(53/53),?done.
Writing?objects:?100%?(63/63),?1.41?MiB?|?217.00?KiB/s,?done.
Total?63?(delta?16),?reused?0?(delta?0)
To?git@github.com:smuyyh/autoinstall.git
000a667..61357d8??master?->?master
刷新一下GitHub,則顯示剛剛提交的項(xiàng)目源代碼。
相關(guān)總結(jié)
1、要關(guān)聯(lián)一個(gè)遠(yuǎn)程庫(kù),使用命令git remote add origin git@server-name:path/repo-name.git;關(guān)聯(lián)后,使用命令git push -u origin master第一次推送master分支的所有內(nèi)容;此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
2、切記上傳文件時(shí),一定要先commit到本地倉(cāng)庫(kù),才能進(jìn)行push提交,否則會(huì)顯示Everything up-to-date(意思就是目前的遠(yuǎn)程倉(cāng)庫(kù)的內(nèi)容跟本地倉(cāng)庫(kù)對(duì)比后,沒(méi)有做修改,是最新的);
3、初用Mac的童鞋可能還不知道終端在哪里,點(diǎn)擊Finder旁邊的Launchpad,在“其他”文件夾下。
4、在設(shè)置別名的時(shí)候,出現(xiàn)“fatal: remote origin already exists.”錯(cuò)誤,說(shuō)明該別名已經(jīng)存在,可以另外建一個(gè)別名,或者使用“git remote rm origin”命令刪除原來(lái)的別名,然后重新執(zhí)行“git remote add origin git@github.com:yourname/xxxx.git”;
5、在提交的時(shí)候,出現(xiàn)“error: failed to push some refs to 'git@github.com:xxx/xxx.git' hint: Updates were rejected because the remote contains work that you do not have locally....”的錯(cuò)誤,說(shuō)明有沖突,遠(yuǎn)程倉(cāng)庫(kù)的版本比本地倉(cāng)庫(kù)的要信,所以要先進(jìn)行更新,才能提交。使用“git pull git@github.com:xxx/xxx.git”命令進(jìn)行更新,地址自己相應(yīng)替換掉。