本文主要是介绍fork gitlab项目,使用git rebase合并多次提交,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
以前的做法
使用fork和git rebase
fork
git rebase
提交mr(Merge Request)
昨天第一次使用fork和git rebase,记录下。。。
以前的做法
以前习惯做法都是clone公司原有项目到本地,然后自己checkout一个新的分支(如dev)进行开发,开发测试完成后,会有组长负责去merge我的dev分支到master。
当然在这个需求的开发期间可能有无数次的git commit和git push。
使用git log可以看到自己在做这个需求期间提交了n次。。。
使用fork和git rebase
fork
选择需要fork的项目,点击【fork】,大约1分钟左右的时间,等fork完了以后就会看到自己名下已经有了该项目
然后就是常规操作了,clone自己名下的项目到本地,默认是master分支,然后自己根据当前需求checkout一个新的分支进行需求开发
git clone http://git.xxx.cn/xxx.xie/goutil.git// 例如:新开一个alert分支,进行告警相关功能开发
git checkout -b alert
然后就在alert分支开发---测试---提交
// add修改过的文件
git add main.go
// 提交修改的msg
git commit -am "xxx"
// 列出远程项目url
git remote -v
// 设置当前分支的上游
git remote add upstream http://git.xxx.cn/xxx.xie/ops.git
// 提交alert分支的修改
git push origin lert
如果已经设置过upstream,想要修改之前的upstream
git remote set-url upstream http://git.xxx.cn/rd/txxe.git
git rebase
合并之前的多次提交。
https://www.cnblogs.com/hujunzheng/p/9732936.html
// 我目前在alert分支,设置master作为rebase。这里还可以设置需要合并前多少次的提交
// git rebase -i master~1 ,表示合并前2次的提交
// -i 代表进入交互模式// 第一步:
git rebase -i master// 第二步
// 进入交互模式后,会出现最近几次的pick,把pick修改为s
// 参考https://www.codercto.com/a/45325.html
// https://www.cnblogs.com/hujunzheng/p/9732936.html// 第三步:
wq 保存后退出// 第四步:
修改 需要提交的msg// 第五步:
wq 保存退出最后出现类似的信息,说明rebase成功。
Successfully rebased and updated refs/heads/alert.
提交mr(Merge Request)
在gitlab下找到需要提交mr的项目的分支(我的alert分支),
选择对应的项目和分支
然后就是等待你的mr被处理,处理完了以后就merge到自己名下的master分支。
首先clone fork出来的仓库到本地git clone git@github.com:123/456.git在 fork 的代码库中添加上游代码库的 remote 源git remote add upstream git@github.com:789/456.git获取原始仓库分支和对应的提交git fetch upstream在本地实现与upstream的同步git rebase upstream/master
成功的话提示如下:
$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Fast-forwarded master to upstream/master.推送自己的本地仓库到自己的远程仓库git push
https://blog.csdn.net/pl0321/article/details/86655288
这篇关于fork gitlab项目,使用git rebase合并多次提交的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!