- 1. Git GitHub 入門
- 2. 複数のGitアカウントを使い分ける
- 3. 『Gitの強力な助っ人、サブモジュールの使い方を完全解説!』
- 4. TortoiseGitで”git log –follow -p filename”相当のことをする方法
- 5. Git入門
- 6. Gitのローカルリポジトリでワークツリーを一時退避するチートシート
- 7. 異なるOS間でのGemfile.lockの競合を解決する方法
- 8. Gitの中身を調べたら理解に役立った
- 9. UnityプロジェクトをVSCodeでGithubに上げる方法
- 10. GitHub に草が生えない (結論: フォークしたリポジトリだから)
- 11. 【備忘録】GitCliのgh browseが使えない
- 12. git コマンド 使用履歴
- 13. 【ざっくり分かるGit】originとorigin/masterとmasterの違い
- 14. Gogsをdocker-composeで動かす方法
- 15. git コマンドメモ
- 16. 【macOS版】Homebrewを使ってgitをインストール
- 17. 【Git】Git初期設定 for Mac OS
- 18. Gitメモ
- 19. モノレポ管理していたFrontend/Backendで分けたくなった場合のやり方
- 20. GitHubにPushするときは1回のPushを10MBくらいにした方が良いのでスクリプトを書いた
Git GitHub 入門
# Gitとは
プログラム管理ツールのこと。
プログラム自体には上書き保存などの機能がないため外部ツールを用いて管理を行います。# 初期設定
## アカウント作成
GitとGitHubを利用するにはアカウントが必要です。
[GitHub](https://github.com/)にアクセスしてアカウントを作成します。
1. `Sign Up`をクリック
![Screenshot from 2023-08-02 13-52-17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2729508/a4347952-0d4f-f476-f5e1-0486679564c7.png)2. メールアドレスを入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2729508/e0ee43cc-70eb-472a-e368-1b6aba27a968.png)3. パスワード入力
![image.png](
複数のGitアカウントを使い分ける
# 概要
SESで働いていたり副業で別の会社に所属したりしているとその先々でgitアカウントの作成を求められることがあります。PCはもちろん自前です。そうなると同じPCから別のgitアカウントでpushしたりしないといけません。当記事はその設定方法です。(*macで動作確認してます)# 手順
ここから具体的な手順です。
1. キーペアを作ってgithubに登録
1. ~/.ssh/configに接続の設定を追加
1. 疎通確認
1. gitアカウントの切り替えコマンドを作成## キーペアを作ってgithubに登録
このステップはgithubに詳細があるのでそちらを参考にしてください。
https://docs.github.com/ja/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account?platform=macターミナルでssh接続するためのキーを作成します。
`-f`はファイル名を指定するオプションです。
“`
$ ssh-keygen -f
『Gitの強力な助っ人、サブモジュールの使い方を完全解説!』
—
# はじめに
Gitはバージョン管理システムとして、ソフトウェア開発者にとって不可欠なツールです。特に、複数のプロジェクトやライブラリが絡むとき、Gitのサブモジュール機能は大変便利です。今回は、このGitのサブモジュールの基本的な使い方を紹介します。
—
## 目次
1. [サブモジュールとは](#サブモジュールとは)
2. [サブモジュールの追加](#サブモジュールの追加)
3. [サブモジュールの初期化とアップデート](#サブモジュールの初期化とアップデート)
4. [サブモジュールの変更の取り込み](#サブモジュールの変更の取り込み)
5. [まとめ](#まとめ)—
# サブモジュールとは
Gitのサブモジュールは、ひとつのリポジトリに別のリポジトリをネストするための機能です。これにより、独立したプロジェクトを一つの親リポジトリで管理することができます。
# サブモジュールの追加
それでは、実際にサブモジュールを追加してみましょう。
まずは、以下のコマンドをターミナルで実行します。
“`bash
git submodule add
TortoiseGitで”git log –follow -p filename”相当のことをする方法
以下の手順でできる
1)普通にメニューからShow logで表示
2)ログが表示されたウィンドウの最下段にあるメニューの”Walk Behavior”をクリック
3)サブメニューの中にある”Follow renames”をクリック設定で常時ONとかはできないっぽい
Git入門
## :writing_hand_tone1: 概要
エンジニア歴5年目にしてGitを業務で使うのが久々すぎて(産後の物忘れも追い打ちをかけてきて)、使い方を忘れてしまった私ができる限り自分が後から見て理解できるように書いた、Git使う時にこれ見れば完璧に使えるわな記事。(← なのでほぼ自己満です)## :writing_hand_tone1: Gitとは
ファイルのバージョン管理をする為のツール。
作業していて変更前の内容に戻したいという時や、複数人で作業をしている時に「このファイルいつ誰が触ったのか知りたい!」という時に便利さがわかります。参考:[**【絶対理解できる】Gitとは?特徴やできることまとめ!**](https://www.sejuku.net/blog/5756)
## :books: Gitのあれこれ
こちら、完全に自分用のメモです。### :star: 基本系
#### ▶︎ ブランチ切りたい
– [**Git ブランチを新規作成・削除する**](https://www.kamo-it.org/blog/git_branch/)
– [**【Git
Gitのローカルリポジトリでワークツリーを一時退避するチートシート
# はじめに
Gitでバージョン管理を行っているローカルリポジトリで
ワークツリー内の変更内容を一時的に保存(現在の作業を一時的に退避)する方法について
よく使用するコマンドの覚書を残します。## コマンド
“`bash
# 追跡されていないファイルも含めて名前を付けて退避する
$ git stash save -u “sample_stash_name”# 補足:save時にpオプションを指定することで部分的に(hunkという単位で)退避することもできる
例:git stash save -p “sample_stash_name”# 退避した作業一覧を確認
$ git stash list# 退避した作業の詳細を確認
$ git stash show stash@{number}# 補足:show時にpオプションを指定することで差分(diff)を確認することができる
例:git stash show -p stash@{number}# 退避した作業を指定して元に戻す(applyで戻した作業は退避一覧から削除されない/popコマンドだと削除される)
異なるOS間でのGemfile.lockの競合を解決する方法
## はじめに
オリジナルプロダクト(ポートフォリオ)のデプロイに向けて、最新のソースコードをAWS EC2に反映させようとしたところ、`Gemfile.lock` の競合が発生しました。
その原因と解決方法についてまとめました。### 開発環境
– ローカルマシン
– OS:macOS Ventura
– AWS EC2
– OS:Amazon Linux 2
– 共通
– Ruby:3.2.2
– Rails:7.0.6
– Bundler:2.4.13## エラーメッセージ
EC2 に`git pull`で最新のソースコードを反映させようとしたところ、以下のエラーメッセージが表示されました。
“`
error: Your local changes to the following files would be overwritten by merge:
Gemfile.lock
Please commit your changes or stash them before you merge.
“`「次のフ
Gitの中身を調べたら理解に役立った
# 概要
Gitの中身を知ることで、どこに対する操作なのかを意識しやすくなります。
今回はできるだけ短く要点だけまとめます。## Gitのデータ管理
ローカルでは3つのエリアに分かれています。それぞれ紹介します。**ワークツリー**
ファイルを変更する作業場。普段私たちがコードをいじる場所ですね。**ステージ**
`git add`をした時にステージに追加されます。コミットをする準備をします**リポジトリ**
`git commit`をした時にリポジトリに追加されます。ここではスナップショットを記録します![20200911144527.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/641519/b31effa3-9505-272f-dfb7-f62022116655.png)
引用: https://phoeducation.work/entry/2020/09/11/144733## Gitコマンドについて
| コマンド | やっていること | 説明 |
|:——–
UnityプロジェクトをVSCodeでGithubに上げる方法
# 初めに
以前、「__Github for Unity__」を使った「__Github__」へ上げる方法の記事を作成したのですが
https://qiita.com/T-H9703EnAc/items/7c1e78969f4178a2662d
どうやらサポートの対象外になっていたようです。
https://github.com/github-for-unity/Unity/issues/1179
なので代わりに「__VSCode__」で上げる方法を記載します。
# 前提事項
・事前にGitにあげたいプロジェクトを作成しておくこと。
・__Git__ と __Visual Studio Code__ をインストールしていること。https://qiita.com/T-H9703EnAc/items/b58808f5e0eed950ce2d
https://qiita.com/T-H9703EnAc/items/4fbe6593d42f9a844b1c
# 目次
|No|概要|
|—|—|
|1|[手順1 .gitignoreファイルを取得・配置](#手順1-
GitHub に草が生えない (結論: フォークしたリポジトリだから)
# 目次
[1. Push しても草が生えない](#1-push-しても草が生えない)
[2. Fork したリポジトリだったから](#2-fork-したリポジトリだったから)
[3. Fork リポジトリをスタンドアローンリポジトリに変換する方法](#3-fork-リポジトリをスタンドアローンリポジトリに変換する方法)
[4. まとめ](#4-まとめ)
[参考文献](#参考文献)# 1. Push しても草が生えない
ここ数日,GitHub に Push しても草が生えないという状態になってました.草を求めて日々 GitHub に Push しているわけではないですが,ひとつのモチベーションになっているのは確かです.
軽く調べると,メールアドレスの設定が原因で草が生えない人が多いみたいです.自分はコミットログに個人のメールアドレスを残したくなかったため,**@users.noreply.github.com** のアドレスを使えるように GitHub の設定をしていたので,もしかしたらそれが悪いのかなと思いました.しかし,**.gitconfig** には正しく設定できているし,
【備忘録】GitCliのgh browseが使えない
## 参考
[Windows11 + WSL2 + ghコマンドでexec: “xdg-open,x-www-browser,www-browser,wslview”: executable file not found in $PATH エラーが出る時](https://qiita.com/yasuflatland-lf/items/02f1323e44e1af9f81b6)## 症状
Windows10 + WSL2 (Ubuntu)でgh browseを実行しようとしたときに、以下のエラーが出てブラウザが起動しない
“`
exec: “xdg-open,x-www-browser,www-browser,wslview”: executable file not found in $PATH
“`## 解決方法
“`
# パッケージリポジトリを追加
sudo add-apt-repository ppa:wslutilities/wslu
sudo apt update
# WindowsとLinuxの統合がスムーズになる機能を持つパッケージをパッケージリポジト
git コマンド 使用履歴
## git エラーの内容 fatal: remote origin already exists.
“`
$ git remote add origin https://github.com/ユーザ名/リポジトリ名.git
fatal: remote origin already exists.
“`一度originを削除し、再度originを登録すれば解決。
“`
$ git remote rm origin
$ git remote add origin git@github.com:ユーザ名/リポジトリ名.git
“`
【ざっくり分かるGit】originとorigin/masterとmasterの違い
## 本記事の目的
origin, origin/master, masterの違いがわかるようになること.## 早めの結論
違いは以下の通りです.
今からこの表の説明が分かるように説明していきます.
|項目|説明|
|–|–|
|origin|リモートリポジトリの名称|
|origin/master|リモートリポジトリ「origin」のブランチ「master」を追跡するブランチ|
|master|ブランチの名称|## 違いが分かると何が嬉しいの?
– コマンドで使う「origin」や「origin master」の意味が分かるようにするので適切にコマンドを使えるようになる
– 例) `git fetch origin` と `git fetch origin master`の意味が分かるようになる## そもそもGitとは
皆で開発をするためにファイルを管理してくれるシステムです.
これを使うことで皆で分担して同時に開発することができます.
例えば,Webアプリの1画面に対して,Aさんが一部,Bさんが別の一部を開発する…のようなことができます.
https:
Gogsをdocker-composeで動かす方法
# はじめに
GitHubのような環境が手元に欲しくて探したところ[Gogs](https://gogs.io)というGitHubクローンのOSSがあった。しかし、Gogsを使うにはデータベースも別途、用意しないといけないと分かったのでdocker-composeを使って、さっくりとGogsを立ち上げられるようにした。
そのとき使ったdocker-compose.ymlと方法をここにメモしておく。# docker-composeの軽い説明
docker-composeを使うと複数のDockerコンテナを協調動作させるようなサービスを簡単に建てられるようになる。使い方はとても簡単。1. 空のフォルダを作る
2. 中にdocker-compose.ymlを置く
3. フォルダ内で`docker-compose up -d`を実行するこれだけでお手軽にサービスを立ち上げることができる。
コンテナ群を停止させるときは`docker-compose down`を実行するだけ。# docker-compose.yml
Postgresのパスワードは`#####`と書いているが、ここ
git コマンドメモ
## 最初に設定しておきたいこと
コミットする前にはユーザー登録の必要あり
“`
git config –global user.name [ユーザー名]
git config –global user.email [メールアドレス]
“`windows 環境で clone したときに改行コードを勝手に変換させない
“`
git config –global core.autocrlf false
“`## リポジトリ操作
共有可能なリモートリポジトリの作成
“`
git init –bare –shared [パス(url)]
“`現在のディレクトリにリポジトリ作成
“`
git init
“`リモートリポジトリの追加
“`
git remote add origin [url]
“`リモートリポジトリからクローン
“`
git clone [url] .
“`ディレクトリ指定にピリオドつけると、勝手にフォルダが作成されず、中身のみが展開される
コミット&プッシュするため、まずは追加
“`
git ad
【macOS版】Homebrewを使ってgitをインストール
# はじめに
gitをインストールする方法は他にもありますが、今回はHomebrewを使ってgitのインストールを行います。Homebrewはgitのバージョン管理や拡張機能のインストールなどプログラミング言語の環境構築等によく使われるツールです。
今回はHomebrewを使ったgitのインストール方法を紹介しますので、Homebrewをまだインストールしていない方は[【macOS版】初心者でもわかる!Homebrewのインストール手順を徹底解説](https://qiita.com/inakuuun/items/431918811c351e46e3bc)を参考に先にインストールを済ませてください。## gitが自身のPC上に存在するか確認
gitはMacにデフォルトでインストールされていることもあるため、まずはgitが自身のPC上にインストールされているかをターミナルで`which git`コマンドを実行して確認します。“`
# gitがPC上に存在するか確認するコマンド
%which
【Git】Git初期設定 for Mac OS
## はじめに
MacOSでGit初期設定をする方法についてのメモとなります。
(何回やっても忘れてるので。。?)## 環境
■ MacOS
13.4.1
■ チップ
Apple M2## 1.Homebrewをインストール
HomebrewはmacOS上で動作するパッケージ管理ツールのひとつとなります。
Homebrewを用いて様々なパッケージをインストールすることができます。■ Homebrew
https://brew.sh以下のコマンドでインストールできます。
コマンドが変わる可能性があるので、ホームページで確認するのをお勧めします!“`terminal:Terminal
$ /bin/bash -c “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”
“`
Homebrewをインストールしたものの、以下のエラーが発生していました。
バスが通ってないことが原因となるため、Homebrewのパスを通すことにより、解決できます。“`te
Gitメモ
#初回のセットアップ
ユーザー直下にファイル作成
→git init
→git clone https://github.com/~#githubへのアップ流れ
git add
→ git commit
→ コメント
→ git push origin main## コマンドメモ
**git init**
.gitディレクトリを作成(隠れファイル)**git clone**
“リポジトリ→ローカルにコピーを作成”**git add**
“ワークツリー→リポジトリとステージに追加(コミットする変更準備)”**git commit**
”ステージに保存されているファイルを変更した事を保存する”**git commit -m “<メッセージ>“**
(1行目に変更内容の要約)
(2行目に空行)
(3行目に変更した理由)
**git status**
”現在の変更状況を確認する”**git diff**
”ワークツリーとステージの変更差分を確認する”**git diff –staged**
“ステージとコミットとの間の変更内容を表示する”
モノレポ管理していたFrontend/Backendで分けたくなった場合のやり方
## これは何
FrontendとBackendをモノレポで管理していて、途中で、FrontendとBackendで分けたくなった場合の方法の備忘録## やり方
– 対象となるリポジトリをcloneしてくる
` git clone https://github.com/username/app-name.git`
– server / client と2つのリポジトリに分かれてることを確認
`git filter-branch –subdirectory-filter 対象のサブディレクトリ(ここでは client ) HEAD`
– 注意すべきこととして、git `fileter-branch` コマンドは、ルートディレクトリで行うこと
– 新しくGitHub上に要した場所にpush
– 完了## `git filter-branch` コマンドとは何者?
Gitのリポジトリ履歴を再書き込みするための強力なツール。
主な目的は、履歴の内容をフィルタリングしたり、部分的に切り出したりして、リポジトリの歴史を変更すること。
これを使うことで、過去のコミットを修正、削除、
GitHubにPushするときは1回のPushを10MBくらいにした方が良いのでスクリプトを書いた
# はじめに
GitHubに大量のファイルをPushしたらサイズ制限で弾かれた。
1つのファイルはLFSを使用するまで大きくないものの、1回のPushの容量が大きいと制限がかかるみたいです。
というわけで、10MBぐらいずつadd&commitしてpushするスクリプトを書いた。“`bash
#!/bin/bash# 現在のディレクトリがGitリポジトリであることを確認
if [ ! -d .git ] && ! git rev-parse –git-dir > /dev/null 2>&1; then
echo “Error: must run this script in a Git repository”
exit 1
fi# カレントディレクトリを保存
root_dir=$(pwd)# ファイルサイズの合計を保持する変数を初期化
total_size=0# 10MBのサイズをバイト単位に変換
commit_size=$((10*1024*1024))# カレントディレクトリ内のすべてのファイルを再帰的に走査
find . -type