Git 때문에 push 할 수 없으니까 살짝 적어주세요.

11010 단어 GitGitHub

일어나다



엄.
HEAD detached from origin/master
뭐가 나왔지만 무슨 말인지 모르니까 일단 무시해.
어?오른쪽 끝은 항상 나타나는데master, 지금은 sha1의 번호가 있는데...
하지만 지금은 그것보다 더 일찍 나간다git push.

인수하다



네.push 통과되지 않습니다.
좀 우물쭈물하니 해결의 실마리가 있는 것 같다.

돌리다


잘 모르겠지만 해봐요.
~/.emacs.d ❯❯❯ git reflog
1b97169 (HEAD) HEAD@{0}: commit (merge): mod
7d8e5fe HEAD@{1}: commit: mod
47361b3 (origin/master) HEAD@{2}: checkout: moving from 66f697eab8fc6f2e82f29b63
66f697e HEAD@{3}: commit (amend): fix
cfa08ff HEAD@{4}: commit: fix
85f5238 HEAD@{5}: commit: delete
47361b3 (origin/master) HEAD@{6}: checkout: moving from be561655e5307766c5a53284
be56165 HEAD@{7}: checkout: moving from bc06fe68c34b1f6003baedb608aab4d6fdb40dc8
bc06fe6 HEAD@{8}: checkout: moving from 8736c9838f9b4fcb1c1031197a2b9eebd2a2a2bd
8736c98 HEAD@{9}: merge origin/master: Merge made by the 'recursive' strategy.
43ba576 HEAD@{10}: commit (amend): fixed
47361b3 (origin/master) HEAD@{11}: commit (amend): fixed
ccf0fa3 HEAD@{12}: commit: fixed
bc06fe6 HEAD@{13}: checkout: moving from master to bc06fe6
5e08fde (master) HEAD@{14}: checkout: moving from bc06fe68c34b1f6003baedb608aab4
bc06fe6 HEAD@{15}: checkout: moving from be561655e5307766c5a53284721c5e16ca55da0
be56165 HEAD@{16}: checkout: moving from master to be56165
5e08fde (master) HEAD@{17}: checkout: moving from be561655e5307766c5a53284721c5e
be56165 HEAD@{18}: checkout: moving from b791e31898c80db7f4811f5f2981d64532c9e3f
b791e31 HEAD@{19}: checkout: moving from master to b791e31
5e08fde (master) HEAD@{20}: commit: add
bc06fe6 HEAD@{21}: commit: improve
be56165 HEAD@{22}: commit (amend): mod
b41820b HEAD@{23}: commit (amend): mod
왠지 git reflog 같은 게 나타나기 시작한 게 이상해.
그럼 이전checkout: moving from master to...으로 돌아갈까요?
아니오, 잠깐만요.5e08fde 있다 5e08fde, 왠지 다른 것도 많고...
신중을 기하기 위해서 우리는 이전master으로 돌아가자.
중요한 파일을 일시적으로 백업합니다bc06fe6.

오, 오른쪽 표시가 바뀌었다git reset!master~1 처음 사용하지만 왠지 효과가 있다고 생각한다.잘 모르겠지만!HEAD@{xx}도 나왔지만 이곳에 오면 방법이 있을 거예요.
도표를 꺼내 보세요.
/.emacs.d ❯❯❯ git gr
* 47361b3  (origin/master) 2018-08-11 hidsh fixed
| * 5e08fde  (master) 2018-08-11 hidsh add
|/
* bc06fe6  (HEAD) 2018-08-08 hidsh improve
* be56165  2018-08-07 hidsh mod
HEAD가 HEAD detached from origin/master로 돌아가기 전!
그렇군요. 5e08fde master~1 앞을 가리키는 건가요?
갈 수 있을 것 같아!
공제출, 일시master.
~/.emacs.d ❯❯❯ git commit -m 'ggg'
HEAD detached from origin/master
nothing to commit, working tree clean
~/.emacs.d ❯❯❯ git  fetch -f origin HEAD:master
From github.com:hidsh/.emacs.d
 + 5e08fde...47361b3            -> master  (forced update)
강행했지만 드디어 돌아왔나 fetch -f.
여기master에서 해보세요.

좋아요.
드디어 돌아왔다pull.
도표를 다시 꺼내 보겠습니다.
~/.emacs.d ❯❯❯ git gr
* 47361b3  (HEAD, origin/master, master) 2018-08-11 hidsh fixed
* bc06fe6  2018-08-08 hidsh improve
* be56165  2018-08-07 hidsh mod
갈 수 있을 것 같아.

돌리다


아이고, 드디어 방법이 있구나.
그럼 넣고 싶은 변경 사항을 넣으세요.
~/.emacs.d ❯❯❯ git c -m 'add'
[detached HEAD 0a2d7b0] add
 5 files changed, 341 insertions(+), 1 deletion(-)
 create mode 100644 ...
~/.emacs.d ❯❯❯ git s
HEAD detached from origin/master
nothing to commit, working tree clean
상투.또master.
물론 HEAD detached from origin/master도 맞을 것이다.
~/.emacs.d ❯❯❯ git push
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use

    git push origin HEAD:<name-of-remote-branch>
하지만 좀 알겠어요.
일단 push, checkout의 건의에 따라 지점을 절단해 보세요.
~/.emacs.d ❯❯❯ git co master 
Warning: you are leaving 1 commit behind, not connected to
any of your branches:

  0a2d7b0 add

If you want to keep it by creating a new branch, this may be a good time
to do so with:

 git branch <new-branch-name> 0a2d7b0

Switched to branch 'master'
Your branch is up to date with 'origin/master'.
~/.emacs.d ❯❯❯ git branch br_add_hoge
~/.emacs.d ❯❯❯ git gr
* 47361b3  (HEAD -> master, origin/master, br_add_hoge) 2018-08-11 hidsh fix
* bc06fe6  2018-08-08 hidsh improve
* 47361b3  (HEAD -> master, origin/master, br_hoge) 2018-08-11 hidsh fix
* bc06fe6  2018-08-08 hidsh improve
* be56165  2018-08-07 hidsh mod
  :
~/.emacs.d ❯❯❯ git branch
  br_add_hoge
* master
분기가 끊어졌기 때문에 전환git.
~/.emacs.d ❯❯❯ git b-sw br_add_hoge
Switched to branch 'br_add_hoge'
~/.emacs.d ❯❯❯ git b-push
fatal: The current branch br_add_hoge has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin br_add_hoge
아이고.그러면 여기도 push의 건의에 따라 입력하십시오.
~/.emacs.d ❯❯❯ git push --set-upstream origin br_add_hoge
Total 0 (delta 0), reused 0 (delta 0)
To github.com:hidsh/.emacs.d.git
 * [new branch]      br_add_hoge -> br_add_hoge
Branch 'br_add_hoge' set up to track remote branch 'br_add_hoge' from 'origin'.
이어gitpull.
~/.emacs.d ❯❯❯ git pull
Already up to date.
~/.emacs.d ❯❯❯ git push
br_add_hoge
Everything up-to-date
그래.이번에 통과했어.
여기서 push로 돌아가 지점master을 진행합니다.
~/.emacs.d ❯❯❯ git b-sw-master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
~/.emacs.d ❯❯❯ git merge br_add_hoge
Already up to date.
여기까지.
변경 사항을 다시 제출하십시오.
~/.emacs.d ❯❯❯ git add .
~/.emacs.d ❯❯❯ git c -m 'test commit'
[master f1870ae] test commit
 1 file changed, 1 insertion(+), 1 deletion(-)
~/.emacs.d ❯❯❯ git gr
* f1870ae  (HEAD -> master) 2018-08-11 hidsh test commit
* 47361b3  (origin/master, origin/br_add_hoge, br_add_hoge) 2018-08-11 hidsh fix
* bc06fe6  2018-08-08 hidsh improve
* be56165  2018-08-07 hidsh mod
그래, 그래.
그렇다면 이번에는 꼭 소원을 이루겠다merge.괜찮아요?

너무 좋아요!
응, 이번에는 끝이야.
마지막으로 지점을 꺼라.
~/.emacs.d ❯❯❯ git branch -d br_add_hoge
Deleted branch br_add_hoge (was 47361b3).

결과


응, 바로 그거야.
눈치챘을 때 이미 안 좋은 일이 일어났고, 그 후에는 복잡해질 수 있다.
우란분절과 장난치는 날이 계속되고 있다.

참고 자료


gitpush가 불가능할 때의 대처법
git의 내부 구조에서 detached HEAD에서 탈출하는 방법을 찾다
Git 개념 정리 시도 push  
이번에는 GitHub의 git식 자료 라이브러리라서 가볍게 시도해 봤는데, 이게 회사 안이라면...
alias.s=status  
실제로 .emacs.d 실패했고, alias.gr=log --graph --date-order --all --pretty=format:'%h %Cred%d %Cgreen%ad %Cblue%cn %Creset%s' --date=short 더하지도 않고 git pull 실패했다. 
git fetch  
-f  
alias.c=commit  
alias.co=checkout  
alias.b-sw=checkout  
아뇨, 아뇨, 이번엔 눈치챘지만 그래도 통과하고 싶어요? 

좋은 웹페이지 즐겨찾기