20190506のGitに関する記事は6件です。

【Git】誤ってcommitしてすぐに戻したいとき

結論

作業メモ。結論を先に書く。

以下のコマンドをすぐに打とう。

git reset --soft HEAD^

GW中にhooksでpre-commitの検証を行っているときにアホほど打ったので、覚えてしまった…。

--soft

--softだと、「commitをしなかった状態」なので、編集していたファイルは残る。つまり、「インデックスにステージングした状態」に戻す。

間違いがなくて、安心だと思います。

--hard

これをgit reset --hard HEAD^にすると、「commit自体をなかったことにして、1つ前のcommitの状態に戻す」ことになるので、commitしたファイル も消えてしまいます。

一挙にまるまるリセットしたいときは、--hardで良いと思いますが、ちゃんと考えてからやったほうが良いでしょうね。

つまり、以下の流れを一挙にやるイメージです。

  1. git reset --soft HEAD^
  2. git reset HEAD .
  3. 対象ファイルを削除

--mixed

git reset --mixed HEAD^ は、上の箇条書きで言うところの2.に当たる部分までやるという感じです。なんだか中途半間な感じがして、あまり使わない気がします。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

�【git】よく使うコマンド集(リモートレポジトリへのプッシュ)

趣旨

毎回、あれ?ここで使うgitコマンドなんだったっけ?となるので自分の忘備録としての役割も含めて記載します。
今回はリモートレポジトリへのプッシュです。

リモートレポジトリにプッシュしたい時

ここではリモートレポジトリはgithub使っています。

git add

まず、ファイルなどを管理の対象として追加する必要があります。
エディターにコードを書いたのみだと「ワーキングツリー」に存在しているだけなので、
ワーキングツリーからステージエリア(インデックス)に追加します。
(ワーキングツリー→ステージエリア)

$ git add .

上記ならルートファイル以下全てのファイルをaddできます。

$ git add <ファイル名>

特定のファイルならこちら

ex)

$ git add index.html

git commit

ステージエリアにあげられたファイルをローカルレポジトリに追加登録します。
このことをコミットすると言います。
(ステージエリア→ローカルレポジトリ)

vimを使いたくない人は-mでメッセージの中身を記入

$ git commit -m "コメントの中身"

vimを使う人は

$ git commit

vimが立ち上がるので、
「i」を押してインサートモードにしてからコメントを入力します。
入力したあとは、ESCを押した後に
「:」「w」「q」で保存するか、
「:」「q」「!」で保存せずに戻ることができます。

git commit したあとは、
git log でコミットしたメッセージを確認できます。

$ git log

git push

最後にリモートレポジトリ(github)にプッシュします。
(ローカルレポジトリ→リモートレポジトリ)

$ git push origin <ブランチ名> なので

masterにプッシュする時
$ git push origin master

ワーキングツリーの変更内容を取り消しする時

git addしていない変更を全部消すことができます。

$ git checkout .

変更の取り消しができますが、新規追加したファイルは削除対象にならないので、別途削除しましょう。

特定のファイルのみ指定して取り消しならこちらです。

$ git checkout <ファイル名>

プッシュした後にやり直ししたい時

git resetで対応する人もいますが、コミット履歴操作には危険が伴うので、
revertで対応するケースも多いようです。
直前のコミットを打ち消すコミットとなります。

$ git revert HEAD

その後にpushします。

ワーキングツリーの変更を一時退避させる方法

ローカル(ワーキングツリー)の変更内容を退避させます。
退避させて別ブランチで一時的に作業する場合などで使います。

$ git stash

退避を元に戻すには以下のコマンドです。

$ git stash pop

最後に

git resetについてはこの方の記事がとても参考になります。
https://qiita.com/shuntaro_tamura/items/db1aef9cf9d78db50ffe

別の記事で他のgitコマンドについて書いていきます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

�【git】よく使うコマンド集(リモートレボジトリへのプッシュ)

趣旨

毎回、あれ?ここで使うgitコマンドなんだったっけ?となるので自分の忘備録としての役割も含めて記載します。
今回はリモートレポジトリへのプッシュです。

リモートレボジトリにプッシュしたい時

ここではリモートレボジトリはgithub使っています。

git add

まず、ファイルなどを管理の対象として追加する必要があります。
エディターにコードを書いたのみだと「ワーキングツリー」に存在しているだけなので、
ワーキングツリーからステージエリア(インデックス)に追加します。
(ワーキングツリー→ステージエリア)

$ git add .

上記ならルートファイル以下全てのファイルをaddできます。

$ git add <ファイル名>

特定のファイルならこちら

ex)

$ git add index.html

git commit

ステージエリアにあげられたファイルをローカルレポジトリに追加登録します。
このことをコミットすると言います。
(ステージエリア→ローカルレポジトリ)

vimを使いたくない人は-mでメッセージの中身を記入

$ git commit -m "コメントの中身"

vimを使う人は

$ git commit

vimが立ち上がるので、
「i」を押してインサートモードにしてからコメントを入力します。
入力したあとは、
「:」「w」「q」で保存するか、
「:」「q」「!」で保存せずに戻ることができます。

git commit したあとは、
git log でコミットしたメッセージを確認できます。

$ git log

git push

最後にリモートレポジトリ(github)にプッシュします。
(ローカルレポジトリ→リモートレポジトリ)

$ git push origin <ブランチ名> なので

masterにプッシュする時
$ git push origin master

ワーキングツリーの変更内容を取り消しする時

git addしていない変更を全部消すことができます。

$ git checkout .

変更の取り消しができますが、新規追加したファイルは削除対象にならないので、別途削除しましょう。

特定のファイルのみ指定して取り消しならこちらです。

$ git checkout <ファイル名>

プッシュした後にやり直ししたい時

git resetで対応する人もいますが、コミット履歴操作には危険が伴うので、
revertで対応するケースも多いようです。
直前のコミットを打ち消すコミットとなります。

$ git revert HEAD

その後にpushします。

ワーキングツリーの変更を一時退避させる方法

ローカル(ワーキングツリー)の変更内容を退避させます。
退避させて別ブランチで一時的に作業する場合などで使います。

$ git stash

退避を元に戻すには以下のコマンドです。

$ git stash pop

最後に

git resetについてはこの方の記事がとても参考になります。
https://qiita.com/shuntaro_tamura/items/db1aef9cf9d78db50ffe

別の記事で他のgitコマンドについて書いていきます。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Git】基本コマンド

はじめに

新しく学んだことは随時更新します。

Git initコマンド

■コマンド
git init [ディレクトリ] [オプション]

■使用例
$ git init

■意味
Gitのリポジトリを新規作成、既存のリポジトリを最初期化するために使用します。

指定したディレクトリ(指定しない場合、カレントディレクトリ)も「.git」というサブディレクトリが作成されます。
中身はテンプレートファイルが置かれています。

Git addコマンド

■コマンド
git add [ファイル名]

■使用例
$ git add index.html

■意味
Gitのリポジトリに追加したいファイルを選択するために使用します。

Git commitコマンド

■コマンド
git commit [< options >]

■オプション
-m: コミットする際に、コメントを添えることができる。

■使用例
$ git commit -m "This is an example of commit."

■意味
ローカルリポジトリにコミットするために使用します。

Git resetコマンド

■コマンド
git reset [< ootions >]

■オプション
--soft: コミットのみを取り消します。直前のコミットを取り消す場合、HEAD^を使用する。
--hard: コミットと変更を取り消します。直前のコミットを取り消す場合、HEAD^を使用する。

■使用例
$ git reset --soft HEAD^

※windowsOS
$ git reset --soft "HEAD^"

■意味
「コミットメッセージを間違えた」
「間違えてコミットしてしまった」
そのようなときは、git resetコマンドでコミットをなかったことにできます。
(??ローカルリポジトリだから出来る??)

Git remoteコマンド

■コマンド
git remote [< options >] [リモート名] [リモートリポジトリのURL]

■オプション
add: リモートリポジトリのURLを任意の名前に設定できます。
remove: addにて設定した名前を削除します。
rename: 名前を変更できます。

■使用例
$ git remote add origin https://github.com/xxxx/yyyy.git

■意味
リモートリポジトリのURLをわかりやすいような名前にしたり、その名前を削除したり
リモートリポジトリのURLを管理するために使用します。

Git pushコマンド

■コマンド
git push [リモート名] [ブランチ名]

■使用例
$ git push origin master

■意味
ローカルリポジトリにコミットしたファイルをリモートリポジトリにアップロードするために使用します。

Git pullコマンド

■コマンド
git pull [リモート名] [ブランチ名]

■使用例
$ git pull origin master

■意味
リモートリポジトリにアップロードされているファイルをダウンロードするために使用します。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Github の更新

Githubの更新

プロジェクトを作り込み、更新しようとしたとき迷ってしまったので、書き留めておこうと思う

Terminal
$ git add .
$ git commit -m "comment"
$ git push https://github.com/ooooo/xxxxx.git

addでgitに新規ファイルの追加
commitで更新
pushでgithubを更新

これであっているのか?
まだ理解が足りてない気がする.
間違っていたら、教えてください

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

git revertでpush済みのcommitの内容を取り消す

git revertで該当のMergeCommitのみを取り消す

$ git revert -m 1 [取り消したい該当commit id]

-> これで該当のコミットのみを取り消すcommitが作られる(戻されるわけではなく、ソース上で消す変更が行われる)

後はpushしてマージするだけ。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む