- 投稿日:2020-07-15T23:36:05+09:00
git の差分をいい感じに表示できる delta の紹介
git の差分をいい感じに表示できる delta を紹介します。rust 製です。
https://github.com/dandavison/delta
まず先に before / after を載せておきます。
before
after
導入方法
brew でインストールできます。
brew install git-delta
設定方法
.gitconfigに書きを追加します。
[core] pager = delta --theme='Monokai Extended' [interactive] diffFilter = delta --color-only完了です。
確認
おもむろに
git log -p
をしてください。シンタックスハイライトした差分が表示されるかと思います。git の cli ツールである tig が対応していればさらに良いのですが、ISSUEが作られているもののなかなか機能追加は大変そうな印象です。
- 投稿日:2020-07-15T22:30:18+09:00
よく使うGitコマンドを書いてみた(随時更新中)
はじめに
これは未経験エンジニアが、フルスタックエンジニアになるための備忘録である
よく使うコマンド一覧
ディレクトリでgitを使い始めるためのコマンド
git init //リポジトリしたいファイルにgit init作成したリポジトリをローカルにコピーする
git clone SSHまたはHTTPSのGitHubにある文字列 //リモートからローカルにコピーするコマンドですね!現在gのgitの状態を確認する
git status //赤字で表示されたら管理外 緑色ならば管理されている状態(ステージング状態) //ファイル変更したら後に実行するとmodified file名 と表示されるファイルをgitに管理(ステージング状態)にする
git add ファイル git add . //全てのファイルを git したい場合現在の状態をgitにコミットメッセージを残してセーブする
git commit -m "何か文字を入れてね" //コマンドを実行したら現在の状態が git に保存されるgit のコミット履歴を確認できるコマンド
git log //何時何分に誰が変更したかを表示してくれるリモートにアップロードを行う
git push origin //origin というのはリモートサーバのことリモートリポジトリに接続確認
鍵認証用ssh -T git@github.com The authenticity of host 'github.com (192.30.255.113)' can't be established. RSA key fingerprint is SHA256:nTmki6kXUpJJUDNE1IGOCspRomTxdCHYSviKw6E5SY8. Are you sure you want to continue connecting (yes/no)? //が表示されたらyes と入力し、returnキーを押してください Hi (自分のアカウント名) You've successfully authenticated, but GitHub does not provide shell access. このように表示されたら接続は成功$ git remote add origin git@github.com:アカウント名/リポジトリ名.git $ git push -u origin master画面に以下のようなメッセージが表示されたらpushは完了。
Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (5/5), 420 bytes | 420.00 KiB/s, done. Total 5 (delta 0), reused 0 (delta 0) To github.com:BabaShun/sample.git * [new branch] master -> master Branch master set up to track remote branch master from origin.
- 投稿日:2020-07-15T19:13:48+09:00
間違ってrebaseしてリモートリポジトリにpushしちゃったけど、戻したい
表題の通り慌てたので、備忘録。
経緯
ブランチで作業してからrabaseした後、問題ないかと思ってリポジトリにpushしたが、
間違いが判明し、戻したくなった。ある程度作業した後にrebaseするとrebase元のコミットとごちゃごちゃになってしまう。
これの対応方法は別途調べるとして、結果から言うと下記で戻しました。git reflog git reset --hard HEAD@{番号} git push -f origin ブランチ名git reflog
履歴やブランチの切り替え履歴を参照できる。
git resetを行うとgit logでは履歴が消えてしまうが、git reflogでは履歴が残る。git reset --hard HEAD@{番号}
--hard
「HEADの位置・インデックス・ワーキングツリー」全てが対象
最後のコミットの状態に戻す他のオプションとして、
オプション 対象 使用例 --mixed オプションを指定しない場合はデフォルトでこれになる。「HEADの位置・インデックス」が対象 addを取り消したい時など --soft 「HEADの位置」のみ コミットのみ削除など HEAD@{番号}はgit reflogで確認できる
git push -f origin ブランチ名
強制的にpushする
※共有されたブランチで使用する場合には要注意。以上です。
いいねやQiitaやTwitterのフォローいただけると励みになります!
他にも方法がありましたら、コメントお待ちしております。
宜しくお願いします〜参考
git pull と git pull –rebase の違いって?図を交えて説明します!
【 git revert/git reset 】コマンド――コミットを取り消す
git push を強制する -f (–force)と –force-with-lease
[git reset (--hard/--soft)]ワーキングツリー、インデックス、HEADを使いこなす方法
- 投稿日:2020-07-15T18:23:47+09:00
Git リポジトリ作成時のデフォルトブランチ名を main にする
master -> main
git init
でリポジトリを作成し 最初のコミット をした場合、ブランチ名はデフォルトで master になります。
2020/07 時点ではgit init
時のこの挙動を変更するようなオプションは用意されていません。デフォルトブランチ名を変更したい場合は、 最初のコミット の前に HEAD の参照先を移動しておく必要があります。
git init git symbolic-ref HEAD refs/heads/main # 参照先を main に移動 ... git commit -m 'Initial commit'新規リポジトリ作成の度に上記のコマンドを思い出して実行するのは手間なので、エイリアスを作成しておきましょう。
git config --global alias.new '!git init && git symbolic-ref HEAD refs/heads/main'今回は
new
にエイリアスを設定しました。これで
git new
すると、デフォルトブランチが main のリポジトリを作成することができます。参考
- 投稿日:2020-07-15T16:38:38+09:00
Git:リポジトリ単位で別のアカウント情報を設定する
リポジトリごとに別のアカウント情報を設定する方法
cd repo git config --local user.name "リポジトリ用アカウント名" git config --local user.email "リポジトリ用メールアドレス"repo/config に user が追加されます
[user] name = リポジトリ用アカウント名 email = リポジトリ用メールアドレス
- 投稿日:2020-07-15T14:32:08+09:00
Git install メモ
GitHubのリリースから好きなバージョンのGitを選び放題!嬉しい!美味しい!
https://github.com/git/git/releasesGitが動けばよかったのでCentOSのバージョンは参考記事と同じ6系
dockerで動かすdocker run --rm -it --name git-test centos:6.10 bashコンテナ内でのコマンド
cd /tmp yum update yum install -y wget wget https://github.com/git/git/archive/v2.27.0.tar.gz tar xvf v2.27.0.tar.gz yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker yum -y install autoconf cd git-2.27.0/ make configure ./configure yum -y install gcc ./configure make prefix=/usr/local/ all make prefix=/usr/local/ install which git参考