之前一直使用的是svn,以下圖:html
附個下載連接:連接: https://pan.baidu.com/s/1nv6z5XJ 密碼: pwqe;不太熟悉的小夥伴能夠參考我寫的一篇本地搭建svn服務器的博客,上面的步驟親測無誤的!ios
最近的一個項目須要要求使用git進行管理,由於公司的ios目前就我一我的,因此正好順便學習了下,中間踩了很多坑,如今總結出來,但願能與人方便。git
在這裏我所要說的有2中方法,歷時1.5天,參考了文頂頂和其餘簡書大神的博客,親自操做,在篇尾會附上各位大神的參考博客:github
一 、使用x-code和終端配合的方法,原諒我,對常用的終端命令還能夠,其餘的真的不熟悉呀,也興趣的朋友能夠參考我本身收藏的一篇博客,上面有終端的詳細操做;好了,話很少說直接上步驟:算法
一、 先註冊一個GIthub的帳號swift
傳送門服務器
二、 Github說白了就是個倉庫,不過人家開源了,全球的人均可以避免費試用Git版本管理工具,也是全球最大的第三方開源庫的集散地,有句老話:咱們不生產代碼,咱們只是Github的搬運工,,說的就是這種「情懷」網絡
三、咱們知道Github上不是隨便都能傳代碼上去的,而是經過一種網絡協議--SSH來受權的,那麼這個SSH就是個什麼鬼:SSH是一種網絡協議,用於計算機之間的加密登陸。目前是每一臺 Linux 電腦的標準配置。而大多數 Git 服務器都會選擇使用 SSH 公鑰來進行受權,因此想要在 GitHub 提交代碼的第一步就是要先添加 SSH key 配置,框架
四、配置SSHssh
a、打開終端,直接輸入命令 ssh 查看 (Mac通常都是默認安裝了ssh的),以下圖:
b、輸入命令 ssh-keygen -t rsa ,指定rsa算法生成密鑰,接着連續三次回車鍵(不須要輸入密碼),而後就會生成兩個文件 id_rsa 和 id_rsa.pub ,而 id_rsa 是密鑰,id_rsa.pub 是公鑰,這兩個文件默認是在 ~/.ssh下生成的,可在Finder中前往:以下圖
點擊前往,進入以下界面:
c、接着添加ssh,咱們先回到Github上,按照下面的截圖便可:
點擊a,再點擊b,選擇 SSH and GPG keys 選項,會看到以下界面:(這是我上傳成功後的樣式)
未上傳Key以前的頁面以下圖:
注:Title 這個東西我也沒弄明白,寫與不寫都行,反正都能成功,我填寫的是本身註冊Github時的帳號(我用的是QQ郵箱)
Key 這個纔是重點:生成Key哩所須要的東西:
1)在終端繼續輸入命令 cd ~/.ssh (先輸入這個),cat id_rsa.pub (再輸入這個),以下圖:
而後再講終端輸輸出的信息(紅框中的信息)複製到Key中,最後直接點擊 Add SSH key 便可完成SSH配置,這樣設備就有權向Github上傳代碼了。
這裏的話,key剛上傳的進去的時候,以下圖,紅框裏面的要是是黑色的,而後我上傳代碼成功後,就變成綠色了,可能有延遲!
如今,我們再打開終端,驗證一下是否添加ssh成功了,輸入命令: ssh -T git@github.com
若是輸出successfully,則表示成功,這個比較簡單,只要命令不輸錯,通常一次就成功了!
五、在Github上建立倉庫,按照下面的步驟走便可:
注:
上圖中使用紅色線條框起來的地方是須要注意的,在建立倉庫的時候須要對該倉庫進行簡單的配置,如倉庫名稱等等的。
其中repositories name處須要填寫的是倉庫的名稱。
Description(optional) 處填寫對該倉庫的簡單描述,就是介紹下倉庫的功能,可寫可不寫。
接下來的兩個選項(Public|private)表示你建立的倉庫是公開的仍是私有的,有什麼區別呢,免費的就是全部人均可以無條件訪問,私有的就是有償訪問了,這裏選擇public便可
Initialize this repository with a README 表示在初始化倉庫的時候,是否生成一個readMe文件。咱們在查看別人框架的時候,在框架主頁上會有對該框架版本信息,做用使用方法等等的介紹,這個文件就是readMe文件,在這裏選擇勾上。
Add .gitignore按鈕,點擊以後會出現一個下拉框,問你是否要設置倉庫的忽略文件。這個看你本身的須要,一般若是你的倉庫和代碼項目有關係,那麼最好選擇相應的忽略文件(如OC項目能夠選擇Object-C,swift項目能夠選擇Swift),至於爲何請參考GIT的基本使用。
說實話,我試了選擇和不選擇,沒有什麼影響,因此我也就沒怎麼理會!知道爲何的朋友,還望不吝賜教!
Add a license按鈕,點擊以後會出現一個下拉框,須要你選擇一種開源協議,開源協議有不少種用的比較多的有MIT的或者是Apache的,不一樣的開源協議對項目的使用方式等有不一樣的規定,詳情能夠參考Choose an open source license。
說實話,我也試了選擇和不選擇,也沒有什麼影響,因此我也沒有理會,原諒我不求甚解吧,英文看着很費勁的,補充一句:知道爲何的朋友,還望不吝賜教!
上面的信息都設置好以後,接下來只須要輕輕點擊Create respository按鈕便可建立一個空的倉庫。進入下圖:
這裏先簡單介紹下這個倉庫的頁面信息。
其中第1塊區域是該倉庫的名稱,你建立倉庫後別人能夠經過搜索倉庫名的方式找到該倉庫。
第2塊區域是和倉庫相關的一些信息,好比Code選項列出倉庫的內容(文件),ISSues選項會列出其餘人對該倉庫的疑問,Pull Request選項提供其餘開發者在對該倉庫進行維護時請求合併的入口,Setting選項列出對該倉庫能夠進行的一些操做如刪除等等。
第3塊區域列出該倉庫的提交次數、tag版本等等。
第4塊區域列出該倉庫的內容,當前倉庫中只有三個文件,分別是.gitignore忽略文件,LICENSE開源協議以及初始化生成的ReadMe文件。在該區域右上角有一個clone or download按鈕,點擊Download Zip按鈕便可把該倉庫下載到本地。
第5塊區域展現ReadMe.md文件的內容。
第6塊區域列出有多少人關注該倉庫,倉庫的受歡迎程度,以及被fork的次數等。咱們看一個框架是否受歡迎能夠經過查看該倉庫Star的個數以及被fork的次數。
上面是對github自動生成空白倉庫進行的簡單介紹,有了這個空白的倉庫以後咱們才能夠進行後面的操做。
六、開始導入的操做,先建立個本地庫:(這裏有兩種方式:a 結合X-code操做;b 結合終端操做)
a、首先建立個新項目,隨便建立個就行,選擇箭頭指的位置:
進入以下界面:
1 Address指的是你再Github上面所建立倉庫的地址,以下圖:
2 Type:表示使用的版本管理方式能夠選擇GIT和SVN,在這裏只能選擇Git(由於GIThub只支持git的方式來管理)
3 Authentication:表示認證的方式即驗證身份的,Github提供兩種驗證方式,HTTPS和SSH,咱們當前選擇的是HTTPS的方式,因此此處選擇User Name and Password.
4 User Name 和passWord兩處填入github網站登陸的用戶名和密碼便可。
配置完成以後,點擊add按鈕,出現下面的窗口,則說明鏈接倉庫成功。
接下來,打開x-code,以下圖箭頭指示操做:
check out的位置能夠自定義,默認是在Document裏面,我就是直接默認的地址,以下圖:
至此,準備工做所有作完!
七、到這個步驟也是最重要的,上傳代碼,簡單理解就是說遠程關聯本地倉庫,本地倉庫放入源代碼,而後add,最後push到Github上,大致上就這個流程,具體操做以下:
a、cd到目標文件夾,就是剛纔check out的文件夾,以下圖:
b、而後我把要上傳的項目,直接拖到目標文件夾下,輸入 ls -la ,以下圖:
c、如上圖紅框裏面的所示,可是該文件默認並不會被Git版本庫管理,(可使用git status命令查看),須要使用add 命令先把指定的文件添加到git的暫緩區,而後再提交到git的版本庫,以下圖所示:
此時進行add操做,add事後,上圖紅框中的文件會變成綠色,以下圖:
提交到本地倉庫,添加一些註釋:
最後,git push 一下,提交到Github服務器,如出現下圖所示,則表示成功:
此時刷新你的Github主頁,你會發現,剛剛上傳的項目源代碼:
到這,就結束了!
八、修改文件,並把修改操做提交到遠程倉庫。
我如今在Test項目裏面給vc添加了一個背景顏色,須要從新提交,而後把修改提交到git暫緩區,提交到本地的git版本庫以後,再推送到遠程的倉庫。操做步驟以下,照着步驟走就能夠:
繼續:
git add .命令表示添加多個文件;
最後,是添加描述和推送的操做,以下圖:
最後,再來個Github主頁展現的:
命令說明:
$ ls -l 以列表的方式顯示當前目錄下面的文件(NewFile文件爲剛剛建立的)
$ git status 查看git倉庫文件狀態 (新文件狀態爲紅色,表示未被git管理)
$ git add 新文件 把新文件添加到git的暫緩區中(若是須要一次性提交多個文件,那麼可使用git add .命令)
$ git status 從新查看狀態(此時新文件狀態爲綠色,表示更改已經提交到了暫緩區)
$ git commit -m "建立了新文件" 新文件 表示把暫緩區中新文件文件對應的更改提交到本地的git版本庫(若是要一次性提交全部的更改,那麼能夠直接把具體的文件省略便可)
$ git push 推送到遠程倉庫的操做
九、其餘操做(tag標記)
若是你的項目已經完成了階段性開發,那麼能夠肯定爲一個新的版本,好比說發佈爲正式的1.0版本,然後續可能接着發佈1.1.0或者是2.0版本等等,那麼使用github託管的項目如何肯定爲一個新的版本呢?或者是如何進行tag標記。
若是沒有發佈新版本,那麼release出顯示爲0,以下圖:
假設當前的項目已經完成了階段性的開發,須要正式肯定爲Test1.0版本,那麼應該如何處理?以下圖所示:
上面的命令行~
(1)先使用git tag指令查看當前被打上tag標籤的版本,最開始的時候無
(2)而後把當前的倉庫打上tag標籤,爲Test1.0版本,並添加註釋
(3)再使用git tag指令查看,便可以發現有Test1.0版本
肯定了新版本以後,還須要把標籤推送到遠程服務器,命令行爲git push origin 標籤名,具體操做以下圖所示:
如出現上圖所示,則表示設置版本成功;
最後來張主頁的圖,以下:
點擊release,進去看到以下界面:
相關總結
一、要關聯一個遠程庫,使用命令git remote add origin git@server-name:path/repo-name.git;關聯後,使用命令git push -u origin master第一次推送master分支的全部內容;此後,每次本地提交後,只要有必要,就可使用命令git push origin master推送最新修改;
二、切記上傳文件時,必定要先commit到本地倉庫,才能進行push提交,不然會顯示Everything up-to-date(意思就是目前的遠程倉庫的內容跟本地倉庫對比後,沒有作修改,是最新的);
三、初用Mac的童鞋可能還不知道終端在哪裏,點擊Finder旁邊的Launchpad,在「其餘」文件夾下。
四、在設置別名的時候,出現「fatal: remote origin already exists.」錯誤,說明該別名已經存在,能夠另外建一個別名,或者使用「git remote rm origin」命令刪除原來的別名,而後從新執行「git remote add origin git@github.com:yourname/xxxx.git」;
五、在提交的時候,出現「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....」的錯誤,說明有衝突,遠程倉庫的版本比本地倉庫的要信,因此要先進行更新,才能提交。使用「git pull git@github.com:xxx/xxx.git」命令進行更新,地址本身相應替換掉。
這是相關問題的一些總結!親測有效,但願能幫到你們!
參考資料:頂頂大神http://www.cnblogs.com/wendingding/p/5584310.html
http://blog.csdn.net/yyh352091626/article/details/50714880
http://www.jianshu.com/p/5d2374ee0242
git操做大全: https://git-scm.com/book/zh/v2
參考着大神們寫的博客,一步一步本身嘗試着,知道本身成功了幾回,再花了幾個小時的時間,把這些經驗記錄下來,方便本身,也但願能方便到他人!寫的過程當中,確實遇到不少的坑,不過好在最後都解決了!