今さら聞けないGit 2021年05月26日

今さら聞けないGit 2021年05月26日

git-secretsでgit経由の情報漏洩を防ぐ

AWSの学習を始めたので、`git-secrets’で安全な運用ができるように
学習しました。忘れないようにまとめておきます。

## `git-secrets`とは
https://github.com/awslabs/git-secrets
>Prevents you from committing passwords and other sensitive information to a git repository.

パスワードやその他センシティブな情報をコミットから貴方を守ります。
コミット時や任意のタイミングで、コミット内容やmessageに機密情報が含まれないかをチェックすることができます。
情報漏洩が何かと問題に上がる昨今、こういったツールで管理することは大切ですね。

## インストール

“`shell
$brew install git-secrets
“`

## コマンド概要(Synopsis)

“`shell
git secrets –scan [-r|–recursive] [–cached] [–no-index] [–untra

元記事を表示

【git苦手な人の為の】gitの環境構築

本当にgitが苦手なので、いつもよくわからなくなる環境構築についてまとめておくことにしました。

##環境
OS:AmazonLinux2
プライベートなリモートリポジトリを利用するGitHubアカウント向け

##認証の設定がないとできないこと
リモートリポジトリに対しての下記のgitコマンドは、https又はsshそれぞれの方法で認証の設定を事前に行わないとユーザー名とパスワードの入力を求められる。
その時に入力しても良いけど、毎回面倒なので設定しておくべき。

“`bash
git [clone|fetch|pull|push] xxx…
“`

##httpsで通信する場合の認証

**①アクセストークンの作成**
下記から作成できる。

https://github.com/settings/tokens

**②サーバーへ情報登録**
色々やり方はあるけど環境変数に登録しておく方法がいちばん楽そうかも。

“`bash
export GIT_USER=
expoft GIT_EMAIL=
export GIT_TOKEN=

元記事を表示

VScodeのリポジトリの初期化を元に戻したい

#経緯について
MAMPでリポジトリを作成し全てGithubにあげようとした際、変更が多すぎてエラー発生。
MAMPディレクトリ内のhtdocs以降のみにしようとhtdocsからVScodeで開いたが、MAMP全体の変更が表示された。
image.png image.png

##動作環境
・MacOS big Sur
・Visual Studio Code バージョン: 1.56.2
・git version 2.31.0

##試したこと

元記事を表示

ブランチに上流ブランチはありません。このブランチを公開しますか?

エラー.png

#はじめに
これまでGithub Desktopを使用していたためVScodeでのGit操作になれず、Githubからクローンしたデータからカレントブランチを正常に作成できなかったので、調べてわかったことをまとめます。

#結論
リモートのmainブランチからカレントブランチを作成することで発生するエラーだった為、ローカルのmainブランチからカレントブランチを作成する必要があった。

##動作環境
・MacOS big Sur
・Visual Studio Code バージョン: 1.56.2
・git version 2.31.0

##根拠
・「ブランチに上流ブランチはありません。このブランチを公開しますか?」の表示
origin/masterブランチにカレントブランチを作成すると発生。

元記事を表示

SECCON Beginners CTF 2021 解けなかった問題を勉強した記録2

SECCON Beginners CTF 2021 解けなかった問題を勉強した記録2
悔しさを忘れないために残す
反省なくして,進歩なし

# misc 01 git-leak

## 問題

後輩が誤って機密情報をコミットしてしまったらしいです。ひとまずコミットを上書きして消したからこれで大丈夫ですよね?

どっかで見たな。へじゃぶ

## 当日の行動

最近覚えたてのアレで

“`
$ git log –all -p flag.txt
fatal: ambiguous argument ‘flag.txt’: unknown revision or path not in the working tree.
Use ‘–‘ to separate paths from revisions, like this:
‘git […] — […]’
“`

ありっ,通用しねー。

## 復習と反省

反省の結論
ググり方が悪い
「git log 戻す」で検索するとバンバンに出てくる

https://qiita.com

元記事を表示

【Git】開発の流れと開発の際によく使用するコマンド

# Gitを使用した開発の流れ

###リポジトリのクローン
リモートリポジトリからローカルへリポジトリをクローン(複製)する

“`bash:
git clone リポジトリのURL
“`

###ブランチの作成

“`bash:
git branch 作成するブランチ名
“`

ローカルブランチの一覧を確認

“`bash:
git branch
“`

リモートブランチの一覧を確認

“`bash:
git branch -a
“`

###ブランチの切り替え
作成したブランチへ切り替える

“`bash:
git checkout ブランチ名
“`

###実装
実装内容の確認(変更を行ったファイルの確認)

“`bash:
git status
“`

###実装後
変更したファイルをインデックス(ステージング)へ追加する

“`bash:
git add ファイル名
“`

変更を行ったファイル全てを一括でステージングへ追加する場合

“`bash:
git add ./
“`

###コ

元記事を表示

Railsチュートリアル(第6版) 第6章 ユーザーのモデルを作成する

#第6章
この章はユーザーモデルを作っていく。前章はスタブページまでで終わったが、これからひたすらユーザー登録に関することを学んでいく。
(なんと本章から第12章までひたすら作っていくのでしんどい道となる)
頑張ろう

##Userモデル
ユーザー登録するからユーザー登録用ページを作る前に、まずは名前、メールアドレス、パスワード等を保存するためのデータ構造を作成しなければならない。
このデータ構造を、Railsでは**Model(モデル)**という。
また、データベースとやり取りするためのRailsライブラリは、**Active Record**と呼ばれる。
通常データベースを使うなら、SQLという言語を使うが、Railsではマイグレーション機能で、データベースの構造を切り離してくれるため、SQLを意識しなくてもOK
(この辺りの機能便利だなーと思った。筆者は仕事でSQLを多少なりと触っていた経験があるので、SQLをいじらず作成できるのはでかい)

なおRailsチュートリアルでは、開発環境ではSQLiteを使用し、本番環境はPostgreSQLを使う。

###データベース移行

元記事を表示

git pushした際にrejectされる問題について

初心者です。初心者がよくやってしまうミスについて備忘録として残します。

このエラーに遭遇した背景としては、コードを書いている時にエラーに遭遇し、一度commitを戻したいと思ったことが始まりでした。下記のコマンドでcommitを戻し、

“`
git reset –hard コミット番号
“`

その後、git pushを行ったところ、下記のエラーに遭遇しました。
gitに関する理解が浅かったため、commitを戻した後にgit pushはできないことを知らず行ったところ今回の事態となってしまいました。

“`
! [rejected] controller_test -> controller_test (non-fast-forward)
error: failed to push some refs to ‘https://github.com/XXXX/XXX_app.git’
hint: Updates were rejected because the tip of your current branch is behind
hint: its r

元記事を表示

gitオリジナルコマンド作成【初心者向け】

#オリジナルコマンド作成

gitでの時短コマンドを作成しました。

/usr/bin など、適当にパスが通っているディレクトリで以下のファイルを作成します。

chmod +x で実行権限を与える必要があります。

“`shell:gam

#!/bin/bash
if [[ $1 = “” ]]; then # 引数がない場合
echo “Error : Requires an argument” 1>&2
exit 2
else
git add –all
git commit -m”{$1}”
fi
“`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/659469/6c9abaa9-c455-bfd1-08a0-0a9a1d6119c6.png)

“`shell:gao

#!/bin/bash
if [[ $1 = “” ]]; then # 引数がない場合
echo “Error : Requires an argument” 1>&2
exi

元記事を表示

【Git】エイリアスを付けてコマンド入力を楽にする

題名の通り、エイリアスを付けることでコマンド入力が楽になる方法を学んだので、アウトプットさせていただきます。

“`
git config –global alias.ci commit
git config –global alias.st status
git config –global alias.br branch
git config –global alias.co checkout
“`

alias.の後に、自分が分かりやすいエイリアスを設定します。
例)commit → ci

–globalを付けることで、pc全体に設定を反映させることができます。

簡単ではありますが、参考になったら嬉しいです。

元記事を表示

We couldn’t deliver this payload: timed out|GitHubのwebhookでのエラー

# 解決した方法(私のところでは)
プルしている本番環境で自動的に変わってしまっていたファイルを
元に戻してプルし直したら治りました。

# 状況
数カ月ぶりの更新をしたサイトでエラーがでました。

# エラーメッセージ
これはGitHubのwebhookのログ画面で確認しています。

“`error.log

Request
We couldn’t deliver this payload: timed out

Payload
We can’t highlight this payload because it’s too large

“`

画面ではこんな感じで表示されます。

![qiita.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/169482/de474622-671f-8758-3c2c-d560ec576478.jpeg)

# 環境
ここで環境を整理しておきます。
管理しているプロジェクトはWordPressでwp-contentディレクトリごと管理をしています。
ここでポ

元記事を表示

rails5アプリのローカル開発環境メモb

#ローカル開発環境をスムーズに行うために簡素版

ローカルの開発の時に急に詰まることありませんか?
僕は、ちょいちょいエラーが起きてしまうことがあるので、
備忘録としてこのメモを残します。
注意としては、Rails6には慣れていないので、Rails5を選んでいます。

##開発環境

macOS Bigsur 11.3.1
Ruby 2.7.2
Rails 5.2.6
Bootstrap 4.5.0
Devise

– – –

##準備開始

“`ruby:初期処理
#最初に行うのはinit
bundle init

#このオプションを入れることで、プロジェクトのvendor/bundle以下にgemが格納される
bundle install –path vendor/bundle

#ここで、いよいよrailsをインストール
bundle exec rails new . -B –skip-turbolinks
#herokuへデプロイするならpostgrsqlを選択
bundle exec rails new . -B -d postgresql

#今回はこれ
bundl

元記事を表示

Gitのブランチ設計するときに、カッコつけたいあなたへ

# 導入

ちょっと煽った感のあるタイトルにしてみる。

プロジェクトと切っても切れない関係のGitのブランチ設計。

どうやって説明資料を作成しようか?
いちいちパワーポイントなんか使うのもめんどくさいし.. darwioなんかでもいいけど.. PlantUMLのフローチャートとかもありか..

個人的には、重要だけど少しめんどくさかったです。できればカッコよく書きたいし。
そんな折に出会ったのが、こちらの[gitgraph.js](https://gitgraphjs.com/#0)です!!!

クールなブランチの図が、JSで簡単に書ける!

# テンプレートを用意した

さて、どうやって書いて使おうか… 最終的なアウトプットとして、PNGとかPDFとかで欲しいなぁと思いながら…
公式リポジトリを除いてみるとTypeScriptにも対応しているとのこと。
じゃあ、**TypeScriptで書いて、md形式とかでアウトプットしたい!**

そんなテンプレートを作成しました => [リポジトリはこちら。](https://github.com/kumakuma5867/gitg

元記事を表示

Git fetch時にリモートリポジトリで削除されたブランチをローカルリポジトリから削除する

# 目的

– `$ git fetch`時にリモートリポジトリで削除されたブランチをローカルリポジトリから削除する方法をメモ的にまとめる

# 方法

– 下記コマンドを実行する。

“`terminal
$ git fetch -p
“`

– 下記でもよい。

“`terminal
$ git fetch -prune
“`

元記事を表示

git commit時のチェック処理を無効化したい

git commit時にhuskey等を使って、事前にチェックをしている処理なんかがあると思います。
そちらの制約に引っかかって、うまくgit commitできないケースがあると思います。

一時的にチェック処理を外したい場合は–no-verifyオプションを使用します。

## 例えばこんなケース

`package.json`にこうした記述があると、`git commit`時に`yarn`の処理が走って、こちらのケースだとeslintのチェックが入ります。(huskyも入っているハズ)

“`json:package.json
“lint-staged”: {
“**/*.js”: [
“yarn run eslint –fix hoge/*.jsx”,
“git add”
]
}
“`

## 無視するには

もちろんチェックすることは良い事ではあると思いますが、一時的に無視したい場合は、`git commit`時に`–no-verify`のオプションをつけると無視することが出来ます。

“`bash
git commit

元記事を表示

すでにGitHubで管理しているディレクトリの一部をサブモジュール化する手順

#前提条件

MainDirectory ← 最初の手順のカレントディレクトリ
.
├── SubDirectory
:
└── SubDirectoryForSubmodule ← このディレクトリをサブモジュール化する手順

#作業手順
## サブモジュール化したいディレクトリ(SubDirectoryForSubmodule)をGitの管理から除外する
“`zsh
git rm -r –cached SubDirectoryForSubmodule
“`

## SubDirectoryForSubmoduleをGitHubにあるリポジトリと同期させる
“`zsh
cd SubDirectoryForSubmodule
git init
git remote add origin https://github.com/{ユーザー名}/{リポジトリ名}.git
git fetch origin
git merge origin/master
“`

## SubDirectoryForSubmoduleのリポジトリをプッシュする
“`zsh
git add .
git

元記事を表示

GitHubのアカウントをディレクトリごとに切り替える

#はじめに
大学用のGitHubアカウントと,プライベート用のGitHubアカウントを使い分けようと思い,調べたことをまとめてみました.

#複数アカウントの使い分け
###メインのアカウントについて
まずは以下のコマンドでメインのアカウントについて,`~/.gitconfig`に設定します.この際,オプションは`–global`とします.
既に設定が完了している場合は,読み飛ばしてください.

“`
$ git config –global user.name “name”
$ git config –global user.email “email”
“`

これでメインアカウントの設定が完了しました.

###サブのアカウントについて
メインのアカウントでは,全てのディレクトリに対してアカウントの紐付けがされています.ここでは,サブのアカウントをディレクトリごとに紐付けていきます.

まずは,サブのアカウントで使いたいディレクトリへ移動します.
先程,`–global`オプションを用いて設定を行いましたが,ここでは`–local`オプションを用います.これで,そのデ

元記事を表示

githubリポジトリの一部を、別のgithubリポジトリとして独立させる

github.com/mrmt/john/doe を github.com/mrmt/doe として切り出して独立させる例

からっぽの github.com/mrmt/doe リポジトリを作っておく

github.com/mrmt/johnをいったんきれいにチェックアウトする

“`bash
git clone git@github.com:mrmt/john.git
“`

doe以下を別リポジトリとしてpushできる状態に再構成する

“`bash
cd john
git filter-branch –subdirectory-filter doe HEAD
“`
それを github.com/mrmt/doe にpushする

“`bash
git remote add tmp git@github.com:mrmt/doe.git
git push tmp
“`

github.com/mrmt/johnにて、doeを掃除する

“`bash
cd ..

rm -rf john
git clone git@github.com:mrmt/john.git

元記事を表示

Railsチュートリアル(第6版) 第5章 まとめ

#第5章
第5章はレイアウトに関する事柄が大半。
具体的には、HTML、CSS、Bootstrap(Twitter社が公開しているやつ)、Asset Pipeline等を用いて、レイアウトを良い感じにしていく。
また、最後に統合テストについての紹介がある。

##構造を追加
Twitter社のWebデザインフレームワークの`Bootstrap`を利用する。また、パーシャル機能を使ってコードを整えていく。
Viewの画面だけではなく、コードも可読性を上げるというのが目標。

Webアプリケーションを作るときは、モックアップといってユーザーインターフェースの概要を作成しておくと良い。

###ナビゲーション
まずは、リンクとスタイルを追加するために`application.html.erb`にHTML構造を追加する。

“`html



<%= full_title(yield(:title)) %>
<%= csrf_meta_tags %>
<%= csp_meta_ta

元記事を表示

Privateリポジトリからgit cloneする方法

## SSH鍵認証を行っている場合

ssh鍵認証を行っている場合は以下のコードで`git clone`できる

“`
git clone git@github.com:[リポジトリの所有アカウント]/[リポジトリ名].git
“`

## SSH鍵認証を行っていない場合

ssh鍵認証を行っていない場合は以下のコードで`git clone`できる

“`
git clone https://[リポジトリの所有アカウント名]@github.com/[リポジトリの所有アカウント]/[リポジトリ名].git
“`

この場合,パスワードの入力が求められる.
なお,`git clone https://[リポジトリの所有アカウント名]:[パスワード]@github.com/[リポジトリの所有アカウント]/[リポジトリ名].git`でパスワードの入力を省略できる.

参考文献
– [GitHubのプライベートリポジトリをgit clone](https://qiita.com/ynaito/items/9171d13f21210da9a5c3)
– [【Git】チーム開発 メンバーがp

元記事を表示

OTHERカテゴリの最新記事