Day 4 : Git 分支与远端仓库

远端仓库

打RPG的时候,队友的占位与分配是很重要的! 後排玩家是要对准BOSS的弱点来个会心一击,还是一个大招砸在前排战士的头上,最依赖的就是合理的分配负责区域。写code也一样,减少摩擦、划分区域、互相帮助,才是好的团队合作。

通常团队会开一个团队成员都能专案(Repository),会开一个远端的仓库来存放code。无论公开私人、Github还是Gitlab,皆可。这里介绍Github为主。

https://ithelp.ithome.com.tw/upload/images/20210905/20119044nNjyguKuTn.png

如上图,按步骤点一点就能够开一个新的专案了,建立好後会获得一个该专案的URL。打开你的本地端程序。

  • git remote add <远端名称> <URL> 连结本地端与远端仓库
  • git push <远端名称> <分支名称> 把本地端的code推上远端

https://ithelp.ithome.com.tw/upload/images/20210905/20119044vR4n5BqBN1.png

如上图,将本地端的master,推上了远端的origin/master。其他人如何获取远端code呢?在某一个资料夹底下输入:

  • git clone <URL> 把远端的code、commit 下载到当前资料夹 (给没有code的人)
  • git pull <远端名称> 把远端最新版的code更新到本地端 (给已有code的人)

其实git pullgit fetchgit merge的合体,关於多人协作,我们在明天详细讲讲,先提到一下。

  • git fetch 获得远端资讯
  • git merge 合并两个分支

分支

分支(branch)是git多人协作的一个很重要的工具,在远端仓库中,多人一起push会导致程序冲突。为了避免每次push会有大量冲突,建议开发模式是多分支开发,每一个开发者会有自己的一个分支,当开法feature完成後合并到主干分支。

  • git branch <分支名> 建立新的分支
  • git branch -v 查看分支
  • git checkout <分支名> 切换到分支 (HEAD的移动)

你可以把分支想像成有人复制了一份code,可以让你随意修改。修改满意後或是审核通过後再让你把修改内容合并回原始的主要程序内(master)。如下图:

https://ithelp.ithome.com.tw/upload/images/20210905/20119044Q8f2dMxUgI.png

我们有了两个branch (master、feature/person_1),他们各自对Apple.txt有了commit,为了方便看,可以使用Visual Studio Code的Git History来查看,如下图:

https://ithelp.ithome.com.tw/upload/images/20210905/20119044tUcanpQoZ0.png

绿色的是本地端、红色的是远端(origin master)。可以看到远端的仓库版本落後於本地端的版本,我们可以再加上一个README.md(显示在专案进入点的文件)後上传端,流程与之前大同小异。

# 在master新增了一个README.md并修改後
git add .
git commit -m "添加README"
git push origin master

这样就能成功推上远端了,让远端与本地端master同步。
https://ithelp.ithome.com.tw/upload/images/20210905/20119044ejqFdEqBWs.png

其实checkout就是HEAD的移动,所以除了checkout不同分支外,你也可以checkout到同条支线其他commit点上,如此便能看到不同commit时间点的code。

  • git checkout <哈希值(前七码)> HEAD移动到其他commit上
  • git checkout <branch-name> HEAD移动回最新的commit上

<<:  DAY1 筑个前端毛胚屋

>>:  [Day4] Vite 出小蜜蜂~ Input Control 操作系统!

ISO 27001 资讯安全管理系统 【解析】(二十二)

识别威胁 在前面的概论中,我们知道威胁是外来的,他必须配合资产才会产生风险,所以资产与威胁是相互之...

D19 - 「呐,你想要成为什麽颜色?」:打造一个调色盘吧!

接下来我们要利用「 PWM」与「RGB LED」设计调色盘功能。 首先来认识一下新朋友 - 「RGB...

企划实现(21)

接续上篇继续提到关於有限公司以及股份有限公司的差别。 有限公司以及股份有限公司除了制度会有差别外,责...

DAY05 资料分析的步骤

一、资料分析步骤 资料分析大致流程分成这几个步骤。如下图所示。透过图示了解大致流程後,我们将来逐一探...

【把玩Azure DevOps】Day9 CI/CD从这里:编译专案与上传成品

前面的文章都是在介绍Pipeline介面、范本内容,这一篇终於要真正进入正题,将Repo中的Cons...