git fork工作流

git fork工作流:

此时开发者可以执行git push origin branch_feature将自己的分支推到自己的远程仓库,然后发起一个pull request请求将branch_feature分支合并到原仓库的dev分支,一般情况下这样操作可能都没什么问题。 
但是这样操作有可能导致原项目的维护者在合并pull request时发现有冲突,会拒绝合并,所以开发者最好是先更新下dev代码,然后再合并branch_feature分支,具体操作是:

git checkout dev  //切到dev分支
git pull upstream dev          //这里upstream就是指原仓库,即从原仓库的dev分支更新本地dev分支
git checkout -b branch_feature_merge dev       //从更新后的dev分支checkout出一个分支用于合并branch_feature分支
git merge branch_feature       //将branch_feature分支合并到branch_feature_merge分支
git branch -m branch_feature_merge branch_feature         //将branch_feature_merge分支重命名为branch_feature
git push origin branch_feature     //推到远程仓库

这时再发起一个pull request请求将branch_feature分支合并到原仓库的dev分支,此时是肯定不会有冲突的。

这个问题和从github上fork了一个仓库后保持与原仓库代码同步的操作方法 其实有很多重复的地方。当然如果这个问题解决了,那么保持与原仓库代码同步的问题也就解决了。

Forking工作流与只有一个中央代码仓库的git工作流完全不同,这种工作流下,每个开发者都有自己的远程仓库和本地仓库。下面用例子具体讲下这种工作流。

比如fork出来的项目命名为EvidenceProof,原项目是bitcoin,则具体操作步骤为: 
1.点击github上原项目仓库页面的fork按钮,从原项目仓库fork到自己的仓库,并重命名为NewBitCoin,此时自己的项目仓库的地址是https://github.com/osbc/NewBitCoin
2.将自己的远程仓库clone到本地

git clone https://github.com/osbc/NewBitCoin.git

这时可以执行git remote -v命令查看本地仓库对应的远程仓库:

git remote -v
origin  https://github.com/osbc/NewBitCoin.git (fetch)
origin  https://github.com/osbc/NewBitCoin.git (push)

可以看到有只有一个远程仓库。

3.为本地仓库添加一个新的远程仓库,指定名字为upstream,指向原项目仓库,(可参考:.5 Git 基础 - 远程仓库的使用)

git remote add upstream https://github.com/bitcoin/bitcoin.git

这时可以再次执行git remote -v命令查看此时本地仓库对应的远程仓库:

git remote -v
origin  https://github.com/osbc/NewBitCoin.git (fetch)
origin  https://github.com/osbc/NewBitCoin.git (push)
upstream    https://github.com/bitcoin/bitcoin.git (fetch)
upstream    https://github.com/bitcoin/bitcoin.git (push)

可以看到有两个远程仓库了。

4.开发者从本地的dev分支(或者master分支,具体项目有区别,这里以dev分支为例)checkout出一个新的分支用于开发新功能

git checkout -b branch_feature dev

进行开发工作….. 
开发完成后执行git commit 填写commit信息

参考: 
https://www.atlassian.com/git/tutorials/comparing-workflows 
https://github.com/oldratlee/translations/tree/master/git-workflows-and-tutorials

https://www.jianshu.com/p/d4a34e55f490

发布了200 篇原创文章 · 获赞 50 · 访问量 65万+

猜你喜欢

转载自blog.csdn.net/allanGold/article/details/104298068