github 上的仓库(remote)
仓库的主分支 main (原来叫 master )
假设这个 main branch 上只有一个 commit 是 init
当我们想修改代码/贡献代码的时候,第一件事就是将 remote 仓库复制到本地。
git clone <仓库地址> |
修改代码
# 在我们需要修改代码的时候,首先就是建立一个 branch |
# 当我们修改代码的时候,硬盘上的文件是有变化的。但是git对此一无所知。 |
# 当我们把修改的文件告知git的时候,可以使用 git add 命令。 |
# 当我们使用 git commit 时,git就会新增加一个 commit |
# 这个时候就可以看出 feature branch 已经和 main branch 已经不一样了。 |
# 这个时候我们可以用 git push origin my-feature 命令去 push |
# 我们经常会遇到的情况是,当我们push上去的时候,main branch 又有更新了。 |
git checkout main # 切换到 main 这个分支里边。 |
git pull origin master # 把远端的 main 同步到我的 local 中的 main 中。 |
# 然后我们要回到 my-feature 上 |
git rebase main # 把我的修改先都扔到一边,然后把main最新的修改拿过来,在这个基础之上再把我的修改尝试放上去 |
# 在更新完我们的 feature branch 之后,我们需要 git push -f origin my-feature |
# 到此我们就要把我们更新的代码,合并到这个main branch里面了 |
# main brach 的维护者,在审查了你的代码之后,一般情况下会用 squash and merge |
# 远端的那个 my-feature 被删除掉了,但是我们 local git 上还有 |
# 最后再拉取一次 远端的 main update2 ,拉到我们的 local main branch 和 disk 上。 |
在任何有规模的项目里边,不管是开源的还是公司自己的,都会使用比较正规的工作流。正如本文所讲的一样,它们都是适用的。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 htdocs!