快速上手Git之基础命令
沉淀一下平时经常用到的一些git的基础命令,形成一套操作流,这样子熟练之后,就可以无脑使用git了😊
ps: 本文主要总结的是merge request工作流
1. clone指定分支到本地
一般在开发之前,都会clone远程仓库中的某一条指定分支到本地,再在这个分支上做修改。因此,第一步就是要clone指定分支到本地。
git clone -b release-2.7 git@github.com:kubernetes-sigs/kubespray.git
-b 后边接的就是指定的分支名。
2. 创建新的分支
在clone指定分支到本地之后,我们就需要基于这个分支,创建我们自己的分支,并在上面进行开发。
git checkout -b feat/xxx
同样,-b后面接的就是你要创建的新的分支名。
在软件开发过程中,通常会有几种固定类型的分支,同时每种分支会有固定类型的前缀命名。我们鼓励每Feature branch种分支的命名约定并固化下来。
development branch特性的集成分支,通常是默认分支或固定的命名分支。常见于 PR 工作流,通常会作为 feature branch 合入的目标分支。 | master or develop |
---|---|
production branch用于部署发行版本。通常会从 development branch 拉出分支,开发完还会 merge 回去。常见 git flow 工作流。 | varies |
feature branch用于特定功能工作或改进,通常会从 development branch 拉出分支,开发完还会 merge 回去。常见 git flow 工作流。 | feature |
release branch用于发布任务和长期维护版本。 通常会从 development branch 拉出分支,开发完还会 merge 回去。一般 release branch 使用 语义化版本 维护,提供自动合入,自动将变更合并到较新的版本的中,减少对分支的手动维护。 | release |
release branch 通常用于修复 Release branch 。 | bugfix |
hotfix branch 通常用于快速修复 production branch ,而不会将变更引入到 development branch 中。 | hotfix |
3. 提交修改
在本地完成代码的修改之后,需要提交到本地代码仓库。
依次执行以下的命令:
- 查看当前代码状态,可以看到哪些文件发生了修改
git status
- 提交到本地暂存区, . 表示提交所有修改
git add .
- 提交到本地的代码仓库,需要加上一些文字说明,说明自己修改了什么
git commit -m "feat: xxx "
4. git rebase操作
等一切都修改到满意,就可以考虑将这个 MR 合并到主干了。
如果这个 MR 包含很多次 commits,你想将这些 commits 整理一下,比如合成一个 commit,可以通过 git rebase
来实现
记得把目标分支(origin/master)作为 rebase 的起点就行了
git rebase -i origin/master
git rebase的时候,指定首行的commit作为选定的commit,其他的commit设置为s,即跟随的意思。
pick e7ba81d Commit-1
s 5756e15 Commit-2
s b1b8189 Commit-3
5. 提交到远程仓库
到了这一步,就需要将修改从本地仓库提交到远程仓库中,然后再进行后续的操作,包括merge进指定分支等。
如果是第一次提交该分支到远程仓库,远程 GitLab 上还没有你的分支,所以:
git push --set-upstream origin 你新建的分支名字 // 按照前面说的,这里的分支名字就应该是dev
非首次提交,则直接用git push
即可。
如果是已经执行了git rebase操作,则需要强制提交,使用
git push -f
6. 提交merge request
提交merge request 建议在github或者gitlab的页面上直接提交,提交之前记得code review。
7. 其他
- 每次开发之前,记得使用
git pull
拉取远端的最新代码,避免之后合并代码时出现冲突。 - 取消commit
$ git commit -m "Something terribly misguided" # (1)
$ git reset HEAD~ # (2)
<< edit files as necessary >> # (3)
$ git add ... # (4)
$ git commit -c ORIG_HEAD # (5)
————————————————————————————————————————————————————
本文总结了Git 常见的一些基本命令,能够覆盖日常的开发工作,如果严格按照这个流程进行代码的提交,合并,基本上不会出现什么问题,但是一旦出现了代码冲突等问题,光靠这些基本命令可远远不够。
最后补充一些git的参考资料:
转载自:https://juejin.cn/post/7147990794031333413