github工作流
# 好用的 github 工作流
- 拉取远端仓库
git clone repo_address
- 在 local git 处 新建一个 分支 feature branch
git checkout -b my-feature
这个时候 local git 上就存在两个分支,main branch 和 my-feature branch
修改 硬盘 代码, 修改完以后使用 git diff 看看硬盘上文件和 git 上保存的 branch 有什么区别 使用 git add file-name 将改动存在暂存区里,然后使用 git commit 将代码提交到 local git 上 使用 git push origin my-feature, 此时 github 项目上多了一个 my-feature 分支
- 同步
如果此时发现 main 直线里 多了一个 commit 名为 update
想要把 update 的 commit 也同步到 branch 里面
执行 git checkout main, 将 disk 的代码还原为 init 的状态 执行 git pull origin master , 把远端的 update 同步到 local git 的 main 分支下 执行 git checkout my-feature,切换回 my-feature 分支 git rebase main,
rebase 的意思是先把 my-feature 对 init 的改动先扔到一边,然后 main 最新修改拿过来,最后把 my-feature 修改尝试弄回去,有可能会出现 commit conflict,出现冲突要手动选择
git push -f origin my-feature, 把最新改动 push 到 github 上
- Pull Request
将 my-feature 的改动尝试合并在 main 分支里
pull request 主分支如果接受合并,则执行 squash and merge,意思就是把其他分支的各种 commit 合并为一个改变,并把这个 commit 放到 main branch 合并后一般把远端的 feature-branch 给删掉 local git 上 还存在 feature-branch git checkout main, 首先切换到 local git 的 main 分支下 git branch -D my-feature, 把 my-feature branch 从 local git 上也删掉 git pull origin master, 把最新的更新拉到 local 的 git 和 disk 上