今さら聞けないGit 2020年08月26日

今さら聞けないGit 2020年08月26日

Gitメモ

# 自分専用なのでぼく以外はブラウザバックしておk:ok_hand:

超高速でGitを操作するために編み出したかなりトリッキーなショートハンドを使っています。
あなたがこの記事を真似して何かあっても、ぼくは責任をとりません。

# gitconfig

“`zsh
git config –global user.name “hoge”
git config –global user.email “hoge@hoge_of_hoge.com”
“`

gitの設定ファイルを開く

“`zsh
## ユーザ単位で設定
vi ~/.gitconfig

## 全ユーザ共通
vi /etc/gitconfig

## 特定のリポジトリだけ
vi .git/config
“`

gitconfigに追加するもの

“`erlang
[push]
default = current

元記事を表示

[git] gitコマンド一覧

#add前の変更を削除

“`
git restore
“`

#add前の変更内容確認(特定のファイル)

“`
git diff —
“`

#addの取り消し(特定のファイル)

“`
git rm –cached -r
“`

#add後に変更内容確認(特定のファイル)

“`
git diff –cached
“`

#add[全てのファイル]
“`
git add .
“`

#add[特定のファイル]
“`
git add [ファイル名]
“`

#ブランチの確認

“`
git branch
“`

#ブランチの切替

“`
git checkout ブランチ名
“`

#ブランチ作成

“`
git checkout -b 作成するブランチ名
“`

#ブランチ削除 [マージ済みのみ]

“`
git branch -d [ブランチ名]
“`

#ブランチ削除 [マージ前も可]
“`
git branch -D [ブランチ名]
“`

#コミット[コ

元記事を表示

git grep 基本攻略

git grepとは?

git grepコマンドを使えば、 Git管理下のファイルのみを対象としてgrepができます。
シンプルなコマンドですが利便性が高く僕はとても使っています。
わざわざディレクトリを探したり無駄なコード書く手間がほとんど省けます♪

基本的な使い方

公式ドキュメントはこちら
https://git-scm.com/docs/git-grep
これ読んだら基本的に分かるけど英語めんどくさい。って方が多いと思うのでまとめていきます。(自分もその考えです。笑)

特定ワードを含む箇所を調べたい(大小小文字を区別する)

基本的にシンプルな例です。大小小文字の区別をするので、注意をしてください!
ワードの指定は正規表現(基本)です。正規表現(拡張)を使う場合は、
-eオプションを使います。

“`
$git grep -e “検索ワード”
“`

特定ワードを含む箇所を調べたい(大小小文字区別しない)

-iオプションを使います。

“`
$git grep -i “検索ワード”
“`

元記事を表示

【Git】.gitignore の変更が反映されない→キャッシュ削除する方法

##.gitignoreの変更が反映されない

過去にプッシュしたことがあるGitで
`.gitignore`ファイルを更新 → プッシュ → 反映されない!
特にエラーなどはなく、.gitignoreに追加したファイルもプッシュされてしまう状況です。

##Gitのキャッシュが残っているのが原因

調べたところ「Gitのキャッシュ」的なものが存在するらしく、それを消さないと設定を上書きできないようでした。
https://qiita.com/fuwamaki/items/3ed021163e50beab7154

##キャッシュを消す

###手順

1. .gitignore 編集
2. キャッシュを削除
3. コミット→プッシュ

###1.gitignore 編集

`.gitignore`ファイルを適宜編集します。

###2.キャッシュを削除

ターミナルでGitコマンドを使う。
全体のキャッシュ削除のほうが確実かと思われます。
ただ、キャッシュが大量だとフリーズしかけるので、ファイルが限定されていれば指定したほうが良いかもです。

“`tarminal:ターミナル
/

元記事を表示

gitのリモートURLを一斉に書き換える

BitBucketで大量のGitリポジトリの所有者変更をした際に、手元にcloneしてあるリポジトリのURLも同時に書き換えるためのスクリプトです。`git remote set-url`を該当するリポジトリで順番に実行して回ります。(安全のため、そのまま実行してもコマンドを出力するだけなので、実際に実行する場合は書き換えてください。

“`ruby

old_owner = “foo”
new_owner = “bar”

Dir.entries(“.”).sort.each do |d|
next unless File.directory?(d+”/.git”)
Dir.chdir(d)
puts Dir.pwd
m = `git remote -v | grep fetch | grep #{old_owner}`
if m.empty?
Dir.chdir(“..”)
next
end
new_path = m.split(/[\t ]+/)[1].sub(src,new_owner)
cmd = “git remote se

元記事を表示

【Heroku】にデプロイしたGitを利用してソースを変更を加える

###Githubに新しくリポジトリが作成されているけど、それを変更しても反映されない

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/296db360-68f1-e31a-cb80-40aad4ba6213.png)

HerokuにLaravelのアプリをデプロイするとGithubに新しくリポジトリが作成されていました。

Github上で確認したURLからクローンして変更を加えたら反映されると思いきや・・・

これを変更して、HerokuでOpen Appをしても変更が反映されていませんでした。

ではどうすれば変更されるのか。

###HerokuのGitのURLとGithubのURLが違う

“`:ターミナル
git remote -v
heroku https://git.heroku.com/obscure-falls-50711.git (push)
“`

上記のようにリモート名とURLが表示される。

これをローカルにcloneして変更して、pus

元記事を表示

git resetコマンドで任意のpushまで巻き戻す

# はじめに
`git reset`はチーム開発の場合には無かったことにするため極力使わない方が良いです。
履歴を残しつつ取り消す方法`git revert`を使えばチームに迷惑にはならないはずです。

使う局面は、自分ひとりで触っている状態などで`git reset`する事はあります。
では`git reset`開始。

# 状態確認
– `push`の一覧を確認します

“`console
$ git log –oneline
baa9043 (HEAD -> develop, origin/develop) テキスト変更3
fea4511 テキスト変更2
a40ce6b テキスト変更1
861e1b0 first commit
“`

– 各pushのコミットIDがコミットした内容とともに表示されます。
– 任意のコミットIDの`push`まで巻き戻す
– 例えば`first commit`時の`push`まで巻き戻して、テキスト変更1とテキスト変更2とテキスト変更3を消し去りたい場合

# 任意のpushまで巻き戻し開始
– 巻き戻したい任意のコミットIDを指定します

元記事を表示

【Git】【GitHub】リモートの追加とリモート名の変更

###リモート名のTypoによって変な名前に・・・

Gitでバージョン管理する上でリモートの追加が必須。ということでリモートの追加をしてみましょう。

“`
$ git remote add origin Gitのurl
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/668402/8cf0ee6d-bcd4-b811-a4d6-6128c65f7e4b.png)

これでローカルで作業をする準備ができた!って感じですかね。

ここでoriginをoringinとしてしまった。
nが一つ多かった。

Gitの使い方の説明を探すと、だいたいoriginなので、oringinだと、「あれ、おかしいな。ちゃんとやってるのにエラーが出るよ?」という状態に。

よくよくみると
originなんてないよ!っていうエラーメッセージだったので、コマンドの履歴を見ると

“`
$ git remote add oringin Gitのurl
“`

というぐらいに、add の後ろ!ori

元記事を表示

Gitで削除したブランチを復活する方法

##はじめに

Railsチュートリアルの学習中、不要なブランチを作りすぎたので整理していたら、誤って必要なブランチを削除してしまいました。。。
復活できたので忘備録として記事を書きます!

##ブランチを削除する方法

なんかいつの間にブランチ作りすぎちゃったな、、、
よーし、いらないブランチを削除するぞ〜

“`
git branch -D ブランチ名
“`

あれ!いま削除したブランチってRailsチュートリアルを見て6時間かけて作ったブランチじゃない!!??
エーン〜どうしよ~(泣)

##Gitの過去の変更履歴を遡る方法

そんな時はまずGitの変更履歴を遡ります。
下記コマンドで参照できます。

“`
git reflog
“`
上記コマンドを入力したら下記のレスポンスが返ってきました。

“`
537c709 HEAD@{1}: commit: Use SSL and the Puma webserver in production
f7be562 (origin/sign-up, sign-up) HEAD@{2}: merge sign-up: Fast-f

元記事を表示

初めてのGit Github Sourcetree

#はじめに
この記事では、Sourcetreeを用いてRemote環境にPush(アップロード)するまでを解説したいと思います。
Sourcetree意外にもGitを用いてもできますが、私は、Sourcetreeがおすすめです!

#Sourcetreeとは?
簡単の解釈で言うと、**プログラムのソースコードを管理するGitを簡単に取り扱うためのツール**
がSourcetreeである。
(https://tracpath.com/bootcamp/learning_git_sourcetree.html)

まず、Gitはまず、コマンド画面で作業することになります。黒い画面で指示や命令文を記述していきますが、この作業に抵抗がある方は、少なくありません。?

ですが、Sourcetreeは,GUI (Graphical User Interface グラフィカル・ユーザ・インターフェース)を用いて作業していくことになるのでGitよりは、抵抗なく進めることができると思います。?

GUIについてはこちら→https://wa3.i-3-i.info/word1371.html

#

元記事を表示

脆弱性スキャナ Vulsを Docker Desktop for Windows で利用したい

## TL;DR

簡単に利用できるよう作成した PowerShell スクリプトを OSS として公開しました。

**[vuls-on-docker4win](https://github.com/yokra9/vuls-on-docker4win)**

“`powershell
# 初期化処理(初回だけ実行してください)
.\init.ps1

# セキュリティ情報を取得
.\fetch.ps1

# Docker for Windows 用にイメージをビルド
docker build -t vuls .

# vuls を実行する(事前に ~/.ssh/ に SSH 秘密鍵を設置してください)
.\vuls.ps1 configtest -config=”/vuls/config.toml”
.\vuls.ps1 scan -config=”/vuls/config.toml”
“`

## vuls を Windows で利用するときの「つまづきポイント」

### fetch gost(Go Security Tracker)が失敗する問題

[公式のチュートリアル]

元記事を表示

GitKrakenでCodeCommitにSSHで繋ぐ方法

# はじめに

普段、GitLabを使っているんですが、この度デプロイ自動化しようぜって話になったので、CodeCommitにソースをpushすることになったんですよ。
ふつう、 `aws-cli` でやるのがいいのでしょうが、ゆくゆくはGitLabを廃してCodeCommitに一本化したい気持ちもあり、GitKrakenで簡単に操作できるといいなあと思った次第です。

#やり方

とりあえず、CodeCommitのリポジトリと、そこにつなげるIAMユーザーは作ってあるものとして話を進めます。
できてないときはここと見ながらやると良いでしょう。
[AWS CLI を使用していない SSH ユーザーの セットアップ](https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-without-cli.html)

## 1. IAMユーザーにSSH公開鍵を登録する

IAMでユーザーを作ったらユーザーの概要の画面を出しましょう。そこの `認証情報` というタブをクリックします。
![image.png]

元記事を表示

(エラー)Line X : StartTag: invalid element name

今回は、共同開発をしている時にぶつかったGitHubのmerge後に発生した
エラーの解決法について書いて行きたいと思います。

スクリーンショット 2020-07-09 23.12.29.png

##解決法

スクリーンショット 2020-07-09 23.12.29.png

**Main.storyboardを左クリック**→**Open As**→ **Source Code**

“`swift
<<<<<<< HEAD =

元記事を表示

[Gitlab]issue〜マジリクまでの流れMEMO

# 流れ
1. 着手するissueの「Assignee」に自分を追加

2. issueにある「Create merge request」となっている緑枠のプルダウン(▼)を開いて、「Create branch」に変更、「Branch name(※半角英数字)」を設定、「Source」はmasterのまま、終わったら「Create branch」の緑ボタンを押してブランチを作成する。
※issueのページの下の方にある「Related Branch」に作成したブランチがあればOK

3. 仮想環境にssh接続しているターミナルで以下を実行してローカルにブランチを作成して確認する。

“`ruby

$ git remote update

$ git checkout [作成したブランチ名]
# ブランチを間違えた場合は git branch -D [削除したいブランチ名]で削除

$ git status
# ブランチ名が作成したブランチ名になっていればOK
“`

4.issueの「Labels」の「ToDo」を「Doing」に変更し、issueの内容に沿って追加や修正を行う

元記事を表示

gitのディレクトリ情報保存方法

## 背景

git は差分管理ツールというイメージが強いですが、どうやってディレクトリ情報を保存しているかについてふと疑問に思いました。
ディレクトリ情報も差分で管理している?差分ならどこから適用している?`.git`の中に実は入っている?
少し考えても手段は分からなかったので調べて見ました。

## sha1(前提知識)

今回調べた結果として git で使用されている sha1 というハッシュ技術に触れないわけにはいかないので、前提知識として少し説明します。といっても大した内容じゃないですが…

git では [sha1](https://ja.wikipedia.org/wiki/SHA-1) と呼ばれるハッシュ技術を使用しております。みなさんが git のハッシュと聞いて最初に思い浮かべるのは commit ハッシュだと思います。現在はこの sh1 はセキュリティ上の脆弱性などが見つかり sh2 系統が暗号化技術では主流になっています。まぁ、git の使い方では気にするようなものでもない気がしますが、どうなんですかね。面倒でよく調べていません。
まぁ、git の根

元記事を表示

git commit時のテンションを上げる

git commitをした瞬間ってなんかテンション上がりませんか?

.git/hooks/post-commit に好きな画像を表示するともっとテンションあがると思います

img2txtで画像をコンソール表示できる形に変換できます

apt install caca-utils
img2txt mouse-face_1f42d.png

こんな感じ

ヨシ!

curl -L https://git.io/JUfWA > .git/hooks/post-commit
chmod +x .git/hooks/post-commit

![peek_2020_08_25_04_18.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/106549/d3a8d584-5aa1-08d8-6356-9a472bfe9ee3.gif)

瞬獄殺が決まった風

curl -L https://git.io/JUfWx > .git/hooks/post-commit

元記事を表示

Gatsby.jsでおしゃれなポートフォリオを作ろう!

## 自己紹介
むちゃんです。
関西を拠点に活動しているフロントエンドエンジニア目指しています。

HAL大阪の2回生です:(2020.8.25現在)

イベントなど回っているので是非大阪辺りの方は会いましょう!

## 概要

### [**Gatsbyjs**](https://www.gatsbyjs.com/)と[**Netlify**](https://www.netlify.com/)で爆速ポートフォリオを作成しました。

![](https://i.imgur.com/xyqRpBn.png)

## 実際の完成物

**今回、僕が作った[ポートフォリオ](https://hongmuchan.net)はこんな感じです。**

## GatsbyJSとは

GatsbyJSは[React](https://ja.reactjs.org/)で作られた静的サイトジェネレーターです。

・[よく耳にする

元記事を表示

エラー:warning: adding embedded git repository:

##エラー
背景:
1、既にgitにpushしたリポジトリB(最新のもの)にあります。リポジトリBは他の方で作成したもの。現時点は自分のローカルにはないです。
2、既にgitにpushしたリポジトリA(過去のもの)にあります。リポジトリAは自分で作成したもの。現時点は自分のローカルにあります。
3、リポジトリBにリポジトリAのコードを取り込みたいです。
4、ローカルで `$ git clone リポジトリB` でリポジトリBをcloneしました。
5、ローカルで リポジトリAを リポジトリBのディレクトリの下にコピーしました。
6、リポジトリBのディレクトリで `$ git add .`  を実行する時に、下記のエラーが発生した。

“`
$ git add .
warning: adding embedded git repository: リポジトリ名
hint: You’ve added another git repository inside your current repository.
hint: Clones of the outer repository will

元記事を表示

GiteaとJenkinsによるCI/CDの実例サンプル(Python / PHP / Perl でテストとデプロイを自動化する)

# はじめに
先日、**[GiteaとJenkinsを利用したCI/CD環境を構築](https://qiita.com/bashaway/items/4368b2fd46003d674223)**しました。
この環境を利用して、テストとデプロイを自動化するサンプルを動かして、いわゆるCI/CDに入門してみようと思います。

対象はPHPとPythonとPerlで作成したHTMLを生成するだけのアプリです。
できるだけ簡素なサンプルとしたかったので、フレームワークは利用していません。

簡単なサンプルで一連の流れが自動化できた(と思ってる)ので、これを「ひな型」として拡張していけたらいいかな、と思います。

# これをやります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/334782/4c8570a6-3602-bc65-8c97-eb9b4b979896.png)

`user01`というひとが、nginxが動作している開発サーバ(web-dev)上で`sample`というアプリを

元記事を表示

GitHub 二段階認証の、解除方法【リカバリーコードなし?】

[**GitHubのサポートチーム**](https://support.github.com/)に連絡して、
二段階認証を解除してもらう。

## 前提

SSH接続ができるよう設定されていることが必須。
[**GitHub – SSH接続の設定方法**](https://howpon.com/4982)

## 手順

### ① コマンド

**ターミナル**にて、以下を入力。

“`
ssh -T git@github.com verify
“`
表示されるメッセージは、あとで使う。

“`
// 表示されるメッセージ?
Please provide the following verification token to GitHub Support.
AOD6ZCPYBAVKMNZGUZZPUHGYAVJYHHAFM3W74….. // 以下省略。
“`

### ② GitHubサポートページ

[**Help with your GitHub account**](https://support.github.com/contact/account)にて、

元記事を表示

OTHERカテゴリの最新記事