Open liujuanjuan1984 opened 4 years ago
第一个疑问是,上面两种操作,哪种更合适?
第二个疑问是,我想保留我的一般操作流程,于是我: 1、在线fork c 仓库 得到 一个新的在线仓库 E 2、但不想 重复 clone 仓库E到本地
有没有办法直接把本地仓库D,改成在线仓库E的clone?
re 疑问1 by leask:
如果你有原仓库的权限就不应该fork git设计的原则是分享和协作而不是占有它。😂 如果你拿不准,你有原仓库的权限,你就clone之后开分支写,写完让主人review之后合并到master
re 疑问2: 你可以添加过一个的remote,或者直接从某个地址pull 可以添加第二个新的origin应该 我之前fork别的库,然后自己改了master后又想merge别人最新版本的代码,就把原仓库的origin添加进来手动merge 只是 git remote 相关的 origin /upstream 设置
实操:
1、移除在线仓库:多余的fork(仅限今天新增的5个E类仓库) 2、检查本地仓库的remote 把origin 和upstream重新设置为 项目仓库地址
git remote -v git remote rm origin git remote add origin url git remote rm upstream git remote add upstream url
3、git pull url 从项目仓库拉取
4、本地仓库创建分支,并修改,然后提交到 项目仓库
git checkout -b branch-name 修改 git add somefile git commit -m "somenote" git push upstream branch-name
然后去在线项目仓库,检查分支与主干,并处理合并
本地仓库要离开该分支,则回到主干 git checkout master git merge branch-name git branch -d branch-name
或者从upstream更新 git pull upstream git merge upstream/master
总之,这种协作,所有开发自己要建分支,操作完毕后把分支提交推送。是不能直接在master修改的(我之前太习惯于master操作。)
下面这个文档非常棒。
分支的新建与合并 让我们来看一个简单的分支新建与分支合并的例子,实际工作中你可能会用到类似的工作流。 你将经历如下步骤:
开发某个网站。
为实现某个新的需求,创建一个分支。
在这个分支上开展工作。
正在此时,你突然接到一个电话说有个很严重的问题需要紧急修补。 你将按照如下方式来处理:
切换到你的线上分支(production branch)。
为这个紧急任务新建一个分支,并在其中修复它。
在测试通过之后,切换回线上分支,然后合并这个修补分支,最后将改动推送到线上分支。
切换回你最初工作的分支上,继续工作。
我一般的操作是: 1、在线fork源仓库,得到自己的在线仓库 2、 本地clone自己的在线仓库 3、本地编辑后推送到自己的在线仓库 4、从自己的在线仓库,向源仓库发起PR
我发现还有一种做法是:(前提是,有源仓库的编辑权限) 1、本地clone源仓库 2、本地编辑后向源仓库提交分支 3、源仓库决定合并主干/分支