終端操作GitHub代碼以及代碼的版本控制(develop/master)多圖勿點(diǎn)

一.git版本控制原理####

master(主分支), develop(分支),雖然是主分支和分支崖堤,卻是平級關(guān)系,develop可以理解為開發(fā)庫,master為生產(chǎn)庫暑脆。

本地版本:master, develop
**GitHub上: master, develop **

1.gitHub上master版本拉取代碼到本地master维咸。
2.本地創(chuàng)建develop(分支)剂买,在分支里開發(fā)惠爽。
3.修改本地開發(fā)代碼后提交,提交到本地master(主分支)瞬哼。
4.本地代碼提交到GitHub上的Develop分支婚肆。
5.要出新版本或測試沒什么問題后才提交到GitHub的master(主分支)。

注意:多人開發(fā)的情況下坐慰,都提交代碼到gitHub的develop(分支)较性,從gitHub的develop(分支)拉去代碼到本地的develop(分支),再進(jìn)行開發(fā)和代碼合并结胀,所有都沒問題的時(shí)候才合并的gitHub的master(主分支)赞咙,生成版本。

以上都是個(gè)人理解糟港,如有異議攀操,歡迎討論學(xué)習(xí)
郵箱:jiang_yongchang@126.com

二.gitHub上創(chuàng)建項(xiàng)目####

Screen Shot 2016-06-20 at 5.04.38 PM.png

獲取到項(xiàng)目地址:


三.上傳本地代碼到GitHub####

提供兩種方法:
1.方法一:
在Mac的終端上cd到上傳代碼的.git目錄(要上傳的代碼必須有.git隱藏文件,Xcode創(chuàng)建工程的時(shí)候勾選的秸抚,默認(rèn)就創(chuàng)建)

Screen Shot 2016-06-20 at 5.38.44 PM.png

上傳代碼如下:

git init
git add .  // add后 空格 加 點(diǎn)
git commit -m "first commit"
git remote add origin https://github.com/jiangyongchang126/hah.git
git push -u origin master

2.方法二:(推薦使用方法速和,下面也是按照這個(gè)方法)

①.在終端上cd到要存放的本地代碼目錄,
例如:cd /Users/jiangyongchang/work

Screen Shot 2016-06-20 at 5.46.56 PM.png

②. 克隆GitHub的代碼到本地

git clone https://github.com/jiangyongchang126/MD5_RSA_AES_BASE64.git
Screen Shot 2016-06-20 at 5.51.59 PM.png

現(xiàn)在在本地的/Users/jiangyongchang/work下已經(jīng)有了MD5_RSA_AES_BASE64目錄耸别,打開目錄看到:


Screen Shot 2016-06-20 at 5.55.04 PM.png

README.md就是項(xiàng)目簡介健芭,GitHub上創(chuàng)建了才有
.gitignore 是上傳git的忽略文件,比如cocopods導(dǎo)入的類庫不上傳等...
.git文件是鏈接本地和GitHub的橋梁秀姐,不能覆蓋(下面會用到)

把要上傳的代碼copy到MD5_RSA_AES_BASE64下茎芭,.git 文件不用拷貝,.DS_Store文件也不能capy

Screen Shot 2016-06-20 at 6.06.29 PM.png

③.把添加代碼后的工程提交代GitHub master(本地master到GitHub master)

終端cd到本地庫.git隱藏文件目錄

git branch      // 看到分支情況定躏,默認(rèn)是只有master
git status       // 看當(dāng)前分支的狀態(tài)
git add --all    // 初始化時(shí)添加全部贯涎,平常提交代碼是 git add+提交的文 件名 例如提交podfile文件:git add podfile
git commit -m 'first'  //添加成功后提交   first是提交的注釋
git push origin master:master   // 提交本地代碼到GitHub,origin相當(dāng)于網(wǎng)路蠢沿,master:master就是本地master推到GitHub master
例如://  git push origin master:develop  // 把本地master推到遠(yuǎn)程develop

** 看到分支情況伸头,默認(rèn)是只有master**


Screen Shot 2016-06-20 at 6.19.36 PM.png

** 當(dāng)前分支狀態(tài),紅色文件為需要add的文件**


Screen Shot 2016-06-20 at 6.20.22 PM.png

** add 后再看那些文件狀態(tài)變綠色**


Screen Shot 2016-06-20 at 6.20.43 PM.png

** 提交**


Screen Shot 2016-06-20 at 6.20.56 PM.png

提交代碼到GitHub master

Screen Shot 2016-06-20 at 6.21.10 PM.png

此時(shí)舷蟀,刷新GitHub恤磷,代碼已上傳

四.develop master版本控制####

下面展開版本控制:終端的路徑一致不變.git目錄

版本控制時(shí),可以邊操作邊打開GitHub的客戶端對比野宜,當(dāng)創(chuàng)建分支develop時(shí)扫步,客戶端上就會多一個(gè)分支develop(還沒合并所有事空的),當(dāng)把master的代碼合并到develop時(shí)匈子,客戶端上的develop分支才有代碼河胎! 參照學(xué)習(xí)更加明顯,在終端里面有時(shí)候顯示的不明確虎敦。

Screen Shot 2016-06-20 at 6.52.16 PM.png

1.創(chuàng)建本地分支develop

git branch develop

現(xiàn)在 git branch一下發(fā)現(xiàn)有兩個(gè)多了一個(gè)develop分支游岳,且當(dāng)前分支為master

Screen Shot 2016-06-20 at 6.41.27 PM.png
Screen Shot 2016-06-20 at 6.52.36 PM.png

2.把本地master的代碼merge(合并)到develop

git checkout develop    // 切換當(dāng)前分支為develop
git merge master        // 把master分支的代碼合并到當(dāng)前分支(develop)
Screen Shot 2016-06-20 at 6.45.02 PM.png

致此政敢,代碼以合并到了develop,并且當(dāng)前分支為develop

3.merge(合并)代碼到GitHUP develop(分支)

git push origin master:develop   // GitHub上并沒有develop分支胚迫,執(zhí)行這句命令后會自動創(chuàng)建一個(gè)GitHub develop分支
Screen Shot 2016-06-20 at 6.58.08 PM.png

相應(yīng)的GitHub上也出現(xiàn)了develop分支

Screen Shot 2016-06-20 at 6.58.35 PM.png

4.到此喷户,本地develop、master和GitHub上develop晌区、master都一致啦摩骨!
重點(diǎn)來啦,怎么使用剛剛創(chuàng)建好的那些個(gè)develop朗若、master恼五?再創(chuàng)建一個(gè)本地分支develop1來模擬多人開發(fā)情況,本地的develope分支和develop1分支分別修改代碼,然后提交到GitHub的develop分支哭懈,提交灾馒、拉去、沖突就能模擬多人開發(fā)環(huán)境了:

①.開發(fā)就用本地develop分支:查看分支狀態(tài)遣总,如果在master就切換當(dāng)前分支到develop睬罗,

git checkout develop

打開Xcode寫代碼,之后把代碼提交到本地develop旭斥,

git branch
git status
git add podfile MD5/EncryptionMD5.m MD5.xcodeproj/project.pbxproj
git commit -m '修改了podfile,viewcontrller'

Screen Shot 2016-06-20 at 8.05.14 PM.png

在develop分支下寫的代碼就會改變容达,而master和develop1中的不變,切換不同的分支,然后重新打開Xcode后發(fā)現(xiàn)確實(shí)如此垂券! GitHub Desktop軟件上也一致花盐。

②.本地develop分支代碼推到GitHub的develop分支。

// 應(yīng)該先拉取 然后再推上去菇爪,
 git pull origin develop:develop   // 拉取到本地develop并合并算芯,如果有沖突這個(gè)方法就不能用了,被拒絕拉鹊手妗(下面的develop1分支會介紹另一種拉取方式)
 git push origin develop:develop  // 第一個(gè)develop是本地的熙揍,第二個(gè)是GitHub上的

看下GitHub上的master和develop確實(shí)有變動

Screen Shot 2016-06-20 at 8.12.27 PM.png
Screen Shot 2016-06-20 at 8.11.46 PM.png

③.OK,切換到develop1分支然后修改代碼氏涩,拉取届囚,提交

git checkout develop1
git branch
git status
git add podfile
git commit -m '修改了podfile,添加了AFNetWorking'

Screen Shot 2016-06-20 at 8.23.09 PM.png

現(xiàn)在GitHub上develop分支的podfile文件是 pod 'SDWebImage',但是本地develop1分支的podfile文件是 pod 'AFNetWorking',會產(chǎn)生沖突是尖。

先拉取GitHub的develop分支到本地develop1奖亚,合并后再提交本地develop1到GitHub的develop分支。

git pull origin develop:develop1
Screen Shot 2016-06-20 at 8.29.03 PM.png

rejected 被拒絕了析砸,因?yàn)橛袥_突。

現(xiàn)在換一種方法:

git fetch origin develop   //更新GitHub的develop分支到當(dāng)前本地分支(develop1)
git log -p develop1..origin/develop // 比較本地分支(develop1)和GitHub的develop分支的差別
git merge origin/develop   // 合并沖突爆袍。
git status   // 查看develop1分支的狀態(tài)
vim podfile  // 打開podfile文件 
git add pod file
git commit -m '解決沖突'
git push origin develop1:develop  // 將本地develop1合并到GitHub的develop

Screen Shot 2016-06-20 at 8.41.16 PM.png

podfile 文件有沖突

Screen Shot 2016-06-20 at 8.39.55 PM.png

④.切換本地分支到develop

git checkout develop
git pull origin develop:develop   // 更新本地develop分支的代碼首繁,如果遇到?jīng)_突作郭,解決方法參考③里面的。

目前來說弦疮,本地的develop夹攒、develop1和GitHub的develop分支保持一致啦,假設(shè)測試庫的代碼都已經(jīng)測試通過了胁塞,要發(fā)版本咏尝!

⑤.合并代碼到本地主master,合并代碼到GitHub的master主分支

git checkout master   // 切換到本地master主分支
git merge develop     // 合并本地develop分支到本地master主分支啸罢。
git push origin master:master     // 合并本地master主分支到GitHub的master主分支编检。
 

⑥.發(fā)布版本。

五.參考的文章####

$ git pull
$ git push
$ git fetch
$ fetch與push的區(qū)別

加密的demo集成了MD5扰才、RSA允懂、AES、Base64:MD5_RSA_AES_BASE64下載

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末衩匣,一起剝皮案震驚了整個(gè)濱河市蕾总,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌琅捏,老刑警劉巖生百,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異柄延,居然都是意外死亡蚀浆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門拦焚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蜡坊,“玉大人,你說我怎么就攤上這事赎败★跹茫” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵僵刮,是天一觀的道長据忘。 經(jīng)常有香客問我,道長搞糕,這世上最難降的妖魔是什么勇吊? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮窍仰,結(jié)果婚禮上汉规,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好针史,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布晶伦。 她就那樣靜靜地躺著,像睡著了一般啄枕。 火紅的嫁衣襯著肌膚如雪婚陪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天频祝,我揣著相機(jī)與錄音泌参,去河邊找鬼。 笑死常空,一個(gè)胖子當(dāng)著我的面吹牛沽一,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窟绷,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼锯玛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了兼蜈?” 一聲冷哼從身側(cè)響起攘残,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎为狸,沒想到半個(gè)月后歼郭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辐棒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年病曾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片漾根。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡泰涂,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出辐怕,到底是詐尸還是另有隱情逼蒙,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布寄疏,位于F島的核電站是牢,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏陕截。R本人自食惡果不足惜驳棱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望农曲。 院中可真熱鬧社搅,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荷并,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間青扔,已是汗流浹背源织。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留微猖,地道東北人谈息。 一個(gè)月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像凛剥,于是被迫代替她去往敵國和親侠仇。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容