我和其他开发人员一起在一个项目上使用Git几个月了.我有几年的SVN经验,所以我想我给这段关系带来了很多包袱.
我听说Git非常适合分支和合并,到目前为止,我只是没有看到它.当然,分支很简单,但是当我尝试合并时,一切都变得很糟糕.现在,我已经习惯了SVN,但在我看来,我只是将一个低于标准的版本系统换成了另一个.
我的搭档告诉我,我的问题源于我不顾一切地合并,并且我应该在很多情况下使用rebase而不是合并.例如,这是他所规定的工作流程:
clone the remote repository
git checkout -b my_new_feature
..work and commit some stuff
git rebase master
..work and commit some stuff
git rebase master
..finish the feature
git checkout master
git merge my_new_feature
Run Code Online (Sandbox Code Playgroud)
基本上,创建一个功能分支,始终从主分支到分支,并从分支合并回主分支.需要注意的重要一点是,分支始终保持在本地.
这是我开始的工作流程
clone remote repository
create my_new_feature branch on remote repository
git checkout -b --track my_new_feature origin/my_new_feature
..work, commit, push to origin/my_new_feature
git merge master (to get some changes that my partner added)
..work, commit, push to origin/my_new_feature
git merge master
..finish …Run Code Online (Sandbox Code Playgroud) 我在Github上分叉了一个存储库.我做了一些小改动并向上游提交了拉取请求,但是在我的分叉已经变得如此糟糕的情况下,我无法生成干净的拉取请求; 当我从一个分支机构开始一个有六个更改的拉取请求时,Github想要提交十三个,其中七个已经存在于上游(natch).
我的问题似乎只与拉动最新的提交有关,但是当我创建一个新的分支和樱桃选择提交时,我仍然有额外的.我futzed与基础重建为好,但现在看起来,即使我的主人是那么糟糕,我不能生成的原始副本上游.这显然是因为我不明白我需要改变而不是合并,所以显然我犯了错误; 我想要做的是弄清楚如何解开那个结并回到一个干净的状态,我可以有效地前进.
我有点想把我的叉子吹走,然后在上游做一个新的叉子,但我也认为这很困难.
承认我的Git罪后,我如何获得github赦免?