手把手教你怎样简单利用GitHub实现合作开发(Mac)

版权声明:欢迎指出错误,作者极懒,常常懒得修改 https://blog.csdn.net/KevinAshen/article/details/86708256

前言

  • 之前对于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相当于就是把远端

猜你喜欢

转载自blog.csdn.net/KevinAshen/article/details/86708256