实际工作项目中搭配git托管代码的流程

简介: 实际工作项目中搭配git托管代码的流程

今天总结一下自己在实际工作项目中搭配git和gitee代码托管平台完成日常工作流的开发。

第一步

每天早上上班需要切到主分支上拉取一下最新的代码。

image.png

注意:这里有一个需要特别关心的点就是如果你工作的分支有未完成的修改(也就是昨天晚上你工作的代码没修改完,你忘了推送上去)你是无法切换分支的

这里着重讲一下这种情况如何正确处理

1.下图可以看到我们现在修改了一部分代码,但是还未修改完,不想发一个commitmaster分支上

01f9955e54fe42d5b56dcdd7edb365a9_tplv-k3u1fbpfcp-zoom-in-crop-mark_4536_0_0_0.png

2.现在我仓库上游有代码更新了,我需要去切换到master分支上拉去最新的代码。

image.png

以后但是由于你没有commit,所以git不允许你切换分支因为你的代码并没有完成,如果你commit的话,会多一条无用的记录,并且commit -m的时候信息也不知道如何填写合适。

这时候我会用到git stash,这里我们不过多讲解stash的用法,它是用来代替commit的,相当于把你的改动暂时放到了和暂存区同级别的一个地方。

image.png

3.让我们git status看一下哪些文件被修改了

image.png

就是这个红色的文件被我们修改了,导致我们无法切换到主分支。接下来让我们git stash一下试试。然后再执行

image.png

可以看到我们的修改好像消失了一样,这时候我们就可以切换到master上了,执行git pull,同步一下最新的代码。

image.png

ok,这时候我们master分支的代码是最新的了,但是我们开发是在分支上开发的呀,text分支代码还不是最新的。这时候我们就需要让text分支和master分支的代码同步。

4.这里切回text分支。

image.png

在实际开发中我会选择git rebase master这个命令来同步最新的代码,因为使用git merge master会造成一次特殊的commit,意思就是master分支上拉下来和你不同的那些代码git会自动生成一次commit记录来帮你记忆这次代码的更改。但往往这个commit是无用的,它会再你代码改好以后,等真正想push代码的时候,这条commit会跟着你改代码时候“真正的”那条commit一起推送过去。

所以我们就选用git rebase,在这里只简单讲解一下,具体意思可以百度搜寻更详细的答案。它真正让人感到和merge的不同之处就是不会产生多余的那条commit

5.执行一下git rebase看看

image.png

好像不对劲,有错误?先采用下面这个回答的方式解决,至于原因这个我之前也没研究过,待我以后搞清楚再来补充

image.png

6.执行完git fetch origin以后,我们在text分支上执行git rebase master命令。

image.png

可以看到现在我们的代码就是上游仓库,你的同事所有提交完以后的最新代码。

但是别忘了,你修改的代码还在stash仓库里放着。

我们只需执行stash apply,就可以拿下来所有add以后的代码了。

image.png

熟悉的那个文件就又出现了。注意!!!!!!这时候可能会引起冲突。道理很简单因为你现在更改的代码,有可能你同事也改过了,这时候git就不知道该才用谁的代码了,所以这时候git就会提示你优先更改冲突。

此时修改冲突即可。





相关文章
|
3月前
|
IDE 网络安全 开发工具
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
【Azure App Service】Local Git App Service的仓库代码遇见卡住不Clone代码的问题
|
1月前
|
开发工具 git
git如何修改提交代码时的名字和邮箱?
git如何修改提交代码时的名字和邮箱?
55 4
|
1月前
|
Java Linux 开发工具
IDEA中git提交前如何关闭code analysis以及开启格式化代码
【10月更文挑战第12天】本文介绍了在 IntelliJ IDEA 中关闭代码分析和开启代码格式化的步骤。关闭代码分析可通过取消默认启用检查或针对特定规则进行调整实现,同时可通过设置 VCS 静默模式在提交时跳过检查。开启代码格式化则需在 `Settings` 中配置 `Code Style` 规则,并通过创建 Git 钩子实现提交前自动格式化。
193 3
|
2月前
|
Shell 网络安全 开发工具
git与gitee结合使用,提交代码,文件到远程仓库
本文介绍了如何将Git与Gitee结合使用来提交代码文件到远程仓库。内容涵盖了Git的安装和环境变量配置、SSH公钥的生成和配置、在Gitee上创建仓库、设置Git的全局用户信息、初始化本地仓库、添加远程仓库地址、提交文件和推送到远程仓库的步骤。此外,还提供了如何克隆远程仓库到本地的命令。
git与gitee结合使用,提交代码,文件到远程仓库
|
1月前
|
JavaScript 前端开发 开发工具
一身反骨的我,用--no-verify绕开了git代码提交限制!
【10月更文挑战第7天】一身反骨的我,用--no-verify绕开了git代码提交限制!
96 0
|
1月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
31 0
|
2月前
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
199 1
|
3月前
|
Shell 开发工具 git
使用 Shell 代码简化 Git 步骤
【8月更文挑战第23天】本文介绍通过Shell脚本简化Git操作的方法:1) 使用`gitc "提交信息"`可一键完成代码提交与推送至远程仓库;2) 执行`gitpull`即可从远程仓库拉取最新代码并合并到当前分支;3) 输入`gitnewbranch 分支名称`快速创建并切换到新分支。将这些自定义函数加入`.bashrc`或`.zshrc`等配置文件后,即可随时调用简化版Git命令。
|
3月前
|
存储 Linux Shell
使用Git LFS托管大文件
使用Git LFS托管大文件
|
3月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因