从现有分支的历史记录创建分支并推送到原始分支而不合并

时间:2015-04-13 08:44:32

标签: git version-control

我有一个分支dev提前30次提交。我还不想推送这些提交,因为它们是尚未完成的功能的一部分。

我现在需要对代码库中的另一个文件进行一个小的,无关的更改,并将该更改推送到dev分支。

我无法在这里弄清楚正确的流程。

在我脑海中,我想象如下:

  1. 创建远程dev-feature-1分支的分支dev(没有我的30次提交)。
  2. 制作并提交对此dev-feature-1分支的更改。
  3. dev-feature-1分支明确推送到dev分支。
  4. 我不确定上述3点的命令是什么。

2 个答案:

答案 0 :(得分:1)

首先,您可以使用任何其他名称在git中推送分支。因此,您应该使用以下内容推送dev分支以保存您的工作。

git push origin dev:dev_Cristian

这将在原始仓库上创建一个新分支dev_Cristian。或者,您可以在本地创建新分支并开始处理它。

此外,在我看来,您一直在dev分支机构工作,这在开发人员中很常见。这不是推荐的做法。理想情况下,您应该使用git branch dev_feature --track origin/dev创建一个新分支,并将此分支dev_feature连续反对origin/dev,以便引入其他开发人员所做的更改。


转到原始问题,您可以创建一个新分支并使用以下方法将其推送到原点:

git branch dev-feature-1 --track origin/dev
... # make your changes
git add filenames && git commit -m "msg"
git push origin dev-feature-1

答案 1 :(得分:1)

我不认为在共享分支上开发一个大功能(超过2次提交)是个好主意。我建议您分配您自己的本地分支进行开发,并在完成后将其合并到您的共享分支(dev中)。

在你的情况下,我建议:

git co -b 'dev_my_big_feature'
git co dev
git reset --hard origin/dev

在您dev上的大型功能项目dev_my_big_feature上处理小补丁,只有在它准备就绪时才会合并到dev