如何使用提交的SHA-1哈希值在GitHub上创建一个新分支

a64a0gku  于 2023-05-21  发布在  Git
关注(0)|答案(2)|浏览(213)

我试图解决我的问题,但我没有任何成功。
我在GitHub上创建了一个分支,并在那里提交了一个。之后,我删除了一个分支,但我知道我的提交的SHA-1哈希值。我尝试使用我的SHA-1哈希值创建一个新的分支,但我不能。
我尝试做以下事情:

git checkout && git branch - b SPP-69 47127ee98d8247d67f0f2baf3ae316444bc1ea9e
# And got a 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.

我没有任何本地reflog。

icomxhvb

icomxhvb1#

我可以创建一个分支,但是我不能用没有分支的提交来做
这意味着它不再被任何分支或标记引用,因此默认情况下不会被提取,即使是git fetch --all
尝试并点击New Pull request:这将创建一个PR branch that you can then fetch locally

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

BRANCHNAME替换为要创建的分支的名称。

ibrsph3r

ibrsph3r2#

看起来你的机器上没有这个本地提交。

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

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

如何找到包含某个tee对象的commit?

您需要找到提交本身,然后检查它。
检查日志中的提交,然后像您所做的那样执行checkout -b <SHA-1>
如果你在Github网页界面找不到,可以使用这个脚本:

#! /bin/sh

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

# 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

相关问题