我一直在使用
Git开展一些项目,并希望改善我的工作流程.我想知道在团队中工作时保持差异的好方法.例如,我想添加一些适合我并在使用它们时工作的调试实用程序,但不希望将这些更改引入团队(远程)存储库.使用我自己的配置文件等同样如此.
我考虑过在另一个分支上工作,但在这种情况下,每次我将自己的分支合并到主分支中时,我将不得不撤消我的“个人”更改.
还有更好的方法吗?
编辑:
所以,在用Git嘲笑之后我能够想出这个:
从我的’主’分支,我输入
git checkout -b local
然后我在那里做了一些改变.我首先对我的配置文件进行了更改,我希望它是独占的,然后完成推送到远程仓库的工作.所以,我在开始时有一个独占提交,然后是我将推送到远程仓库的提交.然后我检查了我的主分支,并在一段时间后拉入最新的代码.
git checkout master
git pull
一段时间后再次检查我当地的分公司.然后我从那里检查了另一个分支
git checkout -b commit-work
然后
git rebase --onto master commit-work~3
其中commit-work~3引用了我想要推送的最后一次提交.
然后我将这个分支合并到我的主分支中,我就完成了!
但是,我仍然希望有一个分支,我可以重新开始工作.目前,当我查看我的本地时,我有我所做的提交,但我无法弄清楚如何引入对主人所做的更改.希望有人可以帮忙.
编辑2:
所以,我自己已经回答了这个问题,但我觉得它仍然可以得到很好的改善.这种方法的问题是,首先我需要分别为主分支和本地分支引入更改.在这里处理这个问题的最佳方法是什么?此外,这种方法可以正常工作,如果一个人创建’私有’提交和正常提交在不同的组中.以何种方式可以处理所有提交都被无序化的情况.
编辑3:
看起来我现在有一个令人满意的工作流程.但如果可以,请提出任何改进建议.
最佳答案 所以在经过一番讨论后,我已经解决了这个工作流程.
从主分支(具有原始/远程配置的分支),让我们说它是主分支,做
git checkout -b local
这将创建一个新的分支,名称为local,checkout相同.
然后,可以在那里进行一些个人更改并对其进行提交.
现在让我们说一个人已经在这个分支上进行了两次提交,这些提交不会被推到上游(E& F),其次是另外三个必须是(G,H& I)的提交,如下图所示:
A – B – C – D [主]
\
E - F - G - H - I [local]
现在需要签出主分支
git checkout master
然后干脆做
git rebase --onto master F local
可以推断,git rebase命令的第一个参数是您希望最终提交所有提交的分支,在本例中是主分支.第二个参数是最后一次提交,您希望保留给自己的代码库,而最后一个参数是提交的引用,需要将更改推送到上游. local在这里指的是本地分支中的最后一次提交.
这样,可以从主分支推送提交.然后,为了完成任何工作,请检查本地分支,从远程引入更改,然后迭代该过程.
此外,使用–rebase选项引入也将确保私有提交保留在分支的顶部.
编辑:
看起来我终于得到了答案.我可以轻松地继续在我的个人分支上工作,推到遥控器然后拉进我的主分支,
要继续在个人分支机构工作,首先要做
git push
git pull
git co local
然后简单地重新定位本地分支,
git rebase master
这必须做好工作.