IOS博客項目搭建-將項目推送到Github進行管理

微博項目使用github管理,將項目文件推送到github以方便管理,研究git

說明:按照如下的第1、九步驟便可推送到遠程倉庫。先在本地初始化創建git跟蹤目錄,而後推送到遠程代碼庫https://github.com/xxx/xxx.git便可。github

##1、建立一個本地代碼庫服務器

一、咱們首先須要告訴Git這個文件夾是咱們須要跟蹤的項目。因此咱們發送這個命令來初始化一個新的本地Git代碼庫,切換到本地項目目錄下(本地項目名爲ItcastWeibo-v10)併發

cd /Users/mac/Documents/學習區/IOS代碼/ItcastWeibo-v10

二、git init 初始化 Git會在ItcastWeibo-v10文件夾內建立一個名爲.git的隱藏文件夾,那就是你的本地代碼庫dom

git init

##2、加載(Stage)文件學習

咱們如今須要命令Git咱們須要加載(stage)全部項目文件。發送:code

git add .

最後的「.」符號的意思是「全部文件、文件夾和子文件夾」。假如咱們只想要把特定文件添加到源代碼控制中去,咱們能夠指定它們: git add my_file, my_other_file圖片

##3、提交文件開發

如今,咱們想要提交已加載(staged)的文件。閱讀「添加一個時間點,在這裏你的文件處在一個可還原的狀態」。咱們提交咱們的文件時,老是附帶着有意義的註釋,描述了它們如今的狀態。我一直用「initial commit」來做爲第一個提交的註釋。rem

git commit -m "initial commit"

就這樣。如今你隨時均可以回滾到這個提交狀態。若是你有須要檢查你如今的已加載(staged)和未加載(unstaged)文件的狀態、提交等,你能夠詢問git的狀態:

git status

##4、建立分支

創建分支是你建立代碼的獨立版本的動做,獨立於你的主幹分支。默認地,每次你提交到Git的文件都會被儲存到「master(主幹)」分支。 如今咱們來講說,你想要向項目裏添加一個功能,但你想要可以回滾到如今版本,以防出現差錯,或者你決定要放棄這個功能。這就是你建立分支的時候了。建立並同時切換到你新建的分支,發送:

git checkout -b new_feature

或者,你能夠先建立一個分支而後手動切換,就像這樣:

git branch new_featuregit checkout new_feature

要看你如今項目下全部的分支,發送這個:

git branch

如今你能夠在你的項目上無所顧忌地作任何你想作的:任什麼時候候,你均可以回到你建立分支前的狀態。注意,你同時能夠有多個分支,甚至能夠從一個分支上再建立一個分支。

##5、合併分支

當你對你的新功能滿意了的時候,你想要把它加到主幹分支上。當你在你的新功能分支上時,你首先須要加載(stage)而且提交你的文件:

git add .git commit -m "adds my new feature"

而後你移到你的主幹分支:

git checkout master

像這樣合併:

git merge new_feature

此時,你的主幹分支和你的新功能分支會變成同樣的了。

##6、丟棄分支

相反,若是你打算丟棄你在分支裏作的修改,你首先須要加載(stage)你的文件而且在分支裏提交:

git add .git commit -m "feature to be discarded"

而後,你移到主幹分支:

git checkout master

如今,你的代碼處於你建立分支以前的狀態了。

##7、刪除一個分支

若是你要把你的分支合併到主幹分支,從主幹(master)分支上發送:

git branch -d new_feature

假如修改已經合併了,它只會刪除分支。假如分支沒有合併,你會獲得一個錯誤信息。刪除一個未合併的分支(一般你不想保留的修改),你須要發送同樣的命令附帶一個大寫D。意思是「強制刪除分支,不管如何我不想要它了。」:

git branch -D new_feature

##8、回滾到以前的提交狀態

在某些時候,你可能想要回到以前的代碼版本。首先,你須要找到你想回到哪一個版本。要看全部的完成了的提交,發送:

git log

這會輸出你的提交的歷史記錄,像這樣:

commit ca82a6dff817ec66f44342007202690a93763949Author: your_username

your_email@domain.comDate: Mon Nov 4 12:52:11 2013 -0700 changes the frontpage layout commit 085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7Author: your_username your_email@domain.comDate: Mon Nov 4 11:40:33 2013 -0700 adds my new feature commit a11bef06a3f659402fe7563abf99ad00de2209e6Author: your_username your_email@domain.comDate: Mon Nov 4 10:37:28 2013 -0700 initial commit 若是你想回到「adds my new feature」這個提交,簡單地用提交的ID作簽出(checkout)(我一般只用到ID開頭的9個字符)

git checkout 085bb3bcb

你也能夠簽出到一個新的分支,像這樣:

git checkout -b my_previous_version 085bb3bcb

只是別太瘋狂了!你的分支越複雜,就越難肯定你真正在作什麼。

##9、推送到遠程代碼庫

**在第一次你想推送一個本地代碼庫到遠程代碼庫時,你須要把它添加到你的項目配置裏。**像這樣作:

git remote add origin https://your_username@bitbucket.org/your_username/name_of_remote_repository.git

注意這裏的「origin」只是一個習慣。它是你的遠程代碼庫的別名,可是你能夠用其餘任何你喜歡的詞。你甚至能夠有多個遠程代碼庫,你只須要給它們起不一樣的別名。 以後,你想要推送你的本地代碼庫的主幹分支到你的遠程代碼庫:

git push origin master

若是你使用Bitbucket,在這時,你會被請求輸入你的密碼。照作,你的本地代碼庫會被推送到你的遠程代碼庫上。

取得遠程代碼庫的一份本地拷貝

若是你尚未一份遠程代碼庫的本地版本(例如,若是你在另外一臺機器上開始工做,這臺機器上尚未用過這個項目),你首先須要拷貝(clone)它。去到你的代碼庫想要拷貝到的文件夾下,併發送: git clone https://your_username@bitbucket.org/your_username/name_of_remote_repository.git 另外一方面,若是你已經在本地的項目上工做了,只是想從遠程代碼庫上取得它最新的版本,移動到項目的根目錄下,併發送:

git pull origin master

tu

##10、別名

Git容許你爲你經常使用的命令建立快捷方式(別名)。例如,若是你不想每次都輸入git commit -m 「some comment」,而是輸入git c 「some comment」,你能夠向你的git全局配置裏添加一個別名來實現,像這樣:

git config --global alias.c 'commit -m'

這是我使用的別名列表: git config --global alias.c 'commit -m' git config --global alias.co 'checkout' git config --global alias.cob 'checkout -b' git config --global alias.br 'branch' git config --global alias.m 'merge' git config --global alias.a 'add .' git config --global alias.s 'status' git config --global alias.dbr 'branch -d'

咱們能夠在Xcode-》preference中添加我的倉庫repository,之後就能夠用Xcode來push更新的項目了,而不須要在客戶端使用命令來提交,大大提升了開發效率。 圖片

##11、處理服務器端和本地代碼衝突 如題,當咱們github中的代碼有改動時,這時若是本地的代碼須要推送到github倉庫時就會報錯,由於github倉庫中的版本比本地的新,因此這時須要先在本地pull倉庫中的代碼到本地,獲取到最新的版本以後,再推送到遠程倉庫中。 輸入圖片說明

git命令

MacdeMacBook-Pro-3:~ mac$ cd /Users/mac/Documents/學習區/IOS代碼/ItcastWeibo-v10
MacdeMacBook-Pro-3:ItcastWeibo-v10 mac$ git pull origin master
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 6 (delta 3), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (6/6), done.
From https://github.com/corwien/SinaWeibo
 * branch            master     -> FETCH_HEAD
   34ef98b..d408ada  master     -> origin/master
Merge made by the 'recursive' strategy.
 README.md | 2 ++
 1 file changed, 2 insertions(+)
MacdeMacBook-Pro-3:ItcastWeibo-v10 mac$

請看個人我的微博:Corwien我的博客

相關文章
相關標籤/搜索