今さら聞けないGit 2021年12月08日

今さら聞けないGit 2021年12月08日

CatallaxyのクラウドIDE(開発環境編) 2021

こんにちは、あの方と呼ばれるものです。名探偵コナンが好きすぎて、そう呼ばれています。今月に入り来春公開予定のトレーラーが公開されてテンションは上がっています。
そういう理由で遅れてしまっていますが、[Catallaxy Advent Calendar](https://qiita.com/advent-calendar/2021/catallaxy) 3日目を担当します。テーマは2021年後半のCloud IDE。

クラウド上の開発環境が流行っています。きっかけはM1マシン上のDockerと言っても過言ではありません。

# Catallaxyとクラウド開発環境

2021年の春ごろにGCPを多く使うようになったので、全エンジニアレベルでGCE VMインスタンスを使うことになりました。これは当社が[GCP for Startups](https://cloud.google.com/startup)というスタートアップ支援プログラムを受けるようになったことも影響しています。それ以前は個人のPC上に構築していたエンジニアが多かったように思います。

しかし時代は2021年。AWSによる

元記事を表示

git clone時に hostを切り替えて行う

## 背景
ユーザを一時的に使い分けてgit clone実行したい。
秘密鍵 id_rsaを変えずに 一時的に使い分けて指定したい。

## 秘密鍵を作成、公開鍵の登録
一時的に切り替えたいユーザ用の 秘密鍵を作成し、gitアカウントにて 公開鍵の登録

参考:
https://qiita.com/shizuma/items/2b2f873a0034839e47ce

## ~/.ssh/config の設定
“`
$ cat ~/.ssh/config
Host [ホスト名]
Hostname github.com
User [ユーザ名]
IdentityFile [秘密鍵の位置を指定]
“`

## git clone時
git clone git@[ホスト名]:[アカウント名]/[リポジトリ名].git

できた:relaxed:

元記事を表示

git repo にホストした自作 Ansible Collection を使う

サーバーの構築で共通する設定作業などを、 Ansible Collection で再利用できるようにしておくと便利ですね。
詳しい情報が[公式ドキュメント](https://docs.ansible.com/ansible/latest/user_guide/collections_using.html)に載っていますので、これを見ながら実際に試してみた(そして躓いた)手順を記録しておきます。

## collection を作る

`ansible-galaxy collection init` のコマンドで空 (skelton) の collection を作ることができます。
ここでは、 `thisis` という namespace に `example` という名前のロールを作ってみます。

“`zsh
% ansible-galaxy collection init thisis.example
– Collection thisis.example was created successfully
% find .
.
./thisis
./thisis/example

元記事を表示

git-flow、Github-flowとは

いままで開発を進めてくるにあたり、なんとなくgit-flowを使っていたので、まとめてみる。

# git-flow
デスクトップ/モバイルアプリケーションのように「リリース」を必要とするソフトウェアの開発に適している。


> 引用: https://nvie.com/posts/a-successful-git-branching-model/

## ブランチの種類と用途
ブランチはメインブランチとサポートブランチに分類される。

メインブランチ(常に存在するブランチ): `main`, `develop`
サポートブランチ(タスクに応じて作成する): `feature`, `hotfix`, `release`

### mainブランチ
– リリース済みのコードを管理するためのブランチ

### dev

元記事を表示

git command ちゃんと使ってる?

## はじめに

僕がよく使っているコマンドを、
help コマンドのドキュメントや、公式のドキュメントを見ながら解説していきます

### git add -p
変更のあるファイルを staging に移動する際のコマンドです。

““sh
git help add
“`
“`
-p, –patch
Interactively choose hunks of patch between the index and the work tree and add them to the index. This gives the user a chance to review the difference before adding modified contents to the index.

This effectively runs add –interactive, but bypasses the initial command menu and directly jumps to the patch subcomman

元記事を表示

【Git】間違えてadd,commitしたときの対処方法

##はじめに
「コミットに含めたくないファイルまでステージングしてしまった!」、「前のコミットに現在修正中のものも加えたい!」
「リファクタリング中にあれこれ試していたら機能が動かなくなってしまった。一旦、ファイル変更前の状態に戻したい。」
等など、たまにうっかりやってしまうGitミスを解決する方法をまとめました:sunny:

### add(ステージ)を取り消す。

“`
//sample.htmlのステージを取り消す。(ファイル名、ディレクトリ名の指定が可能)
git reset HEAD – sample.html
//全変更を取り消す。
git reset HEAD — .
“`
### 直前のコミットを取り消しする。

“`
//ローカルのファイルを残す
git reset –soft HEAD^
//ローカルのファイルも消す
git reset –hard HEAD^
“`

### 直前のコミットを修正する。(現在の変更をaddして追加することも可能。)
エディタが立ち上がるので、コミットメッセージを修正して「esc」→「q」→「w」
(-mでコメントを

元記事を表示

割と最新のgitを試しに使ってみる(bin-wrappers)

# どうせなら最新版の git をゲットしよう

あなたのシステムには既にgitが入っているでしょう。しかしそれは最新版ではありません。どうせなら最新版をゲットしましょう。

## 必要なライブラリ・パッケージをインストール

Ubuntu 20.04.3 LTS の場合。

“`sh:
sudo apt install dh-autoreconf libcurl4-gnutls-dev libexpat1-dev make gettext libz-dev libssl-dev libghc-zlib-dev
“`

参考:
https://ubunlog.com/ja/git-instala-control-versiones-ubuntu-20-04/

## gitのソースを持ってきて、ビルド
“`
git clone git@github.com:git/git.git
cd git
make
“`
## システムのgitを活かしたままビルドしたのを試しに使ってみる

git/INSTALL (翻訳はコチラ https://kuma35.github.io/gi

元記事を表示

この数日で学んだGit Command

今後使いそうなもの

①commitはまだしていないが、branchの作成を忘れmasterにコードを書いてしまった

1 git stash を使う

“`
git stash -u
“`
-uをつけることで新規に作成したフォルダも一時的に退避させる

2 branch作成、branch切り替え

“`
git checkout -b branch_name
“`

3 stashの内容を作成したbranchに反映させる

“`
git stash apply
“`

②commit を取り消す

“`
git reset –soft @^
“`

元記事を表示

Please make sure you have the correct access rights and the repository exists.の解決法

## 何をしたのか?
インターン先から支給されたPCでGitに接続しようとしたところ上述のエラーに遭遇。研究室で新規PC購入時Gitに接続すつ際にたびたび出会っているのでこの際にまとめてみました。
参考に載せますが、大変皆さんわかりやすい記事残していただいておりました!
ぜひそちらも参考にしてみてください。

### 環境
– M1 Mac Book Pro
– Big Sur 11.6

## 解決までのStep
**1. ssh keyを作成**
**2. 作成したものを新規にGitHub登録**
**3. 作成したssh key を参照するようにconfigを編集**
**4. 完成**

## Step1 ssh keyを作成

“`bash
$ ssh-keygen -t rsa GitHubに登録しているメールアドレス
作成するディレクトリとファイル名を聞かれる。基本的に~/.ssh/id_rsaとなっていればOK
——————-
Enter file in which to save the key (~/.ssh/id_rsa):

元記事を表示

Ubuntu に gh コマンドをインストールする

GitHub CLI である gh コマンドをインストールする手順です。

https://cli.github.com/

## gh コマンドのインストール

[公式のインストール手順](https://github.com/cli/cli/blob/trunk/docs/install_linux.md)を参考にインストールします。

“`
❯ curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
❯ echo “deb [arch=$(dpkg –print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main” | sudo tee /etc/apt/sources.list.

元記事を表示

git diff -I –ignore-matching-lines=

# gitバージョン確認

git 2.30か2.31あたりで実装されたオプションのようです。

# なんぞこれ?

diff の -I, –ignore-matchin-lines= と同様らしいです。
たとえばgitのソース(私が持ってきたのは以下のミラーです)

https://github.com/git/git

こちらには、git diffじゃなくて、diffのサンプルとして、htmlドキュメントインストール用にこんなスクリプトがあります。
(Documentation/install-webdoc.sh 抜粋)

“` sh:
T=”$1″

for h in \
*.txt *.html \
howto/*.txt howto/*.html \
technical/*.txt technical/*.html \
RelNotes/*.txt *.css
do
if test ! -f “$h”
then
: did not match
elif test -f “$T/$h” &&
$DIFF -u -I’^Last updat

元記事を表示

PlantUML のテキストで書ける Git Flow と PlantUML で描いた Git Epic Flow

Git Flow のブランチモデルは図で描かれることが多いです。Excel や Illustrator で描くと綺麗ですが修正や管理が大変です。
PlantUML はテキストで書けて修正や管理が簡単です。そして図の表示もできる PlantUML で Git Flow を書きました。

– 前半は git-flow のブランチモデルを PlantUML で作成する手順を 5 Step で紹介します。
– 後半は GitHub Flow や GitLab Flow そして git-flow を改善した Git Epic Flow を紹介します。

## 用語説明

– [Git](https://git-scm.com/) は分散型バージョン管理システムです。
– Git Flow は Git の機能のブランチの作成や更新をするルールのモデルです。
– [PlantUML](https://plantuml.com/) はテキストで UML を記述できる DSL(ドメイン特化言語) です。

### UML

[UML](https://qiita.com/ogomr/items/0b5c

元記事を表示

git-cryptを使ってlocal.settings.jsonなりシークレットを含むファイルをGitで管理する。(Windows PowerShellを使う編)

## はじめに
これはチーム内の課題であるよく更新されるシークレットを含んだファイルをどのように管理するかを調べた備忘録になります。

前提となっている条件は以下のとおりです。

– Windows 10
– Windows PowerShell
– Microsoft Azure

採用する技術は以下のとおりです。

– git
– GPG
– git-crypt

## この記事で取り扱うこと
– git-cryptをWindows10 , Windows PowerShell で使えるようにする方法。
– git-cryptを使ってGitのリモートリポジトリにローカルリポジトリの一部データを暗号化してPushする方法。

## この記事ではやらないこと
– git-cryptで生成した復号鍵の詳細な取り扱い方法。
– GPG,git-cryptについての説明。

## 手順

### 1回だけやること(=初期設定)

1. GPGをWindows PowerShellで使えるようにする。
2. git-cryptをWindows PowerShellで使えるようにする。
3. G

元記事を表示

Cloud9 + CodeCommitでサクッとterraform実行環境を作成する

# 目次

1. Cloud9 environmentを作成する

2. Cloud9にhomebrewをinstallする

3. Cloud9にtfenvをinstallする

4. .aws/credentialの設定をする

5. CodeCommitリポジトリを作成する

# 1.Cloud9 environmentを作成する

こちらのAWS公式ドキュメントを参考に、Cloud9 environmentを作成します。
https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/tutorial-create-environment.html

# 2.Cloud9にhomebrewをinstallする
1.で作成したCloud9 environmentを起動します。
tfenvをinstallするための前提条件として、terminalからhomebrewをinstallします。
※tfenvとは、terraformのバージョン管理ツールのことです。

terminalからec2-userのパスワードを再設定しま

元記事を表示

Gitで任意のコミットメッセージを含むコミットのファイル一覧をマージして表示する。

# 結論

以下のコマンドを実行。

“`bash
git log –grep=コミットメッセージ –name-only | sort | uniq
“`

# 考えのもと

コミットメッセージからログを絞り込む

“`bash
git log –grep=検索文字列
“`

特定のコミットのファイル一覧を取得(今回不使用だった)

“`bash
git show commit_id –name-only
“`

重複行の削除

“`bash
sort filelist.txt | uniq
“`

元記事を表示

Bitbucket PipelineをGithub Actionsと比較しながら使ってみた

# Bitbucket PipelineとGithub Actionsの違い

仕事でBitbucketを使う機会がありましたのでPipeline使ってみました。
普段Github Actionsばかり使っているので、Bitbucket Pipelineと違うところを比較してみます。

## CI用のファイル

| Github | Bitbucket|
| — | — |
| .github/workflowsの*.yml |bitbucket-pipelines.yml |

Githubの方は作業の種類ごとに細かくファイルを分けれますが、bitbucketは一つのみ?

## 複数の処理

|| Github | Bitbucket|
|—| — | — |
|YAMLアンカー| 使えない |使える |
|matrix|使える|使えない|
Bitbucketは[YAMLアンカー](https://support.atlassian.com/bitbucket-cloud/docs/yaml-anchors/) を使って複数の処理を一つの記述にまとめて、必要に応

元記事を表示

Git Commitizenをグローバルで設定する

グローバルで設定する方法がややこしかったのでメモ

以下でOK。

“`sh
npm install commitizen -g
npm install -g cz-conventional-changelog
echo ‘{ “path”: “cz-conventional-changelog” }’ > ~/.czrc
“`

ドキュメントにはinitのコマンドが書かれているけれど、自分の環境ではうまく動かなかったので、直接`.czrc`に書き込んでいます。

元記事を表示

Azure Databricksにてfiles in a Databricks repo機能により既存Reposにファイルを作成できない事象への対応方法

## エラー要因
Databricks Reposにて、ノートブックだけでなくファイルもアップロードできるようになったのですが、既存Reposにてファイルを作成の手順を実施してもファイルが実際に作成されませんでした。

[Databricks Repos Is Now Generally Available – New ‘Files’ Feature in Public Preview – Databricks ブログ](https://databricks.com/jp/blog/2021/10/07/databricks-repos-is-now-generally-available.html)

実際にどのような動作をしたかを紹介します。
既存のReposにて、右クリック -> `Create` -> `File`を設定選択します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/24031/baa93e04-a666-0cbd-9e9d-4d01d3484caf.png)

元記事を表示

「Gitでやらかした!!」でも、大丈夫です

## はじめに
みなさん!プログラムファイルの管理はしっかりできていますか?

今回は初心者がついついGitでやらかしがちな3つのケースに焦点を当てて話していきたいと思います。
※ Gitの基本的概念や使い方に関しては別の記事を見てください。

## ケース1. 「間違えてaddしてしまった」
本来addする予定のないファイルを間違えて勢いでaddしてしまった!やばい!ってなったことありませんか?
そんな時は、、、

“`
$ git reset ファイル名
“`
上記のコマンドを叩くことでステージングエリアに追加された特定のファイルを取り消すことができます。

また全てのファイルを取り消したい時は、、、

“`
$ git reset
“`
上記のコマンドを叩くことでステージングエリアに追加された全てのファイルを取り消すことができます。

## ケース2. 「間違えてcommitしてしまった」
無事addし、commitした直後に実はいらないファイルも混ぜてしまってた!やばい!ってなったことありませんか?
そんな時は、、、

“`
$ git reset –soft H

元記事を表示

Gitのコマンドの取り消し方マニュアル

よく忘れるので自分用メモ
# git init
`.git`リポジトリを作っているだけなので

“`sh
rm -rf .git
“`
# git config
`–unset`を使う

“`sh
git config –global –unset user.name #user.nameが消去される
“`
# git add
## git init直後の場合

“`sh
git rm –cached -r . #すべてのファイル
git rm –cached -r example.js #特定のファイル
“`
## 2回目以降の場合

“`sh
git reset HEAD #すべてのファイル
git reset HEAD example.js #特定のファイル
“`

参考: [git add を取り消す](https://qiita.com/yukure/items/89562e5eb1d03995dc5b)
# git commit
## コミットを「取り消す」
直前のコミットの場合は、

“`sh
git reset –soft HEAD^ #ロ

元記事を表示

OTHERカテゴリの最新記事