Web プログラミング

【もりけん塾79記事】Git|誤操作によってmasterが2つあるなどのミス

フロントエンドエンジニアを目指している、まゆ(@Ymayu_it)です。

 

Gitをしていてsource treeによってmasterが2つ存在するというミスをおかしてしまいました。

 

そのため昨日Gitの操作をもりけん先生に教わり、不明なコマンドを調べたので記事にしていきます。

 

(理解できていないところがあるので、間違っている箇所があればご指摘いたけると嬉しいです…!)

masterが2つある

 

上記の画像グラフですが

  • 3つの赤のmasterが孤立している
  • 青のmasterと赤のmasterでmasterが2つあり開始位置も違う

ことから修正が必要になるとのことでした。

 

修正した結果です。

 

tmp2を作成できているはずだったのですが、できていなかったので現状です。(コマンド入力ミスかな…)

 

まだ青と赤がつながっていないので、ここでつなげるようにtmp2を作成するのかな?

 

(知らないコマンドやGitの全貌がわかっていませんが、つなげるためにしている操作だと認識しています。)

 

実際のコマンドは次で紹介していきます。

もりけん先生のGit指導|コマンド

実際のコマンドの内容です。

 

 command
yamadamayu@mba ~ % pwd
yamadamayu@mba ポートフォリオ % cd portofolio01
[core]
cd: no such file or directory: portofolio01
yamadamayu@mba ポートフォリオ % cd portfolio01
yamadamayu@mba portfolio01 % git commit -m "message"
[tmp 456f227] message
2 files changed, 11 insertions(+), 12 deletions(-)
yamadamayu@mba portfolio01 % git push origin HEAD
Username for 'https://github.com': git push origin head
Password for 'https://git push origin head@github.com':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/Ymayuit/portfolio01.git/'
yamadamayu@mba portfolio01 % git push origin head
Username for 'https://github.com': Ymayuit
Password for 'https://Ymayuit@github.com':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/Ymayuit/portfolio01.git/'
yamadamayu@mba portfolio01 % git remote -v
origin https://github.com/Ymayuit/portfolio01.git (fetch)
origin https://github.com/Ymayuit/portfolio01.git (push)
yamadamayu@mba portfolio01 % git push origin head
Username for 'https://github.com': Ymayu_it
Password for 'https://Ymayu_it@github.com':
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/Ymayuit/portfolio01.git/'
yamadamayu@mba portfolio01 % vim .git/config
yamadamayu@mba portfolio01 % cat .git/config
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "origin"]
url = git@github.com:Ymayuit/portfolio01.git
fetch = +refs/heads/*:refs/remotes/origin/*
yamadamayu@mba portfolio01 % git push origin head
Enumerating objects: 27, done.
Counting objects: 100% (27/27), done.
Delta compression using up to 4 threads
Compressing objects: 100% (27/27), done.
Writing objects: 100% (27/27), 164.33 KiB | 2.99 MiB/s, done.
Total 27 (delta 6), reused 0 (delta 0)
remote: Resolving deltas: 100% (6/6), done.
remote:
remote: Create a pull request for 'tmp' on GitHub by visiting:
remote: https://github.com/Ymayuit/portfolio01/pull/new/tmp
remote:
To github.com:Ymayuit/portfolio01.git
* [new branch] head -> tmp
yamadamayu@mba portfolio01 % git branch -D master
Deleted branch master (was 111b768).
yamadamayu@mba portfolio01 % git checkout master
Branch 'master' set up to track remote branch 'master' from 'origin'.
Switched to a new branch 'master'
yamadamayu@mba portfolio01 % git log --graph --pretty=oneline
* 0efb96de684b547736f63432ad092eb759102de9 (HEAD -> master, origin/master) Update style.css
* 63a70373616da36d189656ba10a99265c5f9da15 Update index.html
* fa30a69e189eb929e38d44d12d49c824552079ea Merge pull request #2 from Ymayuit/Ymayuit-patch-1
|\
| * 8fc32b80a5b2d6388043ea2b36ee2425b0d1f2b9 (origin/Ymayuit-patch-1) Update index.html
|/
* 6636524f2a4563c7090bdbb0f33c832f9a605335 Update index.html
* f94d15ec06d84168c172a60046a056158b1af071 Update style.css
* 330337a35bd076170adae5183f136cb36f8ddf16 initial commit
yamadamayu@mba portfolio01 % git relog
git: 'relog' is not a git command. See 'git --help'.
The most similar command is
reflog
yamadamayu@mba portfolio01 % git merge tmp
fatal: refusing to merge unrelated histories
yamadamayu@mba portfolio01 % git checkout tmp
Switched to branch 'tmp'
yamadamayu@mba portfolio01 % git log
commit 456f227e3d95c2f327cd1186079dd599e64d262b (HEAD -> tmp, origin/tmp)
Author: mayu <ma.w.yu18@gmail.com>
Date: Sat Oct 10 22:30:36 2020 +0900
message
commit 111b76879a77414d5ee49245127bc5e7f20f7cf3
Author: mayu <ma.w.yu18@gmail.com>
Date: Fri Oct 9 11:28:19 2020 +0900
変更部分は
・nav
・main-text
・hoverの位置
です。
再度<!DOCTYPE>が始まっている件ですがコードには記載がありませんでした。
プルしたときか何かで生じたのでしょうか…?
commit 4648dfe28d06c45dfee54fe77d8d6ddf6e14e23e
Author: mayu <ma.w.yu18@gmail.com>
Date: Thu Oct 8 14:33:25 2020 +0900
コメントいただいた、
・nav1とnav2
yamadamayu@mba portfolio01 % git checkout tmp
Already on 'tmp'
yamadamayu@mba portfolio01 % git checkout tmp2
error: pathspec 'tmp2' did not match any file(s) known to git
yamadamayu@mba portfolio01 % git cherry-pick 4648dfe28d06c45dfee54fe77d8d6ddf6e14e23e
error: could not apply 4648dfe... コメントいただいた、
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'
yamadamayu@mba portfolio01 % git status
On branch tmp
You are currently cherry-picking commit 4648dfe.
(fix conflicts and run "git cherry-pick --continue")
(use "git cherry-pick --abort" to cancel the cherry-pick operation)
Unmerged paths:
(use "git add <file>..." to mark resolution)
both modified: css/style.css
both modified: index.html
no changes added to commit (use "git add" and/or "git commit -a")
yamadamayu@mba portfolio01 % git add.
git: 'add.' is not a git command. See 'git --help'.
The most similar command is
add
yamadamayu@mba portfolio01 % git add .
yamadamayu@mba portfolio01 % git commit
On branch tmp
You are currently cherry-picking commit 4648dfe.
nothing to commit, working tree clean
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git cherry-pick --skip'
yamadamayu@mba portfolio01 % git commit -m "message"
On branch tmp
You are currently cherry-picking commit 4648dfe.
nothing to commit, working tree clean
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git cherry-pick --skip'
yamadamayu@mba portfolio01 % git status
On branch tmp
You are currently cherry-picking commit 4648dfe.
(all conflicts fixed: run "git cherry-pick --continue")
(use "git cherry-pick --abort" to cancel the cherry-pick operation)
nothing to commit, working tree clean
yamadamayu@mba portfolio01 % git log
commit 456f227e3d95c2f327cd1186079dd599e64d262b (HEAD -> tmp, origin/tmp)
Author: mayu <ma.w.yu18@gmail.com>
Date: Sat Oct 10 22:30:36 2020 +0900
message
commit 111b76879a77414d5ee49245127bc5e7f20f7cf3
Author: mayu <ma.w.yu18@gmail.com>
Date: Fri Oct 9 11:28:19 2020 +0900
変更部分は
・nav
・main-text
・hoverの位置
です。
再度<!DOCTYPE>が始まっている件ですがコードには記載がありませんでした。
プルしたときか何かで生じたのでしょうか…?
commit 4648dfe28d06c45dfee54fe77d8d6ddf6e14e23e
Author: mayu <ma.w.yu18@gmail.com>
Date: Thu Oct 8 14:33:25 2020 +0900
コメントいただいた、
・nav1とnav2
・htmlにstyle
・text1と2
の修正をしました!
yamadamayu@mba portfolio01 % git cherry-pick 111b76879a77414d5ee49245127bc5e7f20f7cf3
error: could not apply 111b768... 変更部分は
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'
yamadamayu@mba portfolio01 % git add .
yamadamayu@mba portfolio01 % git commit
On branch tmp
You are currently cherry-picking commit 111b768.
nothing to commit, working tree clean
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git cherry-pick --skip'
yamadamayu@mba portfolio01 % git cherry-pick 456f227e3d95c2f327cd1186079dd599e64d262b
On branch tmp
You are currently cherry-picking commit 456f227.
nothing to commit, working tree clean
The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:
git commit --allow-empty
Otherwise, please use 'git cherry-pick --skip'
yamadamayu@mba portfolio01 % git push origin head
Everything up-to-date
yamadamayu@mba portfolio01 % git branch
master
* tmp
yamadamayu@mba portfolio01 % git log
commit 456f227e3d95c2f327cd1186079dd599e64d262b (HEAD -> tmp, origin/tmp)
Author: mayu <ma.w.yu18@gmail.com>
Date: Sat Oct 10 22:30:36 2020 +0900
message
commit 111b76879a77414d5ee49245127bc5e7f20f7cf3
Author: mayu <ma.w.yu18@gmail.com>
Date: Fri Oct 9 11:28:19 2020 +0900
変更部分は
・nav
・main-text
・hoverの位置
です。
再度<!DOCTYPE>が始まっている件ですがコードには記載がありませんでした。
プルしたときか何かで生じたのでしょうか…?
commit 4648dfe28d06c45dfee54fe77d8d6ddf6e14e23e
Author: mayu <ma.w.yu18@gmail.com>
Date: Thu Oct 8 14:33:25 2020 +0900
コメントいただいた、
・nav1とnav2
・htmlにstyle
・text1と2
の修正をしました!
yamadamayu@mba portfolio01 % git branch
master
* tmp
yamadamayu@mba portfolio01 % git log --graph --pretty=oneline
* 456f227e3d95c2f327cd1186079dd599e64d262b (HEAD -> tmp, origin/tmp) message
* 111b76879a77414d5ee49245127bc5e7f20f7cf3 変更部分は ・nav ・main-text ・hoverの位置 です。
再度<!DOCTYPE>が始まっている件ですがコードには記載がありませんでした。 プルしたときか何かで生
じたのでしょうか…?
* 4648dfe28d06c45dfee54fe77d8d6ddf6e14e23e コメントいただいた、 ・nav1とnav2 ・htmlにstyle ・text1と2 の修正をしました!
* ef77dd807da3b26d8aa0a32e639343ddc4516d04 練習
yamadamayu@mba portfolio01 % git log --graph --pretty=oneline
* 456f227e3d95c2f327cd1186079dd599e64d262b (HEAD -> tmp, origin/tmp) message
* 111b76879a77414d5ee49245127bc5e7f20f7cf3 変更部分は ・nav ・main-text ・hoverの位置 です。
再度<!DOCTYPE>が始まっている件ですがコードには記載がありませんでした。 プルしたときか何かで生
じたのでしょうか…?
* 4648dfe28d06c45dfee54fe77d8d6ddf6e14e23e コメントいただいた、 ・nav1とnav2 ・htmlにstyle ・text1と2 の修正をしました!
* ef77dd807da3b26d8aa0a32e639343ddc4516d04 練習
yamadamayu@mba portfolio01 % git checkout
warning: cancelling a cherry picking in progress
yamadamayu@mba portfolio01 % git checkout master
Switched to branch 'master'
Your branch is up to date with 'origin/master'.
yamadamayu@mba portfolio01 % git log
commit 0efb96de684b547736f63432ad092eb759102de9 (HEAD -> master, origin/master)
Author: MayuYamada <45751528+Ymayuit@users.noreply.github.com>
Date: Fri Oct 9 13:44:29 2020 +0900
Update style.css
commit 63a70373616da36d189656ba10a99265c5f9da15
Author: MayuYamada <45751528+Ymayuit@users.noreply.github.com>
Date: Fri Oct 9 13:43:28 2020 +0900
Update index.html
commit fa30a69e189eb929e38d44d12d49c824552079ea
Merge: 6636524 8fc32b8
Author: MayuYamada <45751528+Ymayuit@users.noreply.github.com>
Date: Fri Oct 9 11:31:50 2020 +0900
Merge pull request #2 from Ymayuit/Ymayuit-patch-1
Update index.html
commit 8fc32b80a5b2d6388043ea2b36ee2425b0d1f2b9 (origin/Ymayuit-patch-1)
Author: MayuYamada <45751528+Ymayuit@users.noreply.github.com>
Date: Thu Oct 8 15:30:14 2020 +0900
Update index.html
commit 6636524f2a4563c7090bdbb0f33c832f9a605335
yamadamayu@mba portfolio01 % git history
git: 'history' is not a git command. See 'git --help'.
yamadamayu@mba portfolio01 % git reflog
0efb96d (HEAD -> master, origin/master) HEAD@{0}: checkout: moving from tmp to master
456f227 (origin/tmp, tmp) HEAD@{1}: checkout: moving from tmp to tmp
456f227 (origin/tmp, tmp) HEAD@{2}: checkout: moving from master to tmp
0efb96d (HEAD -> master, origin/master) HEAD@{3}: checkout: moving from tmp to master
456f227 (origin/tmp, tmp) HEAD@{4}: commit: message
111b768 HEAD@{5}: checkout: moving from master to tmp
111b768 HEAD@{6}: commit: 変更部分は
4648dfe HEAD@{7}: commit: コメントいただいた、
ef77dd8 HEAD@{8}: commit (initial): 練習
yamadamayu@mba portfolio01 % git branch

 

知らないコマンドなどは調べて上から順番にまとめていきました。

コマンド

調べたコマンドたち。

pwdで今作業しているところを知る。

 

cdでファイルへ移動しportofolio01へ移動。

 

メッセージを記載してcommit。

 

git push origin headでコミットの一番新しいものに。

ここでgit push origin HEADだと違った内容がでてきたので、小文字のheadにすることを知りました。

メモ

大文字と小文字でコマンドが違う。

 

git remote -vはURLも含む一覧表示によってfetchとpushが表示。

 

git push origin headでコミットの一番新しいものへ。

git branch -D masterは指定されたブランチを強制削除。

 

git checkout masterはmasterブランチ移動。

 

git log --graph --pretty=onelineは現在のブランチのバージョン履歴を一覧で表示し?

git merge tmpはtmpブランチのコミットを現ブランチ(master)に統合

 

git checkout tmpは指定されたブランチに切り替えて作業ディレクトリを更新する

 

git logで現在のバージョン履歴を一覧で表示

 

git checkout tmpは指定されたブランチに切り替えて作業ディレクトリを更新する

 

git checkout tmp2がなかった

 

git cherry-pickは本来のブランチにそのコミットを取り込むことができる

 

ここでvscodeへいき修正(コンフリクト)

 

git statusは前回のコミットと比較した変更内容を表示する。

 

git add .はカレントディレクトリ(今の)以下の変更があったすべてのファイルがaddされる

 

git commitでローカルディレクトリにあげる

 

git commit -m "message"

 

git statusはコミット可能なすべての新規または変更のあるファイルを一覧で表示します

 

git logは現在のブランチのバージョン履歴を一覧で表示します

 

git cherry-pickで本来のブランチに切り替えて作業ディレクトリを更新

 

ここでvscodeへ言って修正(コンフリクト)

 

git push origin headでコミットの一番新しいものに

 

git branchは現在のリポジトリ上のすべてのローカルブランチを一覧で表示します

 

git logバージョン履歴を表示

 

git branchは現在のリポジトリ上のすべてのローカルブランチを一覧で表示

 

git log --graph --pretty=onelineは?

 

git checkoutは指定されたブランチに切り替え、作業ディレクトリを更新します

 

git checkout masterはカレントブランチを指定されたブランチに切り替えます。

 

git logはバージョン履歴を表示

 

reflogはコミットやresetcherry-pickrebaseなどの履歴が確認できる

参考:note.nkmk.megit logを見やすくしたい!git logのオプションと綺麗にツリー表示するためのエイリアス初心者に送るLinuxチートシートGitチートシートいまさらだけどGitを基本から分かりやすくまとめてみたエンジニアのためのチートシートGit初心者に捧ぐ!Gitの「これなんで?」を解説します。

 

ここまで。

おわりに

頭がごちゃごちゃなので今日は全然進まなかったなぁ。

PCを見すぎて夜も全然眠れていなかったので今日は脳を休めることにして、一度整理。

パンク〜><今日は楽しめていないから楽しめるようにアレコレ考えずにコマンド打って試すように明日はしよう。

もりけん塾(@terrace_tech

Thanks:もりけんさん

 

もりけんさんの『武骨日記』へ

 

-Web, プログラミング

© 2020 Mayu_Yamada