手把手教你怎樣簡單利用GitHub實現合作開發(Mac)

前言

  • 之前對於GitHub完全是當作一個存代碼的遠程倉庫,或者是一個參考別人代碼的網站
  • 這篇文章可以看作GitHub進階,告訴你如何建立分支,合併代碼,與別人合作開發

參考文章

前期準備

  • 簡單的如何上傳代碼,可以看我的這篇博客
  • 下載oh my zsh:
    • oh my zsh是終端的一個插件,使用它在操作時可以更加方便
    • 這篇文章的操作截圖都將是使用oh my zsh後的效果
    • 終端輸入:
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • 建議將finder上的所有隱藏文件全部顯示出來
defaults write com.apple.finder AppleShowAllFiles -bool true
在終端輸入上述指令,顯示所有隱藏文件,這樣可以看到.git
最後需要重啓Finder:窗口左上角的蘋果標誌-->強制退出-->Finder-->重新啓動

預備知識

  • 首先Xcode自帶git,所以學會合作開發後,Xcode會開始展示他強大的一面
  • 我們要明白幾個概念:
    • 倉庫:倉庫是存放所有代碼的地方
    • 分支:
      • 分支首先有默認的主分支:master,所有最後的代碼都要併到主分支
      • 另外就是你可以建立自己的分支,在上面寫自己的代碼
      • 所謂合作開發,其實就是你在你的分支開發,別人在別人的分支開發,最後都要合併到主分支
    • fork:
      • fork別人的倉庫實際上相當於克隆了別人的倉庫,可以這麼理解,git clone指令是把別人的倉庫克隆到本地,而fork確是將倉庫在遠程clone下來。
      • 所以fork之後你也有了這樣一個倉庫,但並不是意味着你就能和別人同步開發了

先邀請你的夥伴吧

  • 假設A, B, C三個人一起合作開發,首先是A在GitHub上建立了一個倉庫叫Cooperative-Learning
  • 接下來到倉庫主界面點擊contributor可以查看所有參與者,當然現在只有一個人
  • 想要讓其他人蔘與到這個倉庫的代碼合作上來需要點擊settings,再點擊左側的Collaborators,此時輸入密碼
  • 輸入完你的密碼後就可以拉人了,根據別人的用戶名,郵箱搜索到這個人,然後向他發出邀請
  • 假設A向B發出了邀請,而要接受邀請卻並不是在GitHub上接受,這一點真的很值得吐槽,B要登陸自己註冊GitHub的郵箱接受邀請(如果是QQ郵箱的話當然要記得是在PC端使用啊)
  • 此時回到contributors界面就會發現多了一個人了(這是我之前的倉庫,大家get到意思就行)

首先當然在本地搞出我們的git

  • 這個步驟不同的人都會不一樣,我的習慣是新建一個文件夾取名爲倉庫名+Demo
  • 然後打開terminal
    • cd + 上面的文件夾路徑來進入該文件夾
    • 複製我們新建倉庫的SSH路徑
    • 輸入g clone + SSH路徑
    • 比如我們輸入g clone [email protected]:KevinAshen/Cooperative-Learning.git
    • 此時就會出現一個倉庫文件夾,裏面應該有一個.git文件(隱藏文件)以及一個ReadMe
    • 下一步切記:一定要在終端cd到那個倉庫文件夾裏!!!(可以看如果前面顯示終端名master的話說明已經進入正確位置)
    • 此時,我們有了本地的倉庫了,該倉庫已經和GitHub上的遠程倉庫鏈接
    • 我們其實每次敲代碼都是在本地倉庫裏,然後要將他上傳到遠程倉庫,包括我們進行的分支切換都是本地的,這裏其實已經包括了一個隱患,下面會提到

一人建一個分支嘍

  • 現在A需要修建自己的分支來作爲自己代碼的分支
  • 指令:git checkout -b 分支名 (checkout是跳轉分支,加上-b代表如果不存在直接新建)
  • 比如我們輸入git checkout -b branchA
    • 所謂切換分支其實在某些角度上就意味着是一個新的倉庫了,比如你在主分支裏新建了工程,不做任何操作,直接切換到另一個分支,該工程在文件夾裏直接沒了,而你沒有保存,在你返回主分支的時候它也不會出現,可能你一整天的工作都白費了
    • 但是也不用太擔心,git如果你沒做好保存工作會阻止你的自取滅亡行爲
  • 此時就是安裝oh my zsh的好處了 你能直接看到自己目前所在分支
  • 現在,我們打開在這裏直接新建工程
    • 爲了讓任何一個人都看得懂,我新建的是一個C語言工程,讓哪怕不是學習iOS開發的也看得懂

新建工程+簡單的上傳指令

  • 我們打開Xcode,在本地倉庫新建一個C語言工程,取名爲Cooperative-LearningTest
    • 此時我們還是在branchA分支哦,牢記
    • 任何人,任何時候都不應該對master分支下建工程,寫代碼,而是應該在自己對分支寫,最後合到主分支,很重要很重要
  • 然後打開終端,輸入g status (查看倉庫狀態)
    • 這條指令極其有用,如果你追求謹慎的話,應該在每一個操作到前後都輸入這條指令,查看狀態,小心駛得萬年船,一旦刪庫就GG
    • 這個時候會羅列出你到等待提交的新文件有那些那些
  • 使用add指令將這些添加到待提交區(自己取得名字。。。)
    • g add . 會讓所有爲提交文件都被添加,也可以g add + 文件路徑來提交個別的
    • 爲什麼不直接所有都上傳,因爲可能有的代碼你才寫了一半不想直接上傳
    • 如果這種情況的話,可以使用git stash //保存工作現場
    • 比如我在這個工程裏寫點代碼,此時使用git status查看狀態,會顯示該文件modified(已修改)
    • 之後使用git stash代碼,你之前寫的在編譯器上都看不到了,算是被暫存了,可以使用git stash list查看,用git stash pop取出來
  • add後下一步是commit
    • git commit -m “提交備註”
    • commit等於是將等待區的代碼提交到本地倉庫
  • commit之後就是push
    • git push origin + 分支名
    • 此時就是git push origin branchA(這裏很關鍵,如果你習慣使用GitHub提交代碼,就是沒試過合作開發,那這裏你會很習慣的打出git push origin master,依然牢記一個原則,絕對絕對不要在master分支進行操作)
    • push相當於就是把遠端
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章