你好,我试图解决我的问题,但没有成功。 我在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.
答案 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>
您需要找到提交本身,然后将其检出。
检查日志中的提交,然后像执行操作一样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
```