Git:在推送前提交后创建新的分支

时间:2016-06-06 14:10:21

标签: git version-control

我想知道在我已经提交但未推送时是否以及如何创建新分支。

情景:

  1. 切换到主人
  2. 改变一些事情
  3. 提交更改
  4. 创建新分支而不是推送
  5. 基本上我被告知这是不可能的,并且必须在创建新分支之前推送。由于我做了两天的工作(比如10次提交)并得出结论我宁愿创建一个新的分支,而不是将这些更改推送到master(我希望之前进行额外的测试,因为更改变得比预期的更大)

    我是否需要保存所有mal文件,重新检查我开始使用的主版本,从中创建一个新分支并恢复我的更改并重新发送或者我可以创建一个我原先想到的新分支(所以我不在乎起初)?

4 个答案:

答案 0 :(得分:2)

  

基本上我被告知这是不可能的,并且必须在创建新分支之前推动。

绝对不是这样。您可以随时创建新分支。例如,在您提交更改后,您可以运行:

git checkout -b newbranch

这将根据当前提交创建一个名为newbranch的新分支。如果要在此操作中恢复master分支(即,您希望仅在新分支上进行更改,而不是在主分支上),则可以执行此操作:

# create a new branch, but don't switch to it
git branch newbranch

# Reset current (master) branch by discarding the most recent
# commit.
git reset --hard HEAD^

# Switch to new branch
git checkout newbranch

现在您可以将新分支推送到远程服务器。

答案 1 :(得分:0)

你可以做一个git branch new_branchname。默认起始位置为HEAD。如果您愿意,可以将其作为第二个参数添加到git branch

你现在所拥有的是新提交仍然存在于master,在我看来这不是最终意图。您需要revert甚至reset(因为它没有被推,这很好)。

答案 2 :(得分:0)

Create a branch with your latest commits:

 protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) {
        if (request == null)
            throw new ArgumentNullException("request");

        //Breakpoint is hit
        return base.SendAsync(request, cancellationToken);
    }

Reset your git branch newbranch r branch to the server state:

maste

Check out the git reset --hard origin/master :

newbranch

See more

答案 3 :(得分:0)

if not aList