一、準備工作
工欲善其事必先利器拭卿,首先你得完成如下兩個工作:
1杖狼、下載安裝git客戶端 http://www.pc6.com/mac/133797.html
2、注冊github賬號 https://github.com/join?source=header-home
二颈畸、ssh配置
1、創(chuàng)建ssh
打開終端(不知道終端在哪兒的没讲,就直接在spotlight里搜terminal):
$cd ~/.ssh //檢查是否已經(jīng)存在ssh
如果存在眯娱,先將已有的ssh備份,或者將新建的ssh生成到另外的目錄下
如果不存在爬凑,通過默認的參數(shù)直接生成ssh
$ssh-keygen -t rsa -C xxxxx@gmail.com(注冊github時的email)
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/twer/.ssh/id_rsa):
Created directory '/Users/twer/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/twer/.ssh/id_rsa.
Your public key has been saved in /Users/twer/.ssh/id_rsa.pub.
The key fingerprint is:
18:16:11:c9:01:6c:48:09:7f:27:c6:43:0d:7f:3f:84 xxxxx@gmail.com
The key's randomart image is:
+--[ RSA 2048]----+
|.o.++=== |
|.ooo.+. . |
| ..* = E . |
| o = + o |
| . S o |
| . |
| |
| |
| |
+-----------------+
如果要修改ssh生成目錄徙缴,在(/Users/twer/.ssh/id_rsa)處輸入要生成的路徑,選擇默認的話嘁信,會生成在 ~/.ssh下
2于样、在github中添加ssh(如圖示)
登陸github,選擇Account Settings-->SSH Keys
添加ssh
Title:xxxxx@gmail.com
Key:打開你生成的id_rsa.pub
文件潘靖,將其中內(nèi)容拷貝至此穿剖。
打開終端,先測試一下你的帳號跟github連上沒有:ssh -T git@github.com
如果出現(xiàn)如下提示卦溢,表示你連已經(jīng)連上了.(因為有了第一步糊余,所以不用自己做過多的連接github的操作了,另外单寂,下一次要連接github的時候記得打開第一步的工具).
Hi MiracleHe! You've successfully authenticated, but GitHub does not provide shell access.
三贬芥、上傳代碼
1、在github下建自己的Repository凄贩。Create a New Repository
如下:
Repository name:
通常就寫自己自己要建的工程名誓军。
Description:
就是你對工程的描述了袱讹。
選擇Public
疲扎。
點擊“Create repository”
,出現(xiàn)如下圖:
按照上面的步驟來就行了(注意記得在終端中輸入時把目錄切換到你要上傳的工程目錄下)。簡單分析下上面的步驟:
touch README.md
//新建一個記錄提交操作的文檔
git init
//初始化本地倉庫
git add README.md
//添加
git commit -m "first commit"
//提交到要地倉庫捷雕,并寫一些注釋
git remote add origin git@github.com:youname/Test.git
//連接遠程倉庫并建了一個名叫:origin
的別名
git push -u origin master
//將本地倉庫的東西提交到地址是origin的地址椒丧,master分支下
這樣你的倉庫就創(chuàng)建好了,然后你可以把倉庫clone到本地救巷,在該目錄下創(chuàng)建工程壶熏,然后通過github客戶端進行同步就好啦。
四浦译、注意(拷貝ssh時)
進行如下操作時:
Key:打開你生成的id_rsa.pub文件棒假,將其中內(nèi)容拷貝至此
這里的id_rsa.pub
文件是在.ssh目錄下溯职,可能有小伙伴會發(fā)現(xiàn)自己的mac下沒看見.ssh目錄,難道是我忽悠大家啦帽哑?當然不會啦谜酒,這么敗人品的事我怎么可能會做。沒看見.ssh目錄妻枕,是因為mac把這個目錄給隱藏了僻族,如果你不信,你可以進行如下操作把隱藏文件給顯示出來屡谐。
顯示Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles YES
隱藏Mac隱藏文件的命令:defaults write com.apple.finder AppleShowAllFiles NO
輸完單擊Enter鍵述么,退出終端,重新啟動Finder就可以了
其實雖然你可能看不到.ssh目錄愕掏,但你還是可以通過終端命令來查看到.ssh目錄的,操作如下:
通過cat id_rsa.pub
查看里面是一大串云里霧里的東西度秘,不需要看懂,復制到“key”里就行了饵撑。
五敷钾、疑難問題分析和解決
(一)、如果輸入$ git remote add origin git@github.com:djqiang(github帳號名)/gitdemo(項目名).git
提示出錯信息:fatal: remote origin already exists.
解決辦法如下:
1肄梨、先輸入$ git remote rm origin
2阻荒、再輸入$ git remote add origin git@github.com:djqiang/gitdemo.git
就不會報錯了!
3众羡、如果輸入$ git remote rm origin
還是報錯的話侨赡,error: Could not remove config section 'remote.origin'
. 我們需要修改gitconfig
文件的內(nèi)容
4、找到你的github
的安裝路徑粱侣,我的是C:\\Users\\ASUS\\AppData\\Local\\GitHub\\PortableGit_ca477551eeb4aea0e4ae9fcd3358bd96720bb5c8\\etc
5羊壹、找到一個名為gitconfig
的文件,打開它把里面的[remote "origin"]
那一行刪掉就好了齐婴!
(二)油猫、如果輸入$ ssh -T git@github.com
出現(xiàn)錯誤提示:Permission denied (publickey)
.因為新生成的key不能加入ssh就會導致連接不上github。
解決辦法如下:
1柠偶、先輸入$ ssh-agent
情妖,再輸入$ ssh-add ~/.ssh/id_key
,這樣就可以了诱担。
2毡证、如果還是不行的話,輸入ssh-add ~/.ssh/id_key
命令后出現(xiàn)報錯Could not open a connection to your authentication agent
.解決方法是key用Git Gui
的ssh工具生成蔫仙,這樣生成的時候key就直接保存在ssh中了料睛,不需要再ssh-add
命令加入了,其它的user,token等配置都用命令行來做恤煞。
3屎勘、最好檢查一下在你復制id_rsa.pub文件的內(nèi)容時有沒有產(chǎn)生多余的空格或空行,有些編輯器會幫你添加這些的居扒。
(三)挑秉、如果輸入$ git push origin master
提示出錯信息:error:failed to push som refs to .......
解決辦法如下:
1、先輸入$ git pull origin master
//先把遠程服務器github上面的文件拉下來
2苔货、再輸入$ git push origin master
3犀概、如果出現(xiàn)報錯 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:djqiang/gitdemo.git
六夜惭、使用git在本地創(chuàng)建一個項目的過程
$ makdir ~/hello-world //創(chuàng)建一個項目hello-world
$ cd ~/hello-world //打開這個項目
$ git init //初始化
$ touch README
$ git add README //更新README文件
$ git commit -m 'first commit' //提交更新姻灶,并注釋信息“first commit”
$ git remote add origin git@github.com:defnngj/hello-world.git //連接遠程github項目
$ git push -u origin master //將本地項目更新到github項目上去
//刪除文件夾下的所有 .svn 文件
find . -name ".svn" | xargs rm -Rf
//刪除文件夾下的所有 .git 文件
find . -name ".git" | xargs rm -Rf
遇到的問題及解決方法:
Git Commit failed - exit code 1 received
原因是曾在這個文件夾上建過倉庫,沒有刪除本地的配置文件诈茧。
刪除
.git
文件夾即可