git工作流

katsu 发布于 2024-05-04 436 次阅读


 结构

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的同步