结构
github仓库--本地git仓库--本地的disk呈现内容
十分钟学会正确的github工作流,和开源作者们使用同一套流程 - YouTube
原视频在git pull origin main
的地方使用了git pull origin master
流程
clone
git clone <address>
从github仓库复制到本地git仓库
建立my-feature分支
git checkout -b -my-feature
将main中的内容复制到新分支my-feature
工作
在my-feature的内容上,在本地disk里进行工作,然后使用
git diff
查看自己的工作带来的对分支内容的改变
暂存
git add . 或者 git add filename
git status 查看状态
git status -s 返回简化内容
.
表示全部 也可以指定某个文件或dir
将文件放入暂存区
commit
git commit
将改动后的内容提交到本地git
push
将本地git的分支及其内容push到github;原则上一个可以被push的分支不应该同时有两个人或以上在工作。
git push origin my-feature
origin 是远程仓库的默认短名称。当你克隆一个仓库时,Git 自动为你的远程仓库设置一个引用,名称默认为
origin
。
同时 如果协作中main分支也有改动 ;为了确认是否冲突,需要将main分支内容同步到my-feature分支
对本地git来说:
git checkout main
git pull origin main
git checkout my-feature
git rebase main
以便同步github里变动过的main分支:具体是,先最先进行main分支的更新,然后尝试将我之前的修改应用到当前分支
如果出现了rebase conflict,则需要选择冲突部分到底需要哪段代码。
更新后push
git push -f origin my-feature
-f表示force 强行force
分支合并 pull request
在github上建立pull request,要求main分支加入my-featrue中的改动
squash and merge
squash:为了保证main分支每个commit都正常工作,将分支上的所有改变合并成一个改变
merge:合并到main分支
delete branch
删除远端上的my-feature分支,但是此时本地git中的my-feature还没被删;此时本地:
git checkout main
git branch -D my-feature
git pull origin main
把最新的更新拉到local 的main分支,完成与github的同步