今さら聞けないGit 

今さら聞けないGit 
目次

TortoiseGitのLog確認画面で『Too many files to display』によってコミット詳細が見れない時の対応

# 現象

TortoiseGitのLog確認画面で、下記のようにコミットしたファイル達が確認できない。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/89267712-e1c7-e464-2c93-ec37b1091f33.png)
『Too many files to display』とあるように、一度にコミットしたファイルが多すぎるようです。

# 対応

TortoiseGitの『Setting』。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/0dde5ff9-0dc6-eeba-41f6-c7031763387d.png)

『Advanced』。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706116/c0e1ec5e-5f2e-b5dd-209

元記事を表示

Overleaf環境をローカルに構築して、変更をGit連携のオンラインプロジェクトに反映する

## この記事の概要
– Dockerを用いてオフラインOverleaf環境を構築し、日本語に対応させる
– オフラインOverleafにオンラインOverleafのgitリポジトリを読み込み、オフラインの変更をオンラインに反映させる(pushする)
– pushは(基本的に)ただ一度だけできる
– オンラインの変更をオフラインに反映させることはできない(pullできない)
– フライト中の執筆など、一時的にオフラインで編集したファイルを再度オンラインで編集する際に役に立つ

## はじめに
言わずと知れたオンラインTexエディタ、Overleafの最大の利点にして最大の欠点は、オンラインで完結することです。オンラインで完結するため、特に環境構築等必要なく利用できますが、当然オフライン環境で利用することはできません。
基本的にオンラインで作業する場合は概ね問題ありませんが、何らかの事情によりオンラインで執筆できない場合には苦労することもあります。たとえば電波の弱い場所で作業する場合や、フライト中に作業したい場合などですね。

Overleafからソースをダウンロードしてローカル

元記事を表示

GitHub

今回はGitHubについて記事にしたいと思います。

今回は流れについて記事にしていと思います。
手で動かすことで一番身につくと思います。

Gitコマンドの基本例
では、Gitの基本的なコマンドを例と一緒に見ていきましょう。

1. リポジトリを作成する:
何をするの?

新しいGitリポジトリ(プロジェクトの保存場所)を作成します。
使い方の例

“`bash
git init
“`
例え
新しいノートを用意する:新しいプロジェクトを始めるときに、新しいノートを開くようなものです。

2. ファイルの変更をステージングする
“`bash
git add
“`
何をするの?

変更したファイルを次のコミットに追加するためにステージします。
使い方の例
“`bash
git add ファイル名
“`

“`bash
git add greeting.py
“`
例え
提出物をまとめる:宿題を提出するときに、必要なプリントをまとめる感じです。

3. 変更を記録する:git commit
何をするの?

ステージされた変更をリポジトリに記録します。
使い方の例

元記事を表示

今更ながらWindowsで開発環境をちょこっと整えてみた

# 動機
Macでの開発の快適さにすっかり慣れて、使わなくなったWindowsだが、
魔が差して開発環境を整えたくなった。

# 開発環境
Windows10

## Windows Terminalの活用
コマンドプロンプトやPowerShellを踏襲したものとして、**Windows Terminal**というものがあるらしい。
早速、**Microsoft Store**からインストール。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2426934/4ddc0173-2ec9-f9b1-3f24-8fe625d6a25e.png)

powershellやlinuxとの違いは下記サイトが分かりやすい。
>[Windows Terminalの総合ガイド: 歴史、機能、そしてLinuxTerminalとの比較](https://qiita.com/yu_uk/items/09fe1197768ba9718c34)

lsやcpといった基本的なコマンドが叩けるので使い勝手はそこそこ良い

元記事を表示

複数の Git repository の履歴を保持したまま 1つの Git repository を統合する

## はじめに

– Git repository の履歴を保持したまま複数の repository を1つにまとめる作業をした
– 自身の作業ログ扱いだが履歴として残しておく

## Git repository の統合

– repo1, repo2 を repo にまとめる

“`sh
.
├── repo
| └ .git
├── repo1
| └ .git
└── repo2
└ .git
“`

となっているのを

“`sh
.
└── repo
└ .git
└ repo1
└ repo2
“`

に変更する

### 手順

– repo 内に repo1 ディレクトリを作成、何かしらのファイルを作成しておく
– 今回作成したファイルは `.gitkeep` とした
– remote に移行元を追加、fetch しておく
– `git merge –allow-unrelated-histories -X` で merge する

“`sh
cd repo
git co -b import-repo1
mkdir repo1
touc

元記事を表示

10月から内定獲得を目指す25卒学生の日常:第一話 「呼ばれぬ内定式」

「就活どう?まだ内定は?」と友人が気遣ってくる。
僕は無言で、目の前のプログラミングのコードを見つめる。
大学4年、明日10月1日は多くの仲間が入社式を迎える日だというのに、僕はまだその一歩を踏み出せていない。
不安が胸を締め付ける中、フルスタックエンジニアとして社会の課題を解決する夢だけが、僕を支えている。
面接官という名の敵と向き合う日々が続く中、僕はこの逆境をチャンスに変えたい。

## 自己紹介
大学4年生の僕は、化学科に所属しながら、さまざまなことに挑戦している。
以下は、僕の学びと趣味の一部だ。

**化学科の学生**:大学で化学を専攻し、実験や理論を学ぶ毎日。
**趣味**:格闘技やサッカー観戦、そして少しばかりのお酒を楽しむ。
### プログラミング歴
**Python**:3年の経験があり、ウェブアプリ開発(streamlit)やシミュレーションに活用
**C#**:Unityでのゲーム開発に利用
**JavaScript**:1年の経験で、Google Apps Scriptで業務の効率化を図るプロジェクトに取り組んだ。
**PHP**:少し触れたことがある。

元記事を表示

clocによるコミット間のステップ数比較

# はじめに
コードのステップ数はこれまでVScode Counterで計測してきたが、今回コミット間の差分のステップ数が必要になり、[cloc](https://www.npmjs.com/package/cloc)というツールを使ってみた。
また、非常に多くあるclocのオプションについても実行例付きで厳選して整理する。

# 環境

– cloc 2.02
– Windows 11 Home 23H2
– Node.js 20.15.0

また、動作確認する上でサンプルソースコードとして[Nuxt](https://nuxt.com/)アプリを使用した。

# コミット間の比較
“`bash
$ npx cloc –diff
“`
※同じコマンドで、コミットハッシュ以外にファイルやアーカイブ、ブランチなども指定できる。

使用例。
“`bash
$ npx cloc –diff adbbf85d00d5d77c492effcf88b64165199e869e 7a01e036a2641b692c0d44d53f

元記事を表示

Git操作を楽にするためにやってきたこと

# はじめに

Git操作をいくらかでも楽にしようと、過去にやってみたこと・現在やっていることを紹介します。より快適なGit操作のための参考になれば嬉しいです。

なお自分は普段の開発にMacを使用しており、一部の情報がMac向けに偏っている可能性があります。その点ご容赦ください。

# git-prompt / git-completion

git-promptを導入すると、ブランチ名や未コミットの変更の有無といった情報がターミナルのプロンプトに表示されます。おかげで`git status`や`git branch`を打たずとも、リポジトリの状態を把握できます。

またgit-completionを導入すると、Gitのコマンドやブランチ名にTab補完が効くため、コマンドの入力が楽になります。

設定方法については、こちらの記事にわかりやすくまとまっていました。

https://qiita.com/mikan3rd/items/d41a8ca26523f950ea9d

シェルプロンプトのカスタマイズに[starship](https://github.com/starship/s

元記事を表示

git stash で作業を一時保存:ブランチ切り替えの際,変更差分が残っていて切り替えができない…なんてことないですか?

あるブランチで作業していて他のブランチに移動した際にせっかくした作業が消えてしまった(または、ブランチ移動できないというエラーが出る)ことはありませんか?
git stashというコマンドを用いるとそのような作業中の差分を一旦退避できます!

:::note info
**先に結論**
stashした後に変更を破棄してブランチを切り替えてその後stashしたものを適用する.という流れで変更差分が残っていてブランチ切り替えができる.
:::

gitそのものの概念やgitコマンドのチートシートはこちらから

https://qiita.com/JavaLangRuntimeException/items/6b46551f56e0def76eba

:::note info
**git stashとは**
作業中の変更を一時的に保存し,後で再適用するためのGitコマンドである
:::

git stashは以下のような状況で特に有用である

– 作業中に緊急の修正が必要になった場合
– ブランチを切り替える前に現在の作業を保存したい場合
– プルする前に競合を避けたい場合

# 変更

元記事を表示

1からアプリケーションを作るエンジニアリングマネージャーの姿:Gitのお勉強編

## 目的
1. エンジニアリングマネージャーをやっているが、あまりにもエンジニアリングがわかっていない
– 作業者として実務を行った経験しかなく、0から開発ができない
– 開発環境の構築とは?
– アーキテクチャの選定とは?
– Gitの使い方を忘れている… etc
– -> これでEMを名乗るのは恥ずかしい
1. 作ってみたいアプリがあるので、それを作って生活をリッチにする

## そもそもGitとは
ソースコードを含むドキュメントを管理するツール。ざっくり言えば、以下のことを教えてくれる。
– こういう文章(フォルダ/ファイル)が増えましたよ
– こういう文章(フォルダ/ファイル)が消えましたよ

## Gitの前提
Gitを理解するには、以下の2つの概念を知る必要がある。
1. ローカルとリモート
1. バージョン管理とブランチ
順を追って説明する

### 1. ローカルとリモート
– ローカルは自分のPCのことで、リモートはGitのサーバーのこと
– ローカルに(Gitを経由して)ファイルを保存することをC

元記事を表示

決闘者(デュエリスト)から何となく学ぶGit導入

# はじめに
### 強いデッキ作ろうぜ!
![cardgame_card_dasu.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3794351/73102151-8360-ae18-58be-ca68b9b6486d.png)

俺「サイドラ入れて」
アイツ「サイクロン入れて」
コイツ「ミラフォ抜いて」
ソイツ「トラップを手札誘発に変えて」

俺「これ入れたの誰?」
アイツ「なんであれ抜いたの?」
コイツ「それ抜いたけどこれ入れてないぞ」
ソイツ「それ知らん」

あーあ、ぐちゃぐちゃになってしまいました
🤖

元記事を表示

Git初心者はチーム開発前に Oh My Git! で遊んでおくといいと思う

# はじめに

こんな投稿を見かけたので遊んでみました。

https://x.com/jalva_dev/status/1837794044883194038

# Oh My Git!

「Oh My Git!」は、ユーザーが Git の基本的なコンセプトと操作を学ぶことができるオープンソースのゲームです。

https://ohmygit.org/

# セットアップ

以下のダウンロードページから zip ファイルをダウンロードして展開、起動します。

https://blinry.itch.io/oh-my-git

# 学べる Git コマンド

選択肢に出てくるコマンドなどパラパラと書いてます。

– **intro**:基本的な操作
– `git init`
– `git add`
– `git commit`
– `git pull`
– `git push`
– **files**:ファイル作成・削除(Git というよりシェル)
– `rm`
– `touch`
– **branches**:ブランチの理解・操作
– `git ch

元記事を表示

【git initとは?|初心者向け】Gitでプロジェクトのバージョン管理を行ってみよう!

## この記事でわかること
git initの基本的な使い方

## 主な想定読者
– Git初心者の方
– プロジェクトのバージョン管理をGitで行う予定の方

## git initとは
– git init は、Gitを使い始めるための最初のコマンド
– このコマンドを実行により、ディレクトリがGitによってバージョン管理されるように

## 主に使うタイミング
– 新規プロジェクトのために、新規ディレクトリを作成した時
– 既存プロジェクト用に存在する既存ディレクトリを、Gitでバージョン管理したくなった時

## 基本的な使い方
### 1. Gitで管理したいディレクトリへ移動
– コマンドライン(ターミナルやコマンドプロンプト)を使って、バージョン管理をGitで行いたいディレクトリへ移動

“` :ターミナル
cd path/to/your/project
“`
※ `path/to/your/project` の部分には、管理したいプロジェクトのディレクトリのパスをご入力ください。

### 2. git initコマンドを実行
– 下記コマンドの実行により、ディレ

元記事を表示

【図解解説】これ1本でGitをマスターできるチュートリアル!【完全版】

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/484cfd2f-8d03-a646-9c76-64c8051fcddd.png)

# はじめに

こんにちは、Watanabe Jin(@Sicut_study)です。

今回は記事1本で初心者が必要な知識を全て学べるGitチュートリアルを紹介していきます。
世の中にはたくさんのGitに関する教材があります。しかし、真に良いと思える教材はありません。

もちろん私も4年前はGitという言葉を知らない状態から、書籍などで学習をしました。
しかし、書籍で知識を得たとしても実際にコマンドを使って実践的に学んだわけではなかったので**ほとんど身になりませんでした。**

私が思う世の中にあるGitの教材のイケてない点は2つです。
 

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/72860679-c793-9698-

元記事を表示

【サポーターズ主催】GitとGitHubの勉強会まとめ

# はじめに
こんにちは、OhaGiです。
サポーターズ主催のこちらの勉強会に参加しました。
Git、GitHubは以前から使用していましたが今回改めて体系的に学べたのでその内容をまとめてみます。

https://talent.supporterz.jp/events/194c18ed-0e7f-4858-809d-07e5e7a72c47/

# Gitとは
オープンソースの **分散型バージョン管理システム** の一種。

:::note
**バージョン管理** とは
ファイルを誰が・いつ・どんな変更をしたか、変更履歴を記録すること。
変更差分の確認やファイルの復元等が行える。
:::

:::note
**分散型** とは
ユーザーのPCにローカルリポジトリを作成してそれにファイル変更履歴を記録する方法のこと。
必要に応じてリモートリポジトリに反映させることが可能。
サーバに接続出来ない場面でも開発が出来る上、複数人数での開発に向いている。
![リモートリポジトリ](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

Fast-forwardマージと非Fast-forward(no-ff)マージ

こんにちは。駆け出しエンジニアのtaiyoです。

今回はFast-forwardマージと非Fast-forward(no-ff)マージの違いと、「マージコミット」について勉強したので、まとめた内容を発信したいと思います。

まずマージには、Fast-forwardマージと非Fast-forwardマージがあります。

### Fast-forwardマージ(枝がまっすぐな場合)

**Fast-forwardマージ**は、**変更に枝分かれの状態がなく、単に一続きの履歴として変更をまっすぐに追加できる**場合に適用されます。

例えば、`main`ブランチに、前回マージから**変更が加えられていないとき**に、`dev`ブランチをそのまま後ろに追加するような形です。

このとき、`dev`ブランチに追加の変更を加えた後、`main`にマージしようとすると、**単純に`dev`の変更とコミット履歴がそのまま`main`に追加されます。**

“`
main: A — B (前回マージ)
\
dev: C — D (新しいコミット)

元記事を表示

レビューを出す時は、レビュワーが見やすいようにブランチを分けてください

# ブランチを分けてプルリクエスト(P-R)を作成する方法

背景
先輩にコードレビューを依頼した時に、「レビュワーが見やすいようにブランチを分けてください」と言われた。
でもどうすればいいんだ…困った!!💦

### 今回の例: hogeブランチのmainとの変更差分をfrontendディレクトリとbackendディレクトリで分ける

#### 1. 新しいブランチを作成する

まず、`main`ブランチから新しいブランチを作成します。

“`bash
git checkout main
git checkout -b hoge_frontend_changes_branch
“`

#### 2. `frontend`ディレクトリの変更を取り込む

`hoge`ブランチから`frontend`ディレクトリの変更を現在のブランチに取り込みます。

“`bash
git checkout hoge — frontend
“`

#### 3. 変更をステージングしてコミットする

取り込んだ変更をステージングし、コミットします。

“`bash
git add

元記事を表示

git filter-repoの扱いには気をつけろ!

# はじめに
事の始まりは,Git LFSの容量制限に引っかかり,特定のオブジェクトを削除する必要が出てきたこと.
厄介なことに直前のcommitだけでなく,既にpushをはじめとした諸々の操作をした履歴全てから,当該ファイルを削除する必要があります.とはいえ,入り組んだ履歴から手動で削除するのは大変すぎる……

そんな時に使えるのが`git filter-repo`で,サードパーティ製ながら公式でも推奨[^1]されているOSSライブラリがあります.

[^1]: https://git-scm.com/docs/git-filter-branch

# 事件の経緯
`git filter-repo`を用いて,Git LFSのuninstallの後処理をしていました.
ChatGPTやGithub Copilotに訊きながら進めていたところ,以下のようなコマンドを実行するように求められました.

“`bash
~$ git filter-repo –path-glob ‘*.zip’ –invert-paths
“`

流石に,初めて見るコマンドだったので,安易に実行するこ

元記事を表示

ステージングされていない変更を破棄してブランチを移る

# ブランチを移動したいけど変更したところを戻せなくて移動できない!
となったことはありませんか?

:::note alert
gitでは、衝突する変更を含む場合はブランチを移ることができません
(衝突しないなら可能)
:::

チーム開発の際、余計な変更も含めてcommitしてしまうと、
変更履歴が汚くなってしまいます😭

# 指針としては
:::note info
・変更を保持したまま、ブランチを移る
・変更を破棄してブランチを移る
:::
この二つがあると思います。

# 変更を保持したまま、ブランチを移る
*変更を一時保存する*
“`
git stash
“`
*ブランチを移動する*
“`
git checkout 移りたいブランチ名
“`
*必要に応じてstashした変更を戻す*
“`
git stash pop
“`
# 変更を破棄して、ブランチを移る
*変更を破棄する*
“`
git checkout — .
“`
*ブランチを移る*
“`
git checkout 移りたいブランチ名
“`
(まあGPTに聞けば出てくることではあるんですけどねw)

元記事を表示

Gitコミット履歴をExcel出力する方法

概要

この方法では、Git のコミット履歴を TSV ファイルとして取得し、Excelで出力します。

出力内容

・コミットID
・作成者
・コミット日付
・コミットメッセージ
・変更されたファイル名

※順番・出力内容は変更できます`

なぜ CSVではなくTSV ファイルを使用するのか

CSVファイル出力に関する記事は多く見つかりますが、windowsの場合、CSVからExcelに出力すると、コミットIDやコミットメッセージが1列にまとまってしまい、履歴の確認がしづらくなってしまいます。

本記事で紹介する方法は、まず TSV ファイルでダウンロードし、その後 Excel で開くという方法です。

メリット

* Excelベースで履歴の確認が行える
* コミットID、作者名、日付、メッセージがそれぞれ別の列に分かれる
* 期間指定ができる
* Git履歴の可読性が向上する

方法

###### 1. コミット履歴を取りたいブランチを最新にしておく

###### 2. 以下コマンドでそれぞれのブランチをtsv拡張子で取得
“`
g

元記事を表示

OTHERカテゴリの最新記事