乐趣区

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

明天总结一下本人在理论工作我的项目中搭配 git 和 gitee 代码托管平台实现日常工作流的开发。

第一步

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

留神:这里有一个须要特地关怀的点就是如果你工作的分支有未实现的批改(也就是昨天晚上你工作的代码没批改完,你忘了推送下来)你是无奈切换分支的

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

1. 下图能够看到咱们当初批改了一部分代码,然而还未修改完,不想发一个 commitmaster分支上

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

当前然而因为你没有 commit,所以git 不容许你切换分支因为你的代码并没有实现,如果你 commit 的话,会多一条无用的记录,并且 commit -m 的时候信息也不晓得如何填写适合。

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

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

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

能够看到咱们的批改如同隐没了一样,这时候咱们就能够切换到 master 上了,执行git pull,同步一下最新的代码。

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

4. 这里切回 text 分支。

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

所以咱们就选用 git rebase,在这里只简略解说一下,具体意思能够百度搜查更具体的答案。它真正让人感到和merge 的不同之处就是 不会产生多余的那条 commit

5. 执行一下 git rebase 看看

如同不对劲,有谬误?先采纳上面这个答复的形式解决, 至于起因这个我之前也没钻研过,待我当前搞清楚再来补充

6. 执行完 git fetch origin 当前,咱们在 text 分支上执行 git rebase master 命令。

能够看到当初咱们的代码就是上游仓库,你的共事所有提交完当前的最新代码。

然而别忘了,你批改的代码还在 stash 仓库里放着。

咱们只需执行 stash apply,就能够拿下来所有add 当前的代码了。

相熟的那个文件就又呈现了。留神!!!!!!这时候可能会引起抵触。情理很简略 因为你当初更改的代码,有可能你共事也改过了 ,这时候git 就不晓得该才用谁的代码了,所以这时候 git 就会提醒你优先更改抵触。

此时批改抵触即可。

退出移动版