今さら聞けないGit 2022年01月12日

今さら聞けないGit 2022年01月12日

Gitコマンド&ノウハウ<中級編>

#導入〜ご挨拶〜
こんにちは、ハルです

私事ですが先日、Git(Github)を学び直しました。
その際、メモとして書いたものを連携しようと思います。
※あくまで本人視点で記述しているので大衆向けではないです。

因みに、コメント(所感)も添えました。
復習、もしくは興味本位(こんなこともできるんだ)で見てもらえたら恐縮です。

#1.Git_コマンド編
##1.1. ワークツリーの変更を取り消す
“`
#ワークツリーのファイル変更を取り消す
git checkout — <ファイル名>

#ローカルリポジトリのディレクトリ変更を取り消す
git checkout — <ディレクトリ名>

#全てのワークツリーの変更を取り消す
#git checkout — .
“`

【コメント】

ワークツリーでの作業は上記のコマンで取り消せます。
「コードを修正・変更したけど、上手くいかない。一旦、仕切り直ししたい!」って方にはピッタリですね。
ただし、一旦「add」してしまった場合は上記のやり方では取り消せません!
上記のコマンドは「ステージ領域にあるデータを取得し

元記事を表示

[git blame] ファイルを誰がいつ更新したか調べる

次のコマンドで、指定したファイルを誰がいつ更新したか調べることができる。
“`git blame {filename}“`

例)

“`
git blame feature.txt
C:\workspace\01_Project\34_gittest_clone\gittest>git blame feature.txt
fe135f73 (jeronimo34 2022-01-11 00:01:55 +0900 1) “great feature”
“`

元記事を表示

gitのデフォルトブランチ名がconfigに記述しても変更されない!

# はじめに
昨日投稿した以下の記事で「そのうち書こうかな」と言っていたやつです。
gitのデフォルトブランチ名を変えたのに、なぜか`git init`してもブランチがmasterで作成されて困ったという話。

https://qiita.com/devtoku/items/9fd4f135488420a10f4f

# 原因
**gitのバージョンが古いことが原因でした。恥ずかしい。**
どうもconfigでdefaultbranchの名前を変えられる昨日は、バージョン2.28から追加されたようです。
自分のgitのバージョンを調べてみたところ、見事に古いバージョンのものでした。
gitのバージョンを調べるコマンドは以下のとおり。

“`
git version

#gitのバージョンが表示されます
git version 2.XX.X
“`

# 解決方法
### gitの更新
リポジトリをOSに追加する方法でgitをインストールしてた人は多分`apt update` `apt upgrade`で更新できてたと思うけど、自分はなぜかgitのリポジトリが追加されてなかった(多分直

元記事を表示

そのオープンソースプロジェクト、公開前に大事な情報コミットしてない?

通常、秘密鍵やAPI Tokenはソースコードとは分離させ、.envファイルなどに保存しておいて、Gitのコミットには含めない。しかし、実装の初期には.envを一時的にコミットに含めている事例も珍しくない。それを後で削除してコミットしても、履歴としては残っている。

この記事では、スマートコントラクト用の秘密鍵や、APIトークンなどの情報をGitのコミット履歴から検索し、リポジトリを公開する前に安全を確認できるツールを紹介する。

##コミット履歴を展開する
私の作ったesightというツールを使う。

https://github.com/TakutoYoshikai/elemental-sight

git logを使って確認するのが一般的だが、一度全て展開した方が、後の編集や確認が楽になる。

**インストール**

“`bash
pip3 install git+https://github.com/TakutoYoshikai/elemental-sight.git
“`

**コミット履歴の展開**

出力先ディレクトリに、全てのコミットの差分ファイルが展開される

元記事を表示

git push時にエラーが発生した! (fatal: Authentication failed ~, src refspec ~ does not match any.)

# はじめに
最近、大学入学時くらいに作成しただけしておいたgithubのアカウントをなんとかせにゃならんな~、と唐突に思った。
あとついでにDockerの知識確認もしたかったから、試しにDockerを使ってNext.jsのサンプルアプリでも立ち上げて、`git push origin main`してみたところ、記事タイトルのエラー発生。
しばらくハマったので戒めのために書いておくことにする。

# 環境
– OS: Linux(KDE neon 5.23.5)
– git version: なんか.22とか.23くらいの古いやつだったはず

# 発生したエラー
たしか下記の2つ。

“`
fatal: Authentication failed for ‘https://github.com/{your user name}/{your repository name}.git’
error: src refspec {your branch name} does not match any.
“`

# 原因
原因は多分下の2つ。多分。

– push時に用いるgithubのパ

元記事を表示

git tagでsortとformatを使いこなそう

git tagのデフォルトだと、情報量が少なくてあんまりよくわからんこと多いので使い方調べたメモ

## 基本

めんどくさくてwebで調べがちだけど、manを一度読むべき.

“`
$ man git-tag
NAME
git-tag – Create, list, delete or verify a tag object signed with GPG

SYNOPSIS
git tag [-a | -s | -u ] [-f] [-m | -F ] [-e]
[ | ]
git tag -d
git tag [-n[]] -l [–contains ] [–no-contains ]
[–points-at ] [–column[=] | –no-column]

【Git】個人操作

# リポジトリ
> ファイルやディレクトリの状態を記録する場所(参2)

# コミット

# 参考文献
参1:Rick Umali(著) 吉川邦夫(訳)、「独習Git」、翔泳社、2020/12/10、[Amazonリンク](https://www.amazon.co.jp/%E7%8B%AC%E7%BF%92Git-%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A6%E3%83%9E%E3%83%AA/dp/4798144614)

参2:[サル先生のGit入門](https://backlog.com/ja/git-tutorial/)

【Git】ファイル操作

# ファイルの作成
まだ、ファイルを作っていないときに行う作業。

“`
mkdir <ファイル名>
“`

ファイル作成後、そのディレクトリ内で作業を行う

# ディレクトリの移動
“`
cd <ディレクトリ名>

お正月休みにGitをインタラクティブに操作できるサブコマンドツール作ってきました

年末からお正月にかけての時間で趣味でツールを作ってみました?
Gitのちょっと面倒な操作をインタラクティブに行えるGitのサブコマンドツール[git-ex](https://github.com/yasukotelin/git-ex-js)を作成してnpmに公開しています。

https://github.com/yasukotelin/git-ex-js

https://www.npmjs.com/package/@yasukotelin/git-ex

僕は普段はAndroidエンジニアとしてKotlinを書いていますが、趣味ではVimのカラースキーム作ったり、Goでツール作ったり、Rustに手を出したり、、、など色々しています。今回はJavaScriptのターミナルのライブラリがとても良さそうだったのでnode製のCLIツールを作ってみました?!

このQiita記事では前半にツールの紹介と、後半で実装面を書いてみようと思います。

## ツールの紹介

僕は普段Gitをターミナル上でコマンドで使っているのですが、たまにSourceTreeなどのGUIツールやTIGなどのツール

最小コードで変化が分かるGithub Actions

(タイトルの比較対象は私の知る範囲です)

いろいろなページを斜め読みしてたんですが、結局よくわからなかったので、forkして設定すれば動くようなものを目指しました。
forkして後述のシークレット変数を設定すれば動くので、試してみてください。

https://github.com/shimajima-eiji/__Githut-Action_demo

ほとんどREADMEに書いてます。

## ソースコード
https://github.com/shimajima-eiji/__Githut-Action_demo/blob/main/.github/workflows/add_dummy.yml

“` /.github/workflows/add_dummy.yml
# 本稿で解説時点のコード
name: small git push # (任意で変更できる。Github Actionsの一覧で表示される名称)

on: [push]

jobs:
run-shell-command:
runs-on: ubuntu-latest
steps: #

【.gitignore】特定のファイルをGitの管理対象から除外する方法

##はじめに
Git管理したくない特定のファイルをGitの管理対象から外すには、.gitignoreというファイルに書き込む方法があります。

##.gitignoreとは
.gitignoreとは、記述されたファイルやフォルダなどをGitの管理から無視(ignore)するファイルです。
ただし、すでにリポジトリにあるファイル等は除外できません。
そのためファイルをリポジトリに追加した後に.gitignoreに記述した場合は、リポジトリから特定のファイル等を削除する必要があります。

##.gitignoreを作成する
除外したいファイルがあるディレクトリに.gitignoreを作成します。

“`
$ touch .gitignore
“`

##除外したいファイルを書き込む

“`
# .gitignoreと同じディレクトリにあるファイルを除外したい場合
/hamberger.txt
/potet.txt

# 特定の拡張子を除外したい場合
/*.txt

# フォルダごと除外したい場合
menu/
“`

##リポジトリに追加したファイルを除外したい場合
ファイルをリポジ

【Git】まとめ

# 個人開発
https://qiita.com/Takoyaki_Bomber/items/c6c7d9d52da2c195e668

# 共同作業

java ソースコードを github に上げるまで

java のソースコードを github に上げるまでの手順です。
ここでは「args_parser」というプロジェクト名とします。

## 1. github でリポジトリを作成
[github](https://github.com/) でリポジトリを作成します。
![スクリーンショット 2022-01-09 10.18.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248817/576314e6-39fc-af92-5b78-618b2d07f9a0.png)

ローカルに `clone` します。

“`sh
$ git clone git@github.com:h-isota/args_parser.git
“`

## 2. gradle で Java プログラムの雛形を生成

java ソースコードの雛形を作成します。

“`sh
$ cd args_parser
$ gradle init –type java-application
“`

「app」というフォルダ内に

Githubにある自作のnpmモジュールをnpm installしてENOENTなエラーが出た時

# はじまり

自分で作ったnpmモジュールをubuntu環境へinstallしようとしたときに以下のエラーが出ました。

“`bash:log
root@ca04e13630cb:/usr/app# npm install git+https://github.com/Landmaster135/FeedFetcher.git
npm ERR! code ENOENT
npm ERR! syscall spawn git
npm ERR! path git
npm ERR! errno -2
npm ERR! enoent An unknown git error occurred
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2022-01-08T17_49_46_172Z-debug-0.

git-lfsをバージョン指定してインストールする

git-lfsをバージョン指定してインストールしたい時がたまにある。以下を参照すればOK。

> [https://github.com/git-lfs/git-lfs/releases](https://github.com/git-lfs/git-lfs/releases)
> [https://packagecloud.io/github/git-lfs](https://packagecloud.io/github/git-lfs)

###(例)git-lfs=2.13.3を使いたい場合

以下のように実行すればOK。

> [https://packagecloud.io/github/git-lfs/packages/ubuntu/bionic/git-lfs_2.13.3_i386.deb](https://packagecloud.io/github/git-lfs/packages/ubuntu/bionic/git-lfs_2.13.3_i386.deb)

“`bash
# Installする場合
$ sudo apt-get install git-lfs=

docker for windows + ubuntu18.04 . git command not found

立てたばかりのubuntu環境でapt-get installしたいときは、まず“`apt-get update“`が必要だよという話。

GitHubの楽しそうなコードを動かそうと思って、WindowsPCでDockerのubuntu18.04環境を立てた。
“`docker pull ubuntu:18.04
docker run -it –name ubuntu:18.04
“`

さっそく目当てのリポジトリを、コンテナ内にダウンロードしようと思いgitコマンドを使たところ次のようなエラーが出た。
**bash: git:command not found**

そうだ、git インストールしてないじゃん!
と思いながら、インストールするおなじみのコマンド
“`apt-get install git“`
を入力すると、以下のエラーが出る。
***Reading package lists… Done
Building dependency tree
Reading state information… Done
E: U

年末年始にやってみたチュートリアルまとめ

2021-2022の年末年始にやってみたチュートリアルのまとめ。

普段使っている技術の学び直し。

|キーワード|やってみたチュートリアル|感想|
|—-|—-|—-|
|git|[たぶんもう怖くないgit〜git内部の仕組み〜](https://qiita.com/marchin_1989/items/2ec01553e907f3a9e6bb)|gitを使うエンジニア必読|
|DynamoDB|[Amazon DynamoDB Developer Guide](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide)|本家のチュートリアル。GSIについて理解できた。|
|ECS,Fargate|[Introduction to Amazon ECS](https://catalog.us-east-1.prod.workshops.aws/v2/workshops/a2b9971a-7a6e-40f3-96e7-5a04b46d1f98/ja-JP/)|本家のチュートリアル。マネコンか

【git-flow】ポートフォリオ作成期間におけるGitHubとブランチ管理法【issue】

## はじめに
こんにちは、kazumakishimoto([@kazuma_dev](https://twitter.com/kazuma_dev))です。
git-flowとGitHub issueを活用した、ポートフォリオ作成期間におけるGitHubとブランチ管理法のメモです。
※リポジトリ名やブランチ名は一例のため、適宜変更してください。

## 1.git-flow準備

### 1-1.git-flowインストール

“`
$ brew install git-flow
“`

### 1-2.ローカルリポジトリ作成

“`
$ mkdir git_flow_test
“`

“`
$ cd git_flow_test
“`

### 1-3.git-flow初期化

“`
$ git flow init -d
“`

### 1-4.リモートリポジトリ作成

![kazumakishimoto_git_flow_test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/687

【超初級編】思考停止で使っていたGitを知るためのまとめ

##はじめに
なんとなく使っていましたが、きちんと理解して扱うためにまとめてみました。
あくまで自分の学習のためですが、自分と同じ初心者の方の役に立てればと思います。

####Gitとは
ファイルの変更や削除を記録してくれるバージョン管理ツールです。
それだけではあまりピンとこないかもしれない(自分もピンとこなかった)ので、流れで説明します。

例えば、新しくHTMLファイルを作ったとします。
そのファイル内の文章を大幅に書き換えようと思いましたが、やっぱり元のファイルに戻したくなるかもしれません。
そんな時のために変更前のファイルのコピーをとっておこうとしますが、変更するたびにコピーをとっていたら大変です。
ファイルの量がどんどん増えていきますし、管理するのに手間がかかります。
この問題を解決できるのがGitです。
ファイルの変更履歴を保存し、管理してくれます。

##Gitの使い方
基本的な流れは、
「リポジトリを作り、ファイルを変更したら追加していく。」
という感じです。

####リポジトリを作る
リポジトリとは、Gitがファイルの変更履歴を保存する場所です。

まずは作業

【Git】操作コマンド早見表 その2(Mac用)

#背景
前回作ったものの続きになります。
今回はブランチに関するコマンド、リモートリポジトリを使うコマンドをメインに作成しました。(2022年1月7日時点)
macOS : Monterey
git version : 2.34.1

#ブランチに関するコマンド
|コマンド|オプション|できること|
|:-:|:-:|:-|
|git branch|-|今あるブランチを確認する。|
|git branch ブランチ名|-|ブランチ名のブランチを作成する。|
|-|-d ブランチ名|指定したブランチを削除する(mergeしたは後は必須)。|
|-|-vv|ローカルのブランチとリモート追跡ブランチの対応関係を見る。|
|-|-r|リモート追跡ブランチを表示する。|
|git switch ブランチ名|-|指定したブランチ名のブランチにHEADを移動する(編集するブランチを変更する)。|
|-|-c ブランチ名|指定したブランチを作成し、そのブランチへ移動する。|
|git log|–all|全てのブランチも含めたログを表示する。|
|-|–graph|各ブランチのログの繋がりをグラフ状