今さら聞けないGit 2022年09月07日

今さら聞けないGit 2022年09月07日

GitHubとは何かと、使い方

# Gitとは?
一言で言うとバージョン管理システム。
ファイルの更新履歴も管理できるので、編集前の状態に戻したり、差分が確認できて便利。
CUIのツール。

# GitHubとは
Gitで管理しているファイルを、世界中の人々が公開できるウェブサービス。「Git」の「Hub」。
自分以外の人にGitで管理しているプログラムを公開したり、自分以外の人も編集できるようにできる。
GUIのツールなのでわかりやすい。

# リモートリポジトリ
専用のサーバーに配置して、みんなで共有/管理するためのリポジトリ

# ローカルリポジトリ
自分のPCでに配置するリポジトリ。

# コミット
ファイル/ディレクトリの追加や編集の履歴を記録するためにコミットをする。
これによって変更履歴が作成される。
この時、自分が何をしたのか、誰がみても理解できるコミットメッセージを入力する。

# プッシュ
リモートリポジトリにローカルリポジトリの編集履歴共有する時ことを指す。

# ブランチ
現在リリースしているバージョンをメンテナンスしながら、新機能の開発やバグ修正を行う。
みたいな時に、並行して複数のバージョ

元記事を表示

GitHub備忘録[四進編]

# はじめに
 ゲームが楽しすぎてプログラム作成が全く進まないという贅沢な悩みを抱えています。
 久しぶりにプログラムをWindowsで組んでいるとLinuxとは違うソフトが使える点に、すごく便利だと感動しました。そこで、そういえばWindowsを触っている時にGitHubを触ったことがないなと思い当たり、GitHubの使い方を調べてみました。
 その備忘録です。

# Gitのダウンロード

 次のサイトからGitのインストーラーをダウンロードします。

https://gitforwindows.org/

 適当に「次へ」を連打してインストールを完了させてください。

# コマンド

 インストールが完了すれば、次のコマンドを使用して、ちゃんとインストールされていることを、もしくはコマンドが環境変数に適応されていることを確認してください。

“`
git –version
“`

 僕がインストールした環境であればgit version 2.37.3.windows.1と表示されました。
 これからgitへのpushだとか、githubへのpushはlinuxと同様のコマン

元記事を表示

ローカルのGitリポジトリのデフォルトブランチをmainに変更する

## 初めに
私は実務でも個人でもソフトウェア開発にGitHubを使用している。GitHubは2020年10月より、新たに作成したリポジトリのデフォルトブランチを**master**から**main**へと変更した。その背景は[こちら](https://techtarget.itmedia.co.jp/tt/news/2102/14/news01.html)を参照されたい。
今更ながら私も時代の潮流に乗ろうと思い、また**main**の方が**master**よりもタイピングしやすいとも感じたため、今後はリモート・ローカルリポジトリ共にデフォルトブランチを**main**で開発しようと思い、ローカルリポジトリにおけるその方法を執筆する至った。
## 環境
– macOS Big Sur
– 【更新前】git version 2.19.0 –> 【更新後】git version 2.37.3
– Homebrew 3.5.10

## 手順
### #0 Gitのアップグレード
ローカルリポジトリのデフォルトブランチの指定は、Gitのバージョンが**2.28.0**以降の場合に設定で

元記事を表示

Gitコマンドと基本的なことのメモ殴り書き

過去に自分が勉強したことを投稿してみます。

私はこちらの教本を読んでGitを勉強しました。
実務経験がないので、ほとんど使っていませんが…

www.amazon.co.jp/dp/429500524X

良ければまた投稿します。

# 超基礎知識
– コミット(記録のこと)
– リポジトリ(コミットの保管場所)

|分類|保存場所|
|:—:|—|
|ローカルリポジトリ|自分のPC|
|リモートリポジトリ |ネットワーク上にある(GitHubのこと)|

▼GitツールURL
https://git-scm.com/

# ローカルリポジトリの用語
#### 1. ワークツリー → 作業ディレクトリのこと

|状態|意味|
|:—:|—|
|unmodified|変更されていない|
|modified|変更済み|
|untracked|新規ファイル|まだGitの管理外|

untracked → unmodified → modifiedの順で状態が変化

#### 2. ステージングエリア → コミットするファイルを登録する場所
|

元記事を表示

githubのパスワード変更後にpushすると”remote: Invalid username or password.”とエラーが発生した

はじめに

githubからpersonal access tokenの有効期限が近いですよ!とメールが来ていたのでメール内のリンクから新しくtokenを再生成しました。
再生成後にgithubへpushをしようとすると、下記エラー文が表示されてpushができなくなりました。
~~~git
~ % git push origin ブランチ名
remote: Invalid username or password.
fatal: Authentication failed for ‘https://github.com/~
~~~

有効期限が近づいてtokenを再生成する度に発生するエラーですが、数ヶ月後にまたpushできなくて一瞬ビビる将来の自分が容易に想像できるので、エラーの対応をqiitaに備忘録として残します。

対応

下記のようにターミナルでgitの名前を再設定します。

~~~
git config –global user.name ユーザ名
#ユーザー名はgithubのユーザー名です
~~~

そうすると、次回のpush時にユーザー名とパスワード(再生成し

元記事を表示

gitの差分について

今まで、svnを使ってプログラムを管理していたのですが、開発したり、検証をしていくときにgitを使うと、検証段階のファイルを管理したり、以前の環境に戻したりするときにとても便利なことを知りました。gitのdiff確認について使ってみてよかったものをまとめてみたいと思います。

# git diff
“`git diff“`コマンドは、変更前後の変更点を上下で出力してくれるので、小規模の変更は、“`git diff“`で確認しています。

“`git
// ワーキングエリアでの比較
$ git diff

// ファイルのみ
$ git diff –name-only

// ステージング上での比較
$ git diff –cached

// commitした者同士
$ git diff 変更前のSHA..変更後のSHA
“`

# git difftool
git上でデフォルトで使用するdiff toolを設定して、そのtoolを使用して差分を確認します。使用するtoolの設定は、.gitconfigに記述し、使用します。私は、windowsを使用しているので、win

元記事を表示

VSCodeとGitHubを連携させる

# はじめに
GitHubを使用してまだ1ヶ月ほどで今のところ保存するような機能しか利用しません。しかし、会社でエンジニアとして働くにあたって必ず必要になるそうなので、とりあえず触ってみました。
GitHubとはソースコード管理ツールで、チームで開発を行う時に利用されるそうです。使用する理由は、履歴を残しながら更新したり、自分以外のエンジニアも修正を加えることが可能という点です。
最初はこのGitHubをCloud9と連携させて使用していましたが、VScodeでも連携させて使用してみたいと思ったので、実際に試してみました。

# 連携方法
## ターミナル上での操作
自身のターミナル上で
“`
git –version
“`
と入力して
“`
git version 2.*.*(Apple Git-*)
“`
のように表示されていればインストール済みであると確認できます。

まだインストールしてない方は、[こちらのサイト](https://git-scm.com/downloads)からインストールしてください。

続いて下記項目を入力してください
“`
git conf

元記事を表示

【エラー】プロキシ環境内でのGit コマンド使用【備忘録】

# はじめに
会社内などのプロキシ環境内から Git コマンドを使用する機会があったのですが、
「fatal: unable to access ‘https://github.com/hoge/hoge.git/’: Failed to connect to github.com port 443 after 21110 ms: Timed out
というエラーが発生しました。

解説策を備忘録として記録します:pencil2:

# 解決方法
https://maku77.github.io/git/settings/proxy.html
↑こちらの記事を参考に解決しました。
※以下、上記の記事を引用

次のようにプロキシサーバーのアドレス(とポート番号)を設定すると、エラーが解消されました。

#### プロキシサーバーのアドレス(とポート番号)を設定
“`
$ git config –global http.proxy http://proxy.example.com:8080

# “proxy.examle.com:8080″の部分は適宜変えてくださいね!
“`

#

元記事を表示

git初学者が必ず出会う「error: Your local changes to the following files would be overwritten by checkout:」について

今回は初心者が必ず遭遇する`error: Your local changes to the following files would be overwritten by checkout:`のエラーについて説明したいと思います。

gitをまだ触って日が浅い方は100%このエラー文を経験するかと思います。
私も経験しました。?

このエラーはどのような場合に出力されるのか?書いていきます。

# はじめに
本記事は以下の読者様が対象です。
* プログラミング初心者

* gitを少し触ったことがある人

* add commitしたことある人

# 先に結論
【パターンA】該当のエラーが発生するケース
1. `burach A`から新しい`branch B`を切る
1. `branch B`にてなんでも良いのでコードを`commit` する。
1. `branch B`にてなんでも良いので「ワーキングツリー上でコードを変更する」`or`「変更したコードを `git add` する」。(commitしない)
1. `burach A`に移動する
1.

Gitの基本の「キ」 part1 git、GitHubとは?

# はじめに
エンジニアを志して皆さん勉強を始めていきますが、gitに関して知らない方、結構多い印象ですね。
わかってしまえば非常に便利なgitですが、概念が少し分かりづらいですよね。
いきなり触るとなった場合にも困る事がないよう、経験のない方向けにシリーズとしてまとめていこうと思います。

# gitってなんなの?

![git-lg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/354522/6cffe1e2-1d7d-acb8-0b50-7551b206e3de.png)

一言で言うと、**バージョン管理ができるシステム**です。

例えば、OSアップデートなどは一度あげてしまうと基本的には戻すことはできないですよね。
もしこれが自身の作業に関してであればどうでしょうか。

一生懸命実装したコード、もしくは、たくさんの時間をかけて作成したデザイン、これが一つのミスで吹き飛ぶとしたら想像を絶するものがありますよね、、、。
そこでそんな事故を防ぐために使用するのが、gitというわけです。

gitは

git , githubを勉強し始めたときにメモっておいているコマンドリスト

私はWEBマーケティングコンサルティングを行っていますが、
開発用途ではなく、ビジネス用途でgithubを使っています。

チーム内ポータルとしても正直使いやすいんですよね。

ただ、開発といったらおこがましいかもしれないですが、textlintをこれから活用していくことになり
githubで辞書管理が必要だろうと考え、絶賛勉強中。

本当に今はいい時代。youtubeで見て学んだ必要不可欠なコマンドをメモっているので、なんとなくシェアしておこうと思います。

gitで add, commit ,push , switchの練習をするためにコマンドをまとめているmdファイルを作成し日々github上で更新して管理をする練習中。

前置きが長すぎたのでこのへんで。

# ブランチ
## ブランチの作成 + 作成したブランチへそのまま切り替え
“`
git switch -c ブランチ名
“`

## ブランチの切り替え
“`
git switch ブランチ名
“`

## ブランチの確認
“`
git branch
“`

# push
## main,masterブランチの

現場で覚えたGit知識【備忘録】 ①

# 初めに
これまでSVNばかりをソース管理で使っており、そもそもGit自体を業務で使ったことがありませんでした。個人で本を買って、一読し、個人操作でGit Hubしか使ったことがありませんでした。
4月から現場でソース管理でGitを使うようになったため、CUIでよく使う最低限のコマンドを記載します。所感の使い方レベルの説明のみ記載します。
(細かいソースの確認はSource Treeを使用しています。)
ちなみにリモートリポジトリはAWSのCodeCommitを使用しております。

## ●開発時によく使用する流れです

### ①$ git clone <リモートリポジトリのブランチURL>
→開発開始時にリモートリポジトリより、ローカルPCに資材をクローンする時に使うコマンド。
これを実行することでローカルPCにローカルリポジトリが作成でき、開発のスタート地点に立てます。

### ② $ git branch –all
→ローカルリポジトリ内に含まれるブランチの一覧を確認できます。
これで自分が着手する元になるブランチを確認します。

### ③ $ git check

[Github] ラインセスの違い

コードを公開してようとしている方、または公開されているコードを利用しようとされている方はこちらを一読ください。

公開されているコードやソフトウェアには著作権があり、アクセスできるからと言ってやたらめったら利用してOKという事ではありません。

Githubではライセンスに関してこちらのドキュメントが公開されています。
https://docs.github.com/ja/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/licensing-a-repository

ライセンスを指定しない場合はデフォルトの著作権すわなち「ソースコードについては作者があらゆる権利を留保し、ソースコードの複製、配布、派生物の作成は誰にも許可されない」となります。

Githubでは複数のラインセンスが選択できるようになっています。下記の記事では現在Githubに上がっている人気のライセンスが記載されています(注:データは古いです、2015年)のでトップ5を見てみます。感覚的にも

初学者が覚えたいチーム開発でのGit操作

# はじめに
個人開発の場合はそんなに意識することがないGitですが、**チーム開発においては重要な役割を果たします**。

はじめのうちは構造が見えず混乱するかと思いますが、流れをイメージ出来ればそんなに難しいものではありません。

これを見れば**開発に必要なGitコマンドとリポジトリの構造、Githubでの管理手順を理解し開発の現場で実践できるようになります。**

# そもそもGitとは?

**変更履歴を記録・追跡するための分散型バージョン管理システム**である。

ざっくりいうとファイルのバージョン管理が簡単にできるツールといえます。

# 目次
[Gitを理解するための基本用語](#-Gitを理解するための基本用語)
[開発の流れ](#-開発の流れ)
[その他開発で覚えておきたい便利コマンドと注意点](#-その他開発で覚えておきたい便利コマンド)
[最後に](#-最後に)

# Gitを理解するための基本用語

# リポジトリ(repository)
**ファイルやディレクトリを入れて保存しておく貯蔵庫**

`リモートリポジトリ`…特定のサーバー上に設置して複数

[Git] git diff

# git diff とは

commits, commit, working treeなどの間の変更を表示する

## Comparing with arbitrary commits

“`shell
git diff main
“`

現在の**branch**と`main`の**branch**を比較する

## –name-only

“`shell
> git diff –name-only main
a.txt
b.txt
c.txt
“`

変更されたファイルの名前のみを表示する

## –name-status

“`shell
> git diff –name-status main
M a.txt
D b.txt
A c.txt
“`

変更されたファイルの名前と状態のみを表示する

## –diff-filter=[(A|C|D|M|R|T|U|X|B)…​[*]]

指定したファイルの変更状態のみを表示する

– A:Added
– D:Deleted
– M:Modified
– R:Renamed

初心者が躓きがちなローカルリポジトリ作成からリモートリポジトリへのプッシュまでのやり方

初投稿です!
本記事では初心者が躓きがちなローカルリポジトリからリモートリポジトリへのプッシュまでのやり方を解説します!
前提条件は
– Git、GitHubを使用する
– GitHubでリモートリポジトリを作成済みである
– 簡単な用語が理解できる

です。
特に用語に関しては、だれでもエンジニア / 山浦清透さんのGitとGitHubの解説動画で超わかりやすく解説してありますので、ぜひ見てください!!
urlはこちら

また私の環境がwindowsなため、今回はwindowsに限定した話になります。ただ多分Macでも同じやり方でいけるかなぁとは思っています。間違っていたらごめんなさい<(_ _)>

では早速解説していきます!

1. Git Bushを起動する

2.ディレクトリを作成する
次のコマンドを入力してください。
“`:ディレクトリの作成
$ mkdir (ディレクトリの名前)
“`
これでローカルリポジトリの対象になるディレクトリを作れます。
また、このディレクトリはLocal Diskの
`

EC2起動時にgit、docker、docker-composeをインストールする

## はじめに
AWSのEC2をDocker運用で開発webサーバーとして構築する機会があり、最低限、git、docker、docker-composeは必要なので、起動時にインストールするよう設定しました。

今回はその方法を紹介します。

## 手順
EC2のユーザーデータという機能を使えばできます。
EC2起動時のコンソールにユーザーデータというフォームがあるので、そこに以下のシェルスクリプトを入力して起動すればインストールされた状態になっているはずです。
“`
#!/bin/bash
sudo yum update -y
sudo yum install -y git
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -a -G docker ec2-user
sudo mkdir -p /usr/local/lib/docker/cli-plugins
VER=2.5.1
sudo curl \
-L https://github.

Four keys を計測する CLI ツールを作った

# はじめに

Four keys とはソフトウェア開発の生産性を測定するのに利用される以下の4つの指標のことである([参考](https://www.devops-research.com/quickcheck.html))。

– デプロイ頻度(Deployment Frequency) ソフトウェアのデプロイ頻度
– 変更リードタイム(Lead time for changes) ある変更をソフトウェアに適用してから、その変更がリリースされるまでの時間
– 障害修正時間(Time to restore) ソフトウェアに障害が発生してから、その障害が修正されるまでにかかった時間
– 障害率(Change failure rate)ソフトウェアのデプロイのうち障害が発生したデプロイの割合

これらの指標を簡易に測定するための CLI ツールを作成した。

https://github.com/hmiyado/four-keys

この記事では、この CLI ツールについて紹介する。

# 使い方

## インストール

[Releases](https://github.com/hm

git push で remote: Repository not found. fatal: Authentication failed for ‘xxx’ と言われた

GitHubに`git push`をしたらある日突然エラーになった。VSCode内のターミナルで実行した場合に出たエラーが以下。

“`console
$ git push
Missing or invalid credentials.
Error: connect ECONNREFUSED /run/user/1000/vscode-git-c4b2e1d8a0.sock
at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) {
errno: -111,
code: ‘ECONNREFUSED’,
syscall: ‘connect’,
address: ‘/run/user/1000/vscode-git-c4b2e1d8a0.sock’
}
Missing or invalid credentials.
Error: connect ECONNREFUSED /run/user/1000/vscode-git-c4b2e1d8a0.sock
at PipeConnec

あの頃のマージのコンフリクトを起こしたい

## 経緯
チームのメンバーに「少し前にマージした時にコンフリクトしたファイル一覧を知りたい」と質問された時に、僕は「どうやったら良いんやろ、、、」と思いました。そこで調べている中でマージログの見方を初めて知ったので記事にしようと思います。
解決方法はあの頃のコンフリクトをもう一度起こしてコンフリクトしたファイル一覧を調べました。

## 手順
– マージコミットを特定する
– マージ前の親ブランチと作業ブランチを作成する

親ブランチ: 取り込むブランチ
作業ブランチ: 今いるブランチ
### マージコミットを特定する
“`shell
# マージログ一覧表示
git log –merges

# ログをワンラインで表示する
git log –oneline
“`
どちらかのコマンドを流して、コミットを特定します。
あの頃マージした時、マージコマンドで`–no-ff`オプションをつけていない場合はマージコミットが残らないです。
–no-ff オプションを付け忘れたマージをやり直す方法
https://oki2a24.com/2016/02/18/redo-git-merge