我使用sourceTree for Mac作为我的GUI所以我很感激使用它的说明,但显然我想学习bash命令作为我的第一语言。
我们有一个远程仓库,我们称之为develop
,当您开发功能时,您可以从develop
为该功能创建分支,例如feature1
,拉它关闭,然后在你创建的分支上提交拉取请求。
我最近开发了一些分析工具,我不想把它放到远程代码库中(但无论如何)。
我如何在本地将我的analysis
分支与我的feature1
分支合并进行测试,然后在我完成后取消合并analysis
?
我合并时应该检查哪个分支feature1
或analysis
?
注意:我希望在合并分支时保留对feature1
所做的所有文件更改;来自analysis
的文件和编辑极不可能与我的功能分支冲突,所以基本上我添加了一些非冲突的代码,然后将分支拉出来;所以我对feature1
所做的任何承诺,我都不想失去。
答案 0 :(得分:0)
要取消合并分支,您可以简单地git revert
合并提交,如下所示:
git checkout feature_branch
git revert -m 1 <merge_commit_sha>
您可能会遇到一些必须手动取消合并的冲突,就像正常合并时一样。
答案 1 :(得分:0)
我建议您将分析工具作为单独的代码在其自己的源代码控制下进行处理,并且永远不要将其合并到您的功能分支。将它保存在具有自己的git repo的文件夹中,并保存在更高级别的repo中的.gitignore下。
我是否理解:
如果是这样的话:
git filter-branch
解决,但我认为它用蒸汽滚筒碾碎了一只苍蝇。不值得。)在项目中创建一个特殊文件夹,并将其放在.gitignore
:
/analysis/*
如果你正在使用Maven或其他暗示严格结构政策的工具,这可能是/../../../../../analysis
,但这没有区别。
将所有与分析相关的代码放在该文件夹中。在那里启动一个单独的repo并在开发工具时进行提交。
像以前一样使用功能分支。您现在唯一更改的文件是.gitignore。在推送到遥控器之前,请执行以下操作:
git checkout <sha-of-branching-time-commit> -- .gitignore
git commit -m'fixed .gitignore'
这会将master-repo .gitignore
返回到初始状态。您可能希望为将来的特色分支备份修改过的gitignore。
或者,您可以与您的团队达成协议,以指定&#34;这是我的代码,我不会分享它&#34;夹。然后可以将其添加到公共.gitignore