美文网首页
常用的git命令和git分支策略

常用的git命令和git分支策略

作者: Amy1234567 | 来源:发表于2022-04-14 20:52 被阅读0次

    git diff 命令

    git diff 文件:查看尚未缓存的改动

    git diff --cached:查看已缓存的改动

    git diff HEAD:查看已缓存的与未缓存的所有改动

    git diff --stat:显示摘要而非整个diff

    但如何退出呢?

    按q即可

    新建分支切换到指定分支

    git checkout -b localname origin/branchname

    常见的分支策略

    常见的分支策略有三种:GitFlow, GitHubFlow, 以及GitLabFlow

    Git Flow

    GitFlow是三个分支中出现最早的

    GitFlow通常包含五种类型的分支:Master分支,Develop分支,Feature分支,Release分支,HotFix分支。

    \bullet  Master分支:主干分支,也是正式发布版本的分支,其包含可以部署到生产环境中的代码,通常情况下,只允许其他分支将代码合入,不允许向Master分支直接提交代码(对应生产环境)。

    \bullet  Develop分支:开发分支,用来集成测试最新合入的开发成果,包含要发布到下一个Release的代码(对应开发环境)。

    \bullet  Feature分支:特性分支,通常从Develop分支拉出,每个新特性的开发对应一个特性分支,用于开发人员提交代码并进行自测。自测完成后,会将Feature分支的代码合并至Develop分支,进入下一个Release。

    \bullet  Hot Fix分支:热修复分支,生产环境发现新Bug时创建的临时分支,问题验证通过后,合并到Master和Develop分支。

    通常开发过程中新特性的开发过程如下:

    从Develop分支拉取一条Feature分支,开发团队在Feature分支上进行新功能开发;开发完成后,将Feature分支合并到Develop分支,并进行开发环境的验证;开发环境验证完成,从Develop分支拉取一条release分支,到测试环境进行SIT/UAT测试;测试无问题后,可将Develop分支合入Master分支,待发版时,直接将Master分支代码部署到生产环境。

    https://bbs.huaweicloud.com/blogs/281789

    GitFlow的优点是每个分支都有明确的定义,严格按照GitFlow管理项目代码的话,很难出现代码混乱;其缺点是:如果特性分支过多的话,很容易造成代码冲突,从而提高合并了的成本;由于每次提交都涉及多个分支,所以GitFlow也不太适合提交频率较高的项目。

    GitHubFlow

    GitHubFlow来源于GitHub团队的工作实践。当代码托管在GitHub上时,则需要使用GithubFlow。相比GitFlow而言,GitHubFlow没有那么多分支。

    GitHubFlow通常只有一个Master分支是固定的,而且GitHubFlow中的Master分支通常是受保护的,只有特定权限的人才可以向Master分支合入代码。

    在GitHubFlow中,新功能开发或修复Bug需要从Master分支拉取一个新分支,在这个新分支上进行代码提交;功能开发完成,开发者创建Pull Request(简称PR),通知源仓库开发者进行代码修改review,确认无误后,将由源仓库开发人员合入Master分支。

    很多人可能会问,提交代码通常是commit或者push,拉取代码才是pull,为什么GitHubFlow中提交代码提出的是“Pull Request”。因为在GitHubFlow中,PR是通知其他人员到你的代码库去拉取代码至本地,然后由他们进行最终的提交,所以用“pull”而非“push”。

    GitHubFlow优点是相对于GitFlow来说比较简单,其缺点是因为只有一条Master分支,万一代码合入后,由于某些因素Master分支不能立刻发布,就会导致最终发布的版本和计划不同。

    GitLabFlow

    GitLabFlow出现的最晚,GitLabFlow是开源工具GitLab推荐的做法。

    GitLabFlow支持GitFlow的分支策略,也支持GitHubFlow的"Pull Request"(在GitLabFlow中被称为"Merge Request")。

    相比于GitHubFlow,GitLabFlow增加了对预生产环境和生产环境的管理,即Master分支对应为开发环境的分支,预生产和生产环境由其他分支(由Pre-Production, Production)进行管理。在这种情况下,Master分支是Pre-Production分支的上游,Pre-Production是Production分支的上游;GitLabFlow规定代码必须从上游向下游发展,即新功能或修复Bug时,特性分支的代码测试无误后,必须先合入Master分支,然后才能由Master分支箱Pre-Production环境合入,最后由Pre-Production合入Production.

    GitLabFlow中的Merge Request是将一个分支合入到另一个分支的请求,通过Merge Request可以对比合入分支和被合入分支的差异,也可以做代码的Review。

    git常用命令:

    1. 切换分支: git checkout test

    2. 更新版本: git pull

    3. Merge代码: git merge --no-ff --no-commit origin/devbranch

    4. 提交代码: git commit -a -m "comment"

    5. Push代码: git push

    6. 将以下文件下载后,放到YumServer进行管理

    查询用户所属组的命令

    a=$(cat /etc/passwd|grep combatusr|cut -d ":" -f4)

    cat /etc/group| grep $a

    windows安装各种代码包

    set http_proxy=http://10.142.4.40:8000

    创建新用户:

    sudo useradd call

    设置密码

    sudo passwd call

    将用户添加到组

    sudo usermod -a -G call dmanager

    更改文件权限

    sudo chmod -R 770 call

    生成SSH-Key的方法

     1. 启动gitBash

    2. 进入自己的个人的.ssh目录(例:/c/Users/amy/.ssh)

    3. 执行ssh-keygen -t rsa

    4. 连续输入3次回车。(不用输入密码)

    mkdir ~/.ssh

    git 撤销merge的方法

    1. git reflog   查看log

    2. git reset --hard 0f77c1e7  回退到想要的版本号作为HEAD

    3. git log --oneline  查看下是否正确

    相关文章

      网友评论

          本文标题:常用的git命令和git分支策略

          本文链接:https://www.haomeiwen.com/subject/jgrisrtx.html