订购git提交

时间:2017-08-23 13:37:19

标签: git commit

我想知道如何在git(版本的优先级)上更改我的提交顺序,或者将提交定义为"默认"克隆?

For example, i've three commits for my git project :
-s0441254z5 | "new features in dev" (most recent)
-p44mo47877 | "ENDED project"
-g487er54ee | "First commit" (the oldest)

我会

-p44mo47877 | "ENDED project"
-s0441254z5 | "new features in dev" (most recent)
-g487er54ee | "First commit" (the oldest)

所以当有人做" git clone"在我的项目中,他获得了#34; ENDED项目"。 我知道我可以用另一种方式回答这个例子,使用--branches,但它只是一个例子来说明我的问题。 所以,对于这个你有什么想法?

3 个答案:

答案 0 :(得分:1)

您应该有一个分支,它保留在您希望克隆人员的提交中。

你可以通过在所有提交的分支上执行此操作,并说所需的提交是最新的提交(如在您的示例中)。

git checkout -b development # creates a new branch to be cloned
git reset --hard HEAD^  # resets the branch to the commit you want

然后,当人们克隆您的项目时,他们可以clone your project from a specific branch

git clone --branch development <URL>

你也可以,(而不是让devs用分支选项克隆项目)改变HEAD指向的分支。 Here是如何实现此目标的描述性示例。

我不明白为什么你会想要重新排序提交,因为克隆特定的提交会给你你正在寻找的行为。虽然,如评论中所述,您可以使用rebase to reorder your commits

答案 1 :(得分:1)

git rebase -i(或--interactive)正是为此而写的(以及更多......)。要更改最后3次提交的顺序,请运行

git rebase -i HEAD~3

编辑器将弹出说明,重新排序行,退出编辑器,然后让git完成剩下的工作。

答案 2 :(得分:0)

  

所以当有人对我的项目进行“git clone”时,他会得到“ENDED项目”。

为此,您在遥控器上的当前分支(已签出)应指向提交。在github,您可以通过选择另一个“默认”分支来更改它。