... 나는 직관적으로 내 작업 복사본을 은닉, 따라서 당신은 할 수 없습니다 : 당신은 말했다 git stash
사용
당신은 충돌을 해결해야 감춰 실제로 일어날 수 있도록. 힘내는 물론, 당신이 그들을 해결하는 방법을 상관하지 않는다 :
$ cat README
We put a dummy README file into the base,
to get an initial commit.
<<<<<<< HEAD
conflicting b2 change
||||||| merged common ancestors
=======
conflicting change in b1
>>>>>>> b1
$ git add README # Yuck! "resolve" conflicts by leaving markers
$ git status --short
M README
A file1
$ git stash
Saved working directory and index state WIP on b2: c548973 b2-readme
HEAD is now at c548973 b2-readme
을이 오히려 내 바보 예보다, 갈등과 재치있는 뭔가를하고있는 동안 - 아마도 무슨 짓을했는지 경우 여기에 - 그리고 당신은 이런 짓을 :
$ git stash pop # NB: better to "git stash apply" really
On branch b2
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: file1
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: README
Dropped refs/[email protected]{0} (8a947fcd34b3259fbb2fbf667bc0b99cc139a88c)
당신은 일종의 문제지만 너무 많지는 않습니다. 문제는 이제 색인 및 작업 트리에 성공한 (성공한 경우) git stash
상태를 가지고 있지만 병합 상태 파일 (.git/MERGE_HEAD
및)을 잃어버린 것입니다.
참고 : 우리는 2 개의 다른 repos에서 작업 중이며 때때로 서로 병합해야하기 때문에 옵션을 그대로 사용하는 것은 옵션이 아닙니다.
커밋은 실패와 마찬가지로 always an option입니다! 이 경우, 예를 들어, 트릭은 지금 결과를 커밋하고 돌아가서 병합을 다시 시작하는 것입니다. 때문에 망할 놈에 지사의 혼란 성격의
, 그것은 더 이상 이를 저지 포함하지 b2
지금이 권리를 위탁하고 b2
(이름을)하는 것이 가능합니다. 그러나 새로운 지점 이름을 먼저 만드는 것이 쉽거나 더 쉽고 분명히 덜 혼란 스럽습니다. 그렇다면 b2
이 아닌 커밋을 할 수 있습니다.
$ git checkout -b save-merge-result
M README
A file1
Switched to a new branch 'save-merge-result'
# NOTE: use "git status" (not shown here) to see what you
# still need to "git add" (which is `README` in my case)
$ git add README
$ git commit -m 'save merge result on temp branch'
[save-merge-result f8b2251] save merge result on temp branch
Date: Tue Oct 18 05:58:14 2016 -0700
2 files changed, 20 insertions(+)
create mode 100644 file1
이제 다시 b2
에 가서 물론 다시 충돌로 실패합니다 git merge
을 다시 할 수 있습니다
$ git checkout b1
Switched to branch 'b1'
$ git merge b2
Auto-merging README
CONFLICT (content): Merge conflict in README
Automatic merge failed; fix conflicts and then commit the result.
1
지금 임시 병합의 결과를 추출 할 수 있습니다. 예를 들어 : $ git checkout save-merge-result -- .
$ git status
On branch b1
All conflicts fixed but you are still merging.
(use "git commit" to conclude merge)
Changes to be committed:
modified: README
new file: file2
이 시점에서 당신은 수정하고 필요에 따라 git add
파일은 더/원했다.
당신이 만든 은닉에 git pop
을 아직하지 않았다면, git stash branch
을 사용하여 은닉을 고유 한 가지로 모두 변환 할 수 있습니다. git stash save
이 단순히 커밋을 수행하기 때문에, 은 git stash
을 사용하려면이 필요합니다. 그냥 분기를 만들고 커밋하십시오. 그 모든 git stash
않는 분기 이름 대신 stash
, 이름으로 기억되는 커밋됩니다.
(덧붙여, 지점 stash
의 이름을 지정하고 git stash
사용을 시작하지 않습니다. 힘내이 어떤 문제가되지 않습니다,하지만 당신은 자신
죄송합니다. 그것은 합산하지 않습니다. 나는 정교화 할 것이다 : 나는 모든 갈등을 IDE에서 하나씩 해결했지만, 나는 아직 모든 변화를 저지른 적이 없다. 자, 내가 그 시점에 그것을 숨겨 두지 않았다면, 나는 PR을 만들고 다른 repo에서 오는 github에서 많은 새로운 커밋을 보았습니다. 그러나 나는 내 일을 감추었 기 때문에 지금은 한 커밋 만 볼 수 있습니다. 나는 다른 레포에서 체크섬을 잃어 버리고 다음 머지에서 많은 충돌에 직면 할 것이기 때문에 나는 그것을 병합 할 수 없다. – yuranos87
아, 그동안 IDE가 있습니다. 아마 명령 행에 직접 들어가거나 방해가 될 수있는 방법이 있거나 최소한 명령 행에서 할 수있는 일을하는 방법이있을 것입니다. 이 경우 필요에 따라 이들을 조합하여 다른 분기를 커밋하고 병합을 다시 시작하십시오. – torek