今さら聞けないGit 

今さら聞けないGit 

gitコマンド/ghコマンドチートシート

この記事ではgit操作用のgitコマンドとgithub操作用のghコマンドのよく使うコマンドを記載する.

git操作は**GUIとCLIともに使える**と効率よく開発できる.
gitコマンドとghコマンドをマスターすることで,開発効率が大幅に向上する.コマンドラインから直接操作することで,バージョン管理やGitHub上の作業が迅速かつ正確に行えるようになるだろう.これにより,コードの変更追跡,チーム内でのコラボレーション,複雑な操作の実行が容易になる.
また,これらのコマンドは自動化やスクリプト作成に適しており,CI/CDパイプラインへの統合も簡単である.GUIツールに比べて高速で柔軟な操作が可能となり,リモート環境でも効率的に作業できる.

本記事の前に以下の記事の知識があることを前提とする.

https://qiita.com/JavaLangRuntimeException/items/ad7e1a1a14d3e2f10da3

# 他のチートシート
https://qiita.com/JavaLangRuntimeException/items/f038fbaccdd92f

元記事を表示

PowerShell でリモートにない Git ブランチを列挙する

プルリクエストがマージされてリモート上のソースブランチは削除されたけど、ローカルのリポジトリではブランチが残ったまま… あれ、どれがマージされたんだっけ…?

ってことが時々あったりするので、普段使用することが多い PowerShell の環境で、リモート (origin) に同名のブランチが存在しないローカルブランチを列挙して確認するための関数を作成してみたというお話。

`git branch -vv` の出力を参照するという方法はよく見かけるのですが、upstream ブランチを設定していないケースも多いので、単に名前だけで存在を確認するようにしました。

## 関数

$PROFILE に以下の関数を定義。

“`powershell
function Show-LocalOnlyBranches {
if (-not (Test-Path .git)) {
Write-Output “Current directory is not a git repository.”
return
}

git fetch origin

$branche

元記事を表示

Gitを効率的に使いこなすための実践ガイド

はじめに
バージョン管理システムは、現代のソフトウェア開発において欠かせないツールです。特にGitはその柔軟性とパワフルな機能で多くのエンジニアに支持されています。この記事ではGitの効率的な使い方を、基本的なコマンドの復習からブランチ戦略まで幅広くご紹介します。

## Gitの基本
Gitは、分散型バージョン管理システムとして広く使用されています。まずはGitを使用する上での基本コマンドを確認しましょう。

### リポジトリの初期化
“`bash
git init
“`
このコマンドを使って新しいリポジトリを作成します。

### ステージングとコミット
“`bash
git add .
git commit -m “コミットメッセージ”
“`
変更をステージングした後、コミットします。

### ブランチの操作
“`bash
git branch 新しいブランチ名
git checkout 新しいブランチ名
“`
ブランチを作成して、それに切り替えます。

## 効率的なGit使用法
より効率的にGitを使用するためには、以下のようなテクニックがあります。

##

元記事を表示

pip Error: add_subdirectory given source “src/test” which is not existing directory

## 想定する読者
pip でライブラリをインストールしようとしている人で、表題のエラーでイントールできないで困っている人

## 遭遇した状況
“`
python3 -m pip install OpenEXR
Collecting OpenEXR
Downloading openexr-3.2.4.tar.gz (1.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.7/1.7 MB 6.6 MB/s eta 0:00:00
Installing build dependencies: started
Installing build dependencies: finished with status ‘done’
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status ‘done’
Installing backend dependencies:

元記事を表示

Debian に新しめの Git を入れる

Debian Backports リポジトリを使ってみたっていうだけの話。

## 背景
最近は Visual Studio Code + DevContainer で開発していて、DevContainer には Debian ベースのイメージを使うことが多い。

2024年7月現在での Debian の最新バージョンは 12 (bookworm) だが、ベースイメージとして Debian を使用している各種ソフトウェアの公式イメージではまだ 11 (bullseye) をベースにしているケースも珍しくない。

例えば [Bun の公式イメージ](https://hub.docker.com/r/oven/bun) は2024年7月時点では bullseye をベースにしている。

“` console
$ docker run –rm oven/bun cat /etc/debian_version
11.10
“`

## 困ること
当たり前だが、bullseye は少し前のバージョンなので Git のバージョンが少し古い。

“` console
$ docker ru

元記事を表示

初心者向け Git push まで

# はじめに 
今回は Git を普段使っている割にはうろ覚えになっている部分が多いと思ったので、Git init から push までを図を使ってわかりやすく理解するのを目的としています。

# 用語説明
## ブランチとは
日本語に直訳すると枝とか支店っていう意味になります。
ブランチとは、作業履歴を本体から枝分かれさせることでプロジェクト本体に影響を与えない開発を行うための機能のことです。

### master / main ブランチとは
master (main) ブランチ : デフォルトのブランチ、安定したブランチ。

## リポジトリとは
ファイルやリポジトリ(フォルダ)の情報を保存しておく場所です。

## .gitignoreとは
ignore は直訳すると、無視するっていう意味になります。
Git のトラッキング対象から外す(無視する)ファイル or ディレクトリを指定するためのファイルです。

# Git push までの流れ
### イメージ

![image.png](https://qiita-image-store.s3.ap-northeast-1.

元記事を表示

はじめてのオフライン勉強会!Gitの知識0から学んだこと

## はじめに
エンジニアをつなぐIT勉強会支援プラットフォームconnpassにて募集されていたオフラインの勉強会に参加しました!(勉強会に参加するのははじめてなのでドキドキしています。)
この記事では勉強会で学んだGitについてのアウトプットをします。
(記事を投稿するのをすっかり忘れていた…反省反省)

https://primeanswer.connpass.com/event/318268/

## 勉強会参加前のGitに対する理解レベル
Git?Githubのことすらあんまり良くわかっていないけど、同じじゃないの?
ブランチ?リポジトリのクローン?プッシュ?
分からないフレーズばかりでもう僕の心はポッキリ折れそうだよ!~~(ブランチ(枝)だけにねフフッ😏)~~

## Gitとは
一言で言うと**ソースコード,デザイン,テキストなどのデータや変更履歴を管理するためのツール**であり、一度編集したファイルを過去の状態に戻したり、編集箇所の差分を表示したりすることができます。
Gitを用いることで共有ストレージ上のファイルを共同で編集する場合、知らず知らずのうちに他人の編集

元記事を表示

GitHub Actions で NuGet パッケージを作るための覚書

本来コレはこうするべき、という部分をすっ飛ばしてとにかく動けばいいというアクションを作る方法です。

– [真の決定論的ビルドの有効化方法](#真の決定論的ビルドの有効化方法)
– [`git` おまじない](#git-おまじない)
– [リモートリポジトリがあればプルして無ければ新しく作る](#リモートリポジトリがあればプルして無ければ新しく作る)
– [変更があればプッシュしてプルリクエストを作る](#変更があればプッシュしてプルリクエストを作る)
– [ジョブ間/アクション間のデータのやり取り](#ジョブ間アクション間のデータのやり取り)


## `on.workflow_dispatch` と `on.workflow_call`

dispatch はウェブの Actions ページから起動するためのモノで、call は再利用可能なアクションとして利用するためのモノ。

`inputs` の内容はコピペで共用可能。dispatch に inputs があるとウェブページから値の設定が可能になる。

GitHub でリリースを作っ

元記事を表示

Gitでコミットしようとしたら、’user.name’ と ‘user.email’ の設定が必要だと言われて、コミットできません。どうすればいいですか?

`”Make sure you configure your ‘user.name’ and ‘user.email’ in git”` というエラーが表示されるのは、Gitの設定が正しく行われていないためです。これを解決するためには、Gitの設定を行う必要があります。以下の手順で設定できます。

### Gitの設定手順

1. **Git Bashを開く**(またはターミナル):
– Windowsの場合は「Git Bash」や「PowerShell」など。
– macOSやLinuxの場合は「Terminal」。

2. **ユーザー名とメールアドレスを設定する**:
以下のコマンドを実行して、ユーザー名とメールアドレスを設定します。これらはあなたのGitのコミットに使用されます。

“`sh
git config –global user.name “Your Name”
git config –global user.email “your.email@example.com”
“`

ここで `Your Name` と

元記事を表示

【備忘録】Git Config値を削除する方法

# はじめに
Git Config値を削除する方法を下記に記載します。
コード①にたどり着く前に消えないかなと思いコード②を試しましたが、0桁が設定されてしまい、設定値を削除することはできませんでした。

コード①:表題のコードです。
コード②:リネームコードです。

## コード
“`ruby:コード①
git config –global –unset user.name
git config –global –unset user.email
“`

“`ruby:コード②
git config –global user.name “”
git config –global user.email “”
“`

元記事を表示

git logコマンドで自分がこれまでにcommitした内容をすべて見る

git repositoryの中で自分がこれまでに書いた差分を振り返ったり、自分が書いた範囲だけで検索したいときなどに使うワンライナーです。

“`bash
git log –pretty=format:”%an %h” | grep suzuki | perl -nle ‘print “git show $1″ if /\b([a-f0-9]{9})\b/’ | bash | less
“`

`grep` のところで自分のcommitしているときの名前を入れます。

端末上でカラフルに表示したい場合は

“`bash
git log –pretty=format:”%an %h” | grep suzuki | perl -nle ‘print “git show –color=always $1” if /\b([a-f0-9]{9})\b/’ | bash | less -R
“`

こんな感じで見れるはずです。

“`diff
commit a2c89149042310b34583cfbaf7b2b98ca5b8fea4
Author: suzuki
Date

元記事を表示

(自分用)バックアップをとったリポジトリのgitを新しく管理する手順

1.まずバックアップをとっているディレクトリのふるいgitを切り離す。
rm -rf .git
このコードで現在のディレクトリからgitを一旦削除することができる。

次に、新しくgitリポジトリを作成。

mkdir “ディレクトリ名”
git init

これで完了。

次に、リモートリポジトリ(github)の設定
git remote add origin <リモートリポジトリのURL>

これで、git add . して コミット、プッシュすれば完了。

元記事を表示

Git for Windowsで複数の認証情報を扱うときのTips

## 前説

Git for Windows には Credential Manager が同梱されている
Gitリポジトリへの認証情報を都度入力する手間から解放してくれるイケメン

問題はGitリポジトリへの認証情報が複数存在する場合

例としてAWSの複数環境でCodeCommitを利用する場合などに発生する

このとき「GitリポジトリAに対しては認証情報A」「GitリポジトリBに対しては認証情報B」のように、個別に Credential Manager を効かせる方法のメモを残す

## 手順

1.git clone する際に一意な credential.namespace を指定する
“`bash
git -c credential.namespace=aaa clone https://myproject-A.git
“`

2.Credential Manager がポップアップするので認証情報を登録する

3.cloneした後、対象のディレクトリ内で使用する credential.namespace を設定
“`bash
cd myproject-A
git

元記事を表示

gitで特定のファイルの変更差分を取り消す方法

業務でコードレビューをしていただいた際に、特定の差分だけ取り消して前の状態に戻したい、、、と感じたので、今回やり方を調べてみました。

# 手順

### 1.`log`コマンドでコミット履歴からコミットIDをメモする

`git log`コマンドを使えば、コミット履歴が検索できるので、コミット履歴を調べてみます。
前提として、どのファイルを前の状態に戻したいかはわかっていると思うので、下のコマンドで変更履歴を見てみます。
“`
git log -p
“`

:::note
``は、.gitがあるルートディレクトリからの絶対パスを指定してください
GitHubでは、`FilesChanged`からパスがコピーできるのでそのパスを指定してください
:::

おそらく下のような履歴が出てくると思います。
“`diff
commit aaaaaaaaaaaaaaaa
Author: MAOZ
Date: Wed Jul 10 03:51:33 2024 +0900

コメント

diff –gi

元記事を表示

移行の前にCodeCommitの位置づけを振り返る

## はじめに

前提として、このブログの内容を踏まえたものです。

https://dev.classmethod.jp/articles/aws-start-to-restrict-codecommit-and-cloudsearch/

上述のブログの言を借りると、AWS CodeCommitにおいて7/28現在、以下の状況になっている様子です。

> – 既存リポジトリがあるアカウントは特に制限無くCodeCommitを利用可能
> – これまでCodeCommitを使っていなかったアカウント(もしくは既存リポジトリが無いアカウント)は新規リポジトリ作成不可

これはCodeCommitのサービス終了を即座に意味するものではありません。ただし、リポジトリを新規に利用できなくなるということは、一般的にはCodeCommitとしてのサービス縮退、メンテナンスフェーズとして捉えることもできます。先のブログが公開されたのは日本時間では土曜日ということもあり、少なくともこの解釈を否定するアナウンスは出ておらず、個人的には動揺する点もありました。

今回はCodeCommitが担っていた役

元記事を表示

Git Large File Storageを使って大容量ファイルをGitHubで管理する

# 1.この記事の内容

Jupyter Notebookのファイルサイズに気づかず,`git push`をするときに100MBを超えていて怒られたので[Git Large File Storage](https://docs.github.com/ja/repositories/working-with-files/managing-large-files/about-git-large-file-storage)を活用して対策を行いましたので,手順を紹介します.

大まかな流れは,以下の通りです.

1. 100MBを超えるファイルを登録する前のコミットまで戻る
– 今回ここは`git clone`しなおすことで対応しました
1. Git LFSの設定を行う
1. 100MB超のファイルをコミット・プッシュする

# 1-1.利用環境

– WSL2

# 2.背景

`git push`時に遭遇したエラーは下記のとおりです.
開発途中の3世代分の`notebooks/016_Sample-Compare-Features-VGG16-PyTorch.ipynb`のファ

元記事を表示

SourceTreeからgit clone ができない時

SourceTreeからgit clone ができない時

## 確認
1.
![スクリーンショット 2024-07-27 191311.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676239/f3a7bebc-dcef-9e8d-ca18-53585a385ec5.png)

ソースパス/ソース URL として正しくありません。

2.
![スクリーンショット 2024-07-27 191331.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676239/5666380d-39c3-73e3-e793-56d4477fb97a.png)

コマンド: git -c diff.mnemonicprefix=false -c core.quotepath=false –no-optional-locks ls-remote https://github.com/….git
出力:
エラー: remote:

元記事を表示

UnityのNo ‘git’ executable was found.エラーの解決方法メモ

# この記事について
`UnityPackageManager`(以降は`UPM`と書きます)関連で遭遇したエラーの解決方法のメモです。
誤字脱字や間違っている部分があれば、コメントにて教えて頂けると幸いです!

# 遭遇したエラー
・`No ‘git’ executable was found.`
自分が遭遇したタイミングは2つあります。
1つ目は`UPM`の`Add package from git URL`で追加しようとするときに遭遇しました。
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3588406/41e801d1-79ed-ba51-1ef4-1beb95bd3e2a.png)

2つ目は`manifest.json`にダウンロード用のリンクを書き込んだ時に遭遇しました。
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3588406/6e24df44-0e2f-f886-4af9-1c

元記事を表示

Gitのコマンドまとめ

### 基本的なコマンド
– **git init**: 新しいGitリポジトリを初期化
– **使用例**: `git init`
– **解説**: 現在のディレクトリを新しいGitリポジトリとして初期化します。

– **git clone [URL]**: リポジトリをクローン
– **使用例**: `git clone https://github.com/user/repo.git`
– **解説**: 指定したURLのリポジトリをローカルにクローンします。

– **git status**: 現在のリポジトリの状態を表示
– **使用例**: `git status`
– **解説**: 変更されたファイルやコミットされていないファイルの状態を表示します。

– **

【Git】 ファイル名を変更するとmainブランチに移動できない現象への対応方法

私の環境だとなぜか必ず起こる現象なのでここに記録しておきます。

:::note info
前提
commit前の変更なし&すべてpush済
mainブランチにマージ済
:::

### 起きていること
mainブランチに移動しようと思うと下記のようなエラーが発生します。
変更がないから退避もできません。
ファイル名を変更しているときに必ず発生して困っています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3816029/a16e01be-64d8-205e-5043-98f55189b4ac.png)

### 対応策

一旦ファイル名を元に戻し、commitしてpushする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3816029/4a5cd355-ceab-8083-f50b-d08b76c30336.png)

するとmainブランチに移動できる。

:::note w