实际工作项目中搭配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就会提示你优先更改冲突。

此时修改冲突即可。





相关文章
|
14小时前
|
开发工具 git
vscode 将已修改代码提交推送git时一直转圈也没有反馈
vscode 将已修改代码提交推送git时一直转圈也没有反馈
5 0
|
3天前
|
开发工具 git
大事件项目66-----项目中git的管理使用
大事件项目66-----项目中git的管理使用
|
4天前
|
开发工具 git
代码合并、git merge冲突处理
在Git中,面对合并冲突可选`accept yours`或`theirs`,或手动合并(`merge`)。右键Git操作包括复制修订号、创建补丁、Cherry-Pick特定提交、回滚到旧版本、查看指定状态、比较本地版本、重置、反做提交、压缩多提交、丢弃提交、交互式重放、创建分支和标签。未push的commit可通过`undo`取消。`drop`和`revert`都回退代码,但`drop`同时丢弃commit。已push需回退时,使用`git reset --hard commitId`加`git push -f`,但注意可能影响他人;若想撤销,先`pull`。
7 0
|
4天前
|
安全 Serverless 网络安全
阿里云云效产品使用问题之如何拉取自建Git(未开放公网访问)中的代码
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4天前
|
开发工具 git
Git进行代码版本控制
Git进行代码版本控制
|
5天前
|
Shell 网络安全 开发工具
git实现服务器自动push拉取代码--webhooks
git实现服务器自动push拉取代码--webhooks
14 1
|
6天前
|
开发工具 git
git代码回退
git代码回退
16 5
|
6天前
|
存储 开发工具 git
Git工作流程:如何在团队中协作?
Git工作流程:如何在团队中协作?
|
6天前
|
Shell 开发工具 git
如何使用git上传代码github仓库
如何使用git上传代码github仓库
|
7天前
|
网络安全 开发工具 git
git项目提交到远程仓库
git项目提交到远程仓库
13 2