如何使用提交sha在github上创建新分支

时间:2018-12-09 08:17:27

标签: git github

你好,我试图解决我的问题,但没有成功。 我在GitHub上创建了一个分支,并在其中删除了一个分支,但我知道自己提交的内容。我尝试使用我的sha创建新分支,但不能。 我尝试执行以下操作

git checkout && git branch - b SPP-69 47127ee98d8247d67f0f2baf3ae316444bc1ea9e
# and got reference is not a tree 47127ee98d8247d67f0f2baf3ae316444bc1ea9e

我尝试下一个

git checkout && git branch - b SPP-69 47127ee98d
# and got 47127ee98d is not a commit and a branch SPP-69 could not be created from it.

enter image description here enter image description here 我没有本地更新。

2 个答案:

答案 0 :(得分:0)

  

我可以创建一个分支,但是我对没有分支的提交却不这样做

这意味着它不再被任何分支或标签引用,因此默认情况下也不会被获取,即使是git fetch --all也是如此。

尝试并单击New Pull请求:应该创建一个PR branch that you can then fetch locally

git fetch origin pull/ID/head:BRANCHNAME
git checkout BRANCHNAME

用您要创建的分支的名称替换BRANCHNAME

答案 1 :(得分:-1)

好像您的计算机上没有本地提交。

# Grab the content from the server
git fetch --all --prune

# Now checkout the desired commit
git checkout -b <branch name> <SHA-1>

如何找出包含某个tee对象的提交?

您需要找到提交本身,然后将其检出。

检查日志中的提交,然后像执行操作一样checkout -b <SHA-1>

如果无法通过Github网站找到该脚本,请使用该脚本:

#! /bin/sh

# The tee sha-1 which you are searching for its parent
treeish=<your tree sha-1>

# The name of the branch to search in
branch=<branch names>

# loop over all the commits in the given branch
git rev-list $branch |

    # search the commits 
    while read commit_id; do
        if git ls-tree -d -r --full-tree $sha_id | grep $branch; 
           then echo " -- found at $commit_id"
        fi
    done

```