实习期间对公司的git操作(命令行)正式实战

1.从已有的项目克隆下来:

git clone +地址

如果使用的公司的需要更改一下地址(指定分支dev:-b dev)

1
git clone -b dev git@github.com:example.git
1
git clone -b dev git@company.github.com:example.git

2.在dev的分支下拉出自己将要开发的新分支

1
git switch -c wesley/index

DkN0JA.png

3.可以查看一下分支:

1
git branch

image-20201116100459029

一般公司的项目下可能会有master(创建仓库时默认生成),dev(开发分支),staging(测试分支)

我们从dev拉取最新的代码,然后再本地创建自己的分支,在自己的分支上进行开发,然后push到dev分支,在github上提交PR,让同事进行code review,然后再在线上手动进行合并到dev

4.更改完项目后,提交到本地仓库

1
2
git add .
git commit -m "feat: add README file"

feat: 新增 feature
fix: 修复 bug
docs: 仅仅修改了文档,比如 README, CHANGELOG, CONTRIBUTE等等
style: 仅仅修改了空格、格式缩进、逗号等等,不改变代码逻辑
refactor: 代码重构,没有加新功能或者修复 bug
perf: 优化相关,比如提升性能、体验
test: 测试用例,包括单元测试、集成测试等
chore: 改变构建流程、或者增加依赖库、工具等
revert: 回滚到上一个版本

5.到dev主分支去拉取最新的dev代码(可能你开发的时候有别的同事提了新的代码到dev上)

1
2
git switch dev
git pull origin dev

image-20201116102609236

6.再回到分支上去,进行

1
git rebase dev 

如果有冲突的话,就去解决冲突,解决完后:

1
2
git add .
git rebase --continue

直到出现下图就算成功:

image-20201116102726614

7.然后提交到本地仓库:

1
2
git add .
git push origin wesley/index

image-20201116101802850

8.然后就可以去线上提PR

image-20201116102828221

9.线上合并分支到dev后就把本地的分支也删除,然后拉一下最新的代码

1
2
git branch -d song
git pull origin dev

10.问题解决

如果push上去前忘记去pull最新的dev分支代码,就会导致提PR的时候不能自动合并的:

先去把主分支上的代码拉取到最新

1
2
git checkout dev
git pull origin dev

再切换到自己的开发分支,rebase(这时候会提示有冲突,去解决冲突)

1
2
git checkout wesley
git rebase dev

改完之后,把改过的文件添加一次(这里add后就不需要在提交了)

1
git add .

再去rebase

1
git rebase --continue

这时可能还会出现冲突,就要继续去更改冲突,再add,直到这条命令返回

Applying :……

冲突完成后就可以推送了

1
git push origin wesley

强推:(慎用,一般如果是推到自己的线上分支就可以这么做,可以直接覆盖线上自己的分支)

1
git push origin wesley --force

不用强推的话,这时会出现本地的和线上的冲突

image-20201104141449142

这时拉取一下最新的线上当前分支

1
git pull origin wesley

如果有冲突,再去解决冲突

1
2
3
git add .
git commit -m ""
git push origin wesley