- 投稿日:2020-09-15T23:32:34+09:00
【Git】ローカルリポジトリかどうか見分けるには
1. ローカルで「隠しファイルを表示」の設定にする(Windowsの場合、エクスプローラー左上の「表示」→「オプション」→「表示」→「詳細設定」から設定できる)。
- 投稿日:2020-09-15T22:50:43+09:00
git diffコマンドは何をしているのか?便利なオプションを含めたまとめ
git diffコマンドは何をしているのか?便利なオプション含む
gitコマンドの中でもよく使われる、git diffについてのまとめ。
diffはdifferenceの略で、その名の通り違い(差分)を表示するコマンド。
引数の有無や何を指定するかで、比較する対象が変わるので注意が必要。
自分が何を比較した差分を見ているのかを理解しておく必要がある。
目次
- ステージ(インデックス) vs 作業ツリー
- 指定コミット vs 作業ツリー
- 指定コミット vs ステージ(インデックス)
- 比較元コミット vs 比較先コミット
- 指定ブランチ vs 作業ツリー
- 指定ブランチ vs 指定ブランチ(リモートブランチも可)
- 指定ブランチ vs 指定ブランチの共通先祖
- 「diff A B」と「diff A..B」は同じ
- 「..」と「...」の違い
- git diffの便利なオプション
- diffで表示される内容の詳細
(参考)ワークツリーとステージの位置リモートレポジトリ ↑ push ローカルレポジトリ ↑ commit ステージ(インデックス) ↑ add 作業ツリー(ワークツリー)
1. ステージ(インデックス) vs 作業ツリー
引数を指定しない場合、ステージ(インデックス)と作業ツリーの内容の差分を表示する。
- git addする前のファイルの変更内容を表示
- git add後したあとは、変化なしとみなされる
▼index.htmlにh2タグを追加した場合
ファイルの変更のみで、git addは未実施の状態。$ git diff diff --git a/index.html b/index.html index 60f3b81..71b41cf 100644 --- a/index.html +++ b/index.html @@ -7,5 +7,6 @@ </head> <body> <h1>add h1</h1> + <h2>add h2</h2> </body> </html>各行の内容を見ていく。
diffで表示される内容の詳細
1行目
diff --git a/index.html b/index.html
比較元ファイルa/index.htmlと、比較対象ファイルb/index.htmlをdiffに渡している。
index.htmlという元のファイルに変化があった場合、変更前後のファイルをa/とb/を自動でつけて区別できるようにしている。
「--git」は冒頭の「diff」がgitコマンドであることを示している。
2行目
index 60f3b81..71b41cf 100644
・60f3b81と71b41cd
ファイルのインデックス(ハッシュ値)を表す。コミットのハッシュ値ではない「比較元のファイルのハッシュ値..比較対象のファイルのハッシュ値」
「git show 60f3b81」コマンドでファイルの中身が見れる。
$ git show 60f3b81 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>add h1</h1> </body> </html>・100644はファイルのアクセス権限
100644の「644は rw-r--r--」の意味。100644の他に、100755というモードもよく見られる。「755はrwxr-xr-x」
この2行目は特に使う情報ではない。
3行目
--- a/index.html
下部に表示される変更内容で、比較元(変更前)のファイルで変化があった箇所を「-」で表すという意味。
4行目
+++ b/index.html
下部に表示される変更内容で、比較先(変更後)のファイルで変化があった箇所を「+」で表すという意味。
5行目
@@ -7,5 +7,6 @@
この下に表示しているコードが、比較元と比較先のファイルのどの行に当たるかを示している。
「-」:比較元のファイル(--- a/index.html = 60f3b81)
「+」:比較対象のファイル(+++ b/index.html = 71b41cf)「x,y」:ファイルのx行目から、y行分を表示
┗ 「7,5」:7行目から5行分 (7~11行)を表示▼元ファイル(a/index.html)
a/index.html1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Document</title> 7 </head> 8 <body> 9 <h1>add h1</h1> 10 </body> 11 </html>
6行目
</head> <body> <h1>add h1</h1> + <h2>add h2</h2> </body> </html>ファイルの変更点を表示。
「+」:追加された内容
「-」:削除された内容現在作業中のコミットとワークツリーを比較すると、index.htmlファイルにh2タグが新たに追加されていることがわかる。
git add後のgit diff
git addでワークツリーの内容をステージ(インデックス)に上げると、ワークツリーとステージの差分はなくなるため、git diffで何も表示されなくなる。
何も表示されない$ git add index.html $ git diff $
2. 指定コミット vs 作業ツリー
引数でコミットを指定すると、コミットと作業ツリーの差分を表示することができる。
git diff コミット
引数を何も指定しない場合はステージとの比較だったため、git addするとgit diffで何も表示されなくなった。
コミット自体はaddしても変化ないため、addした後でもgit diffで差分が表示される。
現在作業中のコミットとワークツリーを比較
コミットの指定方法はHEAD、ハッシュ値(SHA)、tagなど複数の方法で指定できる。
▼実例
作業中のコミットのログを確認$ git log --oneline 0193c66 (HEAD -> master, tag: v1.0) add h1例えば上記のように、現在作業中のコミットワークツリーでgit diffをする場合、
git diff 0193c66
=git diff HEAD
=git diff v1.0
となる。
SHAで指定$ git diff 0193c66 diff --git a/index.html b/index.html index 60f3b81..71b41cf 100644 --- a/index.html +++ b/index.html @@ -7,5 +7,6 @@ </head> <body> <h1>add h1</h1> + <h2>add h2</h2> </body> </html>HEADで指定$ git diff HEAD diff --git a/index.html b/index.html index 60f3b81..71b41cf 100644 --- a/index.html +++ b/index.html @@ -7,5 +7,6 @@ </head> <body> <h1>add h1</h1> + <h2>add h2</h2> </body> </html>タグ名で指定$ git diff v1.0 diff --git a/index.html b/index.html index 60f3b81..71b41cf 100644 --- a/index.html +++ b/index.html @@ -7,5 +7,6 @@ </head> <body> <h1>add h1</h1> + <h2>add h2</h2> </body> </html>昔のコミットとワークツリーを比較
引数で古いコミットを指定すれば、指定した時点でのコミットとワークツリーの差分を見ることができる。
例えば2つまえのコミットと比較する場合は
git diff HEAD^^
となる。もちろん、ハッシュ値(SHA)やタグ名でも指定可能。2つ前のコミットと比較$ git diff HEAD^^ diff --git a/index.html b/index.html index e69de29..71b41cf 100644 --- a/index.html +++ b/index.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Document</title> +</head> +<body> + <h1>add h1</h1> + <h2>add h2</h2> +</body> +</html>
3. 指定コミット vs ステージ(インデックス)
オプション
--cached
をつけると、ステージの状態と比較することができる。コミット指定なし
引数がない場合、現在のコミットとステージの状態を比較する。
git diff --cached
$ git diff --cached diff --git a/index.html b/index.html index 60f3b81..71b41cf 100644 --- a/index.html +++ b/index.html @@ -7,5 +7,6 @@ </head> <body> <h1>add h1</h1> + <h2>add h2</h2> </body> </html>コミット指定あり
git diff --cached <コミット>
▼実例2つ前のコミットとステージを比較$ git diff --cached HEAD^^ diff --git a/index.html b/index.html index e69de29..71b41cf 100644 --- a/index.html +++ b/index.html @@ -0,0 +1,12 @@ +<!DOCTYPE html> +<html lang="en"> +<head> + <meta charset="UTF-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <title>Document</title> +</head> +<body> + <h1>add h1</h1> + <h2>add h2</h2> +</body> +</html>
4. 比較元コミット vs 比較先コミット
コミットを指定することで、コミット同士の比較も可能。
git diff <比較元コミット> <比較先コミット>
基本的に比較元は古いコミットを指定する。(出力結果で追加された項目が+で表示されるため)
例えば、現在のコミットと3つまえのコミットを比較する場合は「$ git diff HEAD^^^ HEAD」
3つ前のコミットと比較$ git diff HEAD^^^ HEAD diff --git a/index.html b/index.html index 71b41cf..7e03fa2 100644 --- a/index.html +++ b/index.html @@ -8,5 +8,8 @@ <body> <h1>add h1</h1> <h2>add h2</h2> + + <h3>add h3</h3> + <h4>add h4</h4> </body> </html> diff --git a/style.css b/style.css new file mode 100644 index 0000000..e69de29
▼引数を逆にした場合
引数を逆にすれば、+と−の符号が置き換わる。3つ前のコミットと比較(逆)$ git diff HEAD HEAD^^^ diff --git a/index.html b/index.html index 7e03fa2..71b41cf 100644 --- a/index.html +++ b/index.html @@ -8,8 +8,5 @@ <body> <h1>add h1</h1> <h2>add h2</h2> - - <h3>add h3</h3> - <h4>add h4</h4> </body> </html> diff --git a/style.css b/style.css deleted file mode 100644 index e69de29..0000000
5. 指定ブランチ vs 作業ツリー
git diff <コミット>
で指定コミットと作業ツリーを比較できたが、ブランチを指定すれば、指定ブランチと作業ツリーを比較できる。
git diff <ブランチ名>
ブランチft1と作業ツリーを比較$ git diff ft1 diff --git a/index.html b/index.html index 7636e4b..7e03fa2 100644 --- a/index.html +++ b/index.html @@ -10,5 +10,6 @@ <h2>add h2</h2> <h3>add h3</h3> + <h4>add h4</h4> </body> </html> diff --git a/style.css b/style.css new file mode 100644 index 0000000..e69de29
6. 指定ブランチ vs 指定ブランチ(リモートブランチも可)
ブランチ同士の差分を比較することも可能。
git diff <比較元ブランチ名> <比較先ブランチ名>
ローカルブランチ同士の比較
ft1とmasterを比較$ git diff ft1 master diff --git a/index.html b/index.html index 7636e4b..7e03fa2 100644 --- a/index.html +++ b/index.html @@ -10,5 +10,6 @@ <h2>add h2</h2> <h3>add h3</h3> + <h4>add h4</h4> </body> </html> diff --git a/style.css b/style.css new file mode 100644 index 0000000..e69de29変更点は2つあることがわかる。
(1)masterはindex.htmlにはh4タグがない(ft1にはh4タグが追加されている)。(2)masterにはstyle.cssファイルが新規作成されている(ft1にはない)
ソースコードの+, -とファイル追加のnew, deleteが微妙にわかりにくい。。
ローカルブランチとリモートブランチの比較
git diff <ローカルブランチ名> <リモートレポジトリ名/ブランチ名>
▼実例
ローカルのmasterブランチと、リモートレポジトリ名originのmasterブランチを比較。$ git diff master origin/master diff --git a/index.html b/index.html index 9d8e2e9..7e03fa2 100644 --- a/index.html +++ b/index.html @@ -11,7 +11,5 @@ <h3>add h3</h3> <h4>add h4</h4> - - <h5>add h5</h5> </body> </html>
7. 指定ブランチ vs 指定ブランチの共通先祖
git diff <比較元ブランチ名> <共通先祖を参照するブランチ名>
▼実例
git diff ft1...master
この場合、ft1と、ft1とmasterの共通先祖のコミットを比較する。
ドットあり$ git diff ft1...master diff --git a/index.html b/index.html index 7636e4b..9d8e2e9 100644 --- a/index.html +++ b/index.html @@ -10,5 +10,8 @@ <h2>add h2</h2> <h3>add h3</h3> + <h4>add h4</h4> + + <h5>add h5</h5> </body> </html> diff --git a/style.css b/style.css new file mode 100644▼(参考)ドットなしの場合
ドットがない場合は、指定したブランチ同士の比較となる。ドットなし$ git diff ft1 master diff --git a/index.html b/index.html index 7636e4b..9d8e2e9 100644 --- a/index.html +++ b/index.html @@ -10,5 +10,8 @@ <h2>add h2</h2> <h3>add h3</h3> + <h4>add h4</h4> + + <h5>add h5</h5> </body> </html> diff --git a/main.js b/style.css similarity index 100% rename from main.js rename to style.css
8. 「diff A B」と「diff A..B」は同じ
コマンドの記述で、間にドット2つ(..)がある場合があるが、これはドットの前後を比較している意味。
ドットなしと同じ結果となる。
▼実例
ドットなし$ git diff HEAD HEAD^ diff --git a/index.html b/index.html index 9d8e2e9..7e03fa2 100644 --- a/index.html +++ b/index.html @@ -11,7 +11,5 @@ <h3>add h3</h3> <h4>add h4</h4> - - <h5>add h5</h5> </body> </html>ドットあり$ git diff HEAD..HEAD^ diff --git a/index.html b/index.html index 9d8e2e9..7e03fa2 100644 --- a/index.html +++ b/index.html @@ -11,7 +11,5 @@ <h3>add h3</h3> <h4>add h4</h4> - - <h5>add h5</h5> </body> </html>
9. 「..」と「...」の違い
git diff A..B
とgit diff A...B
はドット2つとドット3つの差だが、実行内容は大きく異なる。・ドット2つ
git diff A..B
ブランチAとブランチBを比較。
・ドット3つ
git diff A...B
ブランチAと、ブランチAとブランチBの共通祖先を比較。
git diffの便利なオプション
変更のあるファイル名のみ表示(--name-only)
--name-only
をつけると、変更のあるファイル名のみを表示する。表示がだいぶ短くなる。--name-only$ git diff ft1 master --name-only index.html style.cssft1ブランチとmasterブランチを比較すると、index.htmlとstyle.cssの2つのファイルに違いがあることが一目でわかる。
▼(参考)比較用オプションがない場合$ git diff ft1 master diff --git a/index.html b/index.html index 7636e4b..9d8e2e9 100644 --- a/index.html +++ b/index.html @@ -10,5 +10,8 @@ <h2>add h2</h2> <h3>add h3</h3> + <h4>add h4</h4> + + <h5>add h5</h5> </body> </html> diff --git a/main.js b/style.css similarity index 100% rename from main.js rename to style.css
2つ以上の連続するスペースを無視(-b)
-b
オプションをつけると2つ以上の連続するスペースの差分は無視した、差分を表示する。
--ignore-space-changes
と同じ。▼参考
-bあり$ git diff -b diff --git a/index.html b/index.html index 9d8e2e9..c3e3029 100644 --- a/index.html +++ b/index.html @@ -9,9 +9,11 @@ <h1>add h1</h1> <h2>add h2</h2> - <h3>add h3</h3> + + + <h3>a d d h3</h3> <h4>add h4</h4> - <h5>add h5</h5> + <h5>a d d h5</h5> </body> </html>-bなし$ git diff diff --git a/index.html b/index.html index 9d8e2e9..c3e3029 100644 --- a/index.html +++ b/index.html @@ -9,9 +9,11 @@ <h1>add h1</h1> <h2>add h2</h2> - <h3>add h3</h3> - <h4>add h4</h4> - <h5>add h5</h5> + + <h3>a d d h3</h3> + <h4>add h4</h4> + + <h5>a d d h5</h5> </body> </html>
スペースを無視(-w)
-w
オプションをつけるとスペースの差分は無視した、差分を表示する。
--ignore-all-changes
と同じ。▼参考
-wあり$ git diff -w diff --git a/index.html b/index.html index 9d8e2e9..c3e3029 100644 --- a/index.html +++ b/index.html @@ -9,6 +9,8 @@ <h1>add h1</h1> <h2>add h2</h2> + + <h3>a d d h3</h3> <h4>add h4</h4>-wなし$ git diff diff --git a/index.html b/index.html index 9d8e2e9..c3e3029 100644 --- a/index.html +++ b/index.html @@ -9,9 +9,11 @@ <h1>add h1</h1> <h2>add h2</h2> - <h3>add h3</h3> - <h4>add h4</h4> - <h5>add h5</h5> + + <h3>a d d h3</h3> + <h4>add h4</h4> + + <h5>a d d h5</h5> </body> </html>
- 投稿日:2020-09-15T19:54:18+09:00
Git プルリクで他の人のコミットが含まれていた
間違っていたらコメントください
状況
プルリクを出そうとした時に、commit履歴に他の人のcommitが含まれていた。
環境
マージ先のブランチ
・develop
自分が作業しているリモートブランチ
・feature
自分が作業しているローカルブランチ
・feature解決
コマンドの流れ
$ git log $ git rebase -i コミットID 不要なコミットの削除 $ git rebase origin/feature $ git push -f origin feature解説
消したいcommitIDを確認する
$ git log消したいcommitの直前のIDを利用することで削除できる
$ git rebase -i コミットID〜〜〜コミットを削除する〜〜〜
自分が作業していたローカルブランチに自分が変更したcommitだけくっつける
$ git rebase origin/feature作業中のリモートブランチに正しいものを適用
$ git push -f origin feature
- 投稿日:2020-09-15T19:23:51+09:00
GitのHEAD位置の指定方法まとめ(HEAD~, HEAD^, @~, @^とは?)
GitのHEAD位置の指定方法まとめ(HEAD~, HEAD^, @~, @^とは?)
現在作業中のコミットを表すHEADを使って、コミットの位置を指定できる。
たまに見かける、HEAD、HEAD~, HEAD^, @~などがそれぞれ何を指すかのまとめ。
目次
HEADの履歴表示(git reflog)
現在のHEAD位置および、過去のコミットのHEADでの表記を一覧で参照できる、便利コマンド:
・
git reflog
・
HEAD
: 現在作業中のブランチ
・HEAD -> master
: 現在作業中のブランチがmasterブランチと同じ
・HEAD@{0}
0番目のHEAD=現在作業中のブランチ
・HEAD@{1}
1つ前のコミット(現在作業中のブランチから1つ遡る)
・HEAD@{n}
n個前のコミット(現在作業中のブランチからn個遡る)上記のようにHEADを使ってn個前のコミットを参照することが可能。
間違ったmergeやcommitなどを修正する場合によく使われる。
HEADを使った過去のコミット参照方法
HEAD@{n}
以外にも過去のコミットを参照する方法が存在する。・
HEAD~
: ~の数がn個前になる。例は「HEAD@{1}」と同じ。
・HEAD^
: ^の数がn個前になる。例は「HEAD@{1}」と同じ。
・@^
: ^の数がn個前になる。例は「HEAD@{1}」と同じ。
・@~
: ~の数がn個前になる。例は「HEAD@{1}」と同じ。
- v1.8.5から@がHEADのエイリアスに設定された。
- ~ と ^ は同じキー(~ = shift+^)
同じ表記一覧
下記のようにc1〜c4までの4つのコミットがあり、現在作業中のコミットがc4の場合の各コミットの参照方法について。
c1 -> c2 -> c3 -> c4(HEAD)
c1 c2 c3 c4 3つ前 2つ前 一つ前 現在作業中 HEAD^^^ HEAD^^ HEAD^ HEAD HEAD~~~ HEAD~~ HEAD~ HEAD @^^^ @^^ @^ @ @~~~ @~~ @~ @ HEAD@{3} HEAD@{2} HEAD@{1} HEAD@{0} @@{3} @@{2} @@{1} @@{0}
パッと見ややこしいが、実質は簡単。
(HEAD
=@
=HEAD@{0}
=@@{0}
)書くときは迷うが、HEADで記述するのが迷う人が少ないと思われる。
3つ前ぐらいまでは「^」、それ以上は「@{n}」がわかりやすい。
(参考)コミットを引数にとる主なコマンド
コミット引数にとるコマンドはいくつか存在する。主には下記が挙げられる。
git diff
、git show
、git revert
、git cherry-pick
など。実例(show)$ git show HEAD^^ commit 0a14ddec59fc0c124b5260018a64740d57d1dd12 (ft2) Author: Y M <example@google.com> Date: Tue Sep 15 14:27:42 2020 +0900 del text2, add style.css diff --git a/style.css b/style.css index b82d73d..1142a71 100644 --- a/style.css +++ b/style.css @@ -1 +1,2 @@ +#add comment diff --git a/text2.txt b/text2.txt deleted file mode 100644 index ce01362..0000000 --- a/text2.txt
- 投稿日:2020-09-15T18:30:11+09:00
【git 公式リンク集】便利でよく使うgit公式リンク集まとめ
便利でよく使うgit公式リンク集まとめ
よく使うgitの公式リンク集。参照したいときに検索では上位に出てこないことがあるのでリンクをまとめておく。
目次
gitチュートリアル一覧(日本語)
チュートリアルのチャプター一覧へのリンク。
https://git-scm.com/book/ja/v2gitコマンド一覧(English)
チュートリアル主要リンク抜粋(日本語)
主要リンクと使われている主なコマンド(gitは省略)。
・「git statusの短縮表記とgit ignoreの使い方」(https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E5%A4%89%E6%9B%B4%E5%86%85%E5%AE%B9%E3%81%AE%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%B8%E3%81%AE%E8%A8%98%E9%8C%B2)
status (A, M, ??), .gitignore,
・gitタグの使い方
tag, tag -l, tag -a
・gitエイリアスの設定方法
config --global alias.xx xxxx, 'xxx yyy zzz', !xxx
・リモートでの作業
clone, remote (-v), fetch, push, remote show, remote rename, remote rm,
・コミット履歴(ログ)の参照
log
・ログ参照 応用編
log --abbreb-commit --pretty=oneline,
log --pretty=format:'%h %s' --graph,
show, rev-parse, reflog, log -g,・作業のやり直し方法
commit --amend, reset HEAD
・マージ方法
checkout (-b), branch (-d), merge,
・リモートブランチ、 追跡/上流ブランチ
[remote-name]/[remote-branch],
[localb-ranch]:[remote-branch],
checkout --track, checkout -b, branch -u, branch -vv, push --delete,・リベースとは?使い方
rebase [base-branch],
rebase [base-branch] [topic-branch],
rebase --onto [base-branch] [topic-branch] [subtopic-branch],・ssh公開鍵の作成
ssh-keygen,
・ブランチの名前空間
branch xx/yyyyyyyy,
checkout xx/yyyyyy,
apply, am・作業の隠し方、 一時中断
stash, stash list, stash apply,
stash -s (--save),
stash -u (--keep-index),
stash --patch,
clean・resetとは?使い方
reset (--hard) (--mixed) (--soft)
・高度なマージ、 コンフリクト解消方法
merge --abort, git reset --hard HEAD,
merge -Xignore-space-change (Xignore-all-space),
show :1~3:ファイル名 > 出力先ファイル,
ls-files -u, merge-file -p,
diff --ours (--theirs) (--base),
clean -f,
checkout --conflict=diff3,
reset --hard HEAD~,
revert -m 1 HEAD,
merge -Xours (-Xtheirs),
merge -s ours,・フォーク, GitHub Flowについて
・検索で欲しいログを素早く見つける
grep
・サブモジュールとは?使い方
submodule add [URL],
submodule init,
submodule update,・git configのカスタマイズ
config --global,
主要コマンドへのリンク抜粋(English)
各コマンドの引数やオプション詳細がみたい場合に便利。
[A]
・git add[B]
・git branch[C]
・git config
・git clone
・git commit
・git checkout
・git cherry-pick
・git clean[D]
・git diff[F]
・git fetch[L]
・git log
・git ls-files[M]
・git merge[R]
・git reset
・git remote
・git rebase
・git revert
・git reflog[S]
・git status
・git stash
・git show[T]
・git tag
- 投稿日:2020-09-15T15:44:57+09:00
【Git】管理外ファイル、フォルダを削除するコマンド。
- 投稿日:2020-09-15T15:31:49+09:00
間違えて別ブランチにpush -f したときの対処法
普段の開発は一人1ブランチみたいな感じで複数人で1つのブランチを触ることが無いので
git push -f hogehoge
をたまに使うんですが、この間push先のブランチ名を間違えてそのブランチの修正内容を吹き飛ばしてしまいました…自分のGit史上1番の大やらかしだったのですが、なんとか回避したのでメモがてら残しておきます。
元々のコミットハッシュを取得する。
まずはやらかしたの元々のを取得します。
自分はテンパリすぎてGitHubでみましたが
Git log
とかでも多分大丈夫だと思います。この
79282af
がforce pushされる前のコミットハッシュなのでこれで大丈夫だとは思うのですが念のためコミットの詳細画面へ行ってフルバージョンのコミットハッシュを確認してコピーしておきます。
元のコミットに戻す
やらかしたブランチに移動してそのブランチで
git reset --hard [コピーしたコミットハッシュ]を実行して元の状態に戻します。
コマンドを実行した状態で元の状態に戻っているはずなので一応確認してください。再度プッシュする
元の状態に戻っていることを確認できたら
git push -f origin [やらかしたブランチ]でリモートブランチも元に戻っているはずです。
あとがき
まじでめちゃめちゃ焦りましたが
git reset --hard [コピーしたコミットハッシュ]が実行できて戻った時点でめっちゃ安心しました。
やらかした時点で落ち着いて解決策をググれたのでなんとか大丈夫でした。
やらかしたときはまず落ち着くことが大事ですね。
- 投稿日:2020-09-15T14:04:15+09:00
gitの使い方(チームメンバー用)
チームメンバー向けgit,cmd,railsの使い方説明
※チームメンバー用なので雑です
ディレクトリを移動する
cd path\to\railsapp
git初期化
git init
gitのユーザー設定
git config --global user.name "ユーザー名"
git config --global user.email "メールアドレス"
リモートリポジトリをクローンする
git clone {URL}
読み込み元,書き込み先のURLを確認する
git remote -v
リモートリポジトリの最新状態を取得する
git pull origin master
現在の状態をステージに上げる(仮保存的なもの)
git add [ステージに上げるファイル]
仮保存をコミット(保存)する
git commit -m "コミットメッセージ"
リモートリポジトリに反映させる(最新状態でないとエラー)
git push origin master
DBを削除する
del db\development.sqlite3
マイグレーションする(テーブル作成)
rails db:migrate
DBにデータを挿入する
rails db:seed
Railsサーバー起動
rails s
※Ctrl+Cでサーバーを止めるPermission deniedのエラーが発生した場合はtmpフォルダを消すと治る時がある