git:无法挑选

时间:2017-01-08 11:35:07

标签: git cherry-pick

在尝试挑选时,我陷入了一个奇怪的循环中。这就是我的工作,以及问题所在。

我有两个分支:主线 temp 。我想从主线到临时选择一个特定的提交。我是这样做的。

  1. def main(): start = timer() result = [] search = input ("Please enter Dork String(<dork - no include inurl:> <extra-terms>):") pages = int(input ("how many URL's would you like?:")) pages = pages / 10 processes = int(input ("How many threads (<= 8):")) make_request = partial( google, search ) pagelist = [ str(x*10) for x in range( 0, int(pages) ) ] #Multithreads ?? with Pool(processes) as p: tmp = p.map(make_request, pagelist) for x in tmp: result.extend(x) result = list( set( result ) ) print ( *result, sep = '/n' ) #stats print ( '\nTotal URLs Scraped : %s ' % str( len( result ) ) ) print ( 'Script Execution Time : %s ' % ( timer() - start, ) )
  2. git checkout temp
  3. 现在,我得到:git cherry pick <commit sha>
  4. 我从2)重新运行命令,然后获取:Segmentation fault: 11

    =============================================== =====================

  5. 现在我运行Unable to create ...git/index.lock': File exists

  6. 再试一次rm -f ./.git/index.lock

  7. 现在我明白了:

    错误:以下未跟踪的工作树文件将被合并覆盖:     myfile.java

  8. ...对于一个甚至不存在的文件。之前我曾经使用它,但我将其重命名,因此该名称下的文件不在存储库中。

    1. 我运行git cherry pick <commit sha>,现在我在未跟踪文件下看到 myfile.java 文件。现在它甚至出现在编辑器中。我可以从编辑器中删除它,但不能从git存储库中删除它。我得到git status
    2. 好的,我从编辑器中删除了该文件,重新运行pathspec 'myfile.java' did not match any files,然后又回到 3)
    3. 这里发生了什么,我怎么才能做我的挑选? :d

2 个答案:

答案 0 :(得分:0)

我不知道你为什么会出现分段错误。我建议你确保使用最新的git版本。

樱桃选择的另一种方法是从提交中创建一个补丁并应用它:

git checkout temp
git format-patch -1 <commit sha>
git apply 0001.....patch

答案 1 :(得分:0)

升级到自制程序git 2.11.1为我解决了这个问题。

基于输出消息和this pull request上针对git-for-windows的对话,后来在上游提升,而mailing list thread由于某种原因显示refresh_cache_entry()的返回值为null导致分段错误(在我的情况下,我正在挑选的路径不存在于我所在的分支上)

这是我发生的事情:

$ git cherry-pick d4c26fc1
Segmentation fault: 11

$ git cherry-pick --abort
error: no cherry-pick or revert in progress
fatal: cherry-pick failed

$ rm .git/index.lock

$ brew upgrade git
Updating Homebrew...
...
==> Summary
  /usr/local/Cellar/git/2.11.1: 1,456 files, 32.4M

$ git cherry-pick d4c26fc1
error: addinfo_cache failed for path 'foo/bar/baz'
error: could not apply d4c26fc... Some commit subject
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'