今さら聞けないGit 2022年03月30日

今さら聞けないGit 2022年03月30日

たまに使うGitコマンド集

# はじめに

便利だが、たまにしか使わないコマンドをメモとして残します。

## 基本方針

– main へのマージは squash する
– squash するので rebase は使わない
– squash するので feature の commit は自由にする
– main からの merge commit も気にせず入れる

## 基本的なコマンド

https://qiita.com/shimotaroo/items/b73d896ace10894fd290

## 見つからないコマンド

### エディターをVimに変更したい

“` shell
git config –global core.editor vim
“`

### リモートの状態に戻したい

“` shell
git switch feature
git fetch origin # ローカルを最新にする
git reset –hard origin/feature # 強制的に戻す
“`
[gitでリモートのブランチにローカルを強制一致させたい時](https://qiit

元記事を表示

Gitコマンド一覧

## セットアップ
“`
git init
“`
・ディレクトリ下で使用する。

## ユーザー名とメールアドレスを確認&再設定

“`
$ git config user.name
$ git config user.email
$ git config –global user.name “Your Name”
$ git config –global user.email “your.mail.account@gmail.com”
“`
・–globalオプションは、ユーザごとの設定を行う ~/.gitconfig ファイルに対して、サーバー全体に値を設定するという意味
・–localにすると、ディレクトリ下限定の設定となる。

## ステージ、コミット、プッシュ
“`
$ git add sample.php
$ git add -A
$ git commit -m “commit message”
$ git remote add origin https://github.com/user/repository.git
$ git push -u or

元記事を表示

Git にコミットされない魔法のデバッグ用ロガーを開発してきた

こんにちは。[task](https://github.com/task4233)です。

先日、メルカリ主催の「Online Spring Internship for Gophers 2022」に参加してきました。

このイベントでは、[募集要項](https://mercan.mercari.com/articles/31914/)に書かれている通り、Go1.18で新しく入る型パラメタ(ジェネリクス)、Fuzzing、Workspaceについて学んだ上で、参加者各自がGo1.18の新機能を用いたツールを開発しました。

私はそこでアイデアや設計などのサポートをしていただき、Git にコミットされないデバッグ用ロガーである `dl` を開発しました。この記事では開発の背景や使い方、仕組みについて紹介します。

https://github.com/task4233/dl

このロガーの特徴は以下の3つです。

1. **Git にコミットされないGoのデバッグ用ロガー**
2. **既存の `logr.Logger` 構造体も利用可能**
3. **1コマンドで環境構築可

元記事を表示

Railsでアプリ作成時に、使用可能なバージョンを確認する方法

# 結論

ターミナルで以下を入力

“`
% gem list rails
“`
これで使用可能なバージョンが表示されます

“`
*** LOCAL GEMS ***

rails (5.0.1, 4.2.6, 4.2.5, 4.1.6)
“`

## ちなみに
バージョンを指定してアプリを立ち上げる場合
“`
rails _5.0.1._ new アプリ名
“`
これで指定のバージョンでアプリを作成できます。

以上です

元記事を表示

git ブランチ名を変更!

# gitのブランチ名間違えてしまった

gitのリモートリポジトリ作成時スペルを間違えてしまった。

“`
git checkout -b acount-activation
“`

“`
git branch -m account-activation #今開いているブランチ
git branch -m acount-actication account-activation #開いていない場合
“`

で変更できます!

### 参考文献
https://qiita.com/suin/items/96c110b218d919168d64

元記事を表示

GitHubからCodeCommitへ移行

# はじめに
GitHubからCodeCommitへリポジトリを移行してみました。

また、AWSの[こちらのページ](https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/how-to-migrate-repository-existing.html)に移行用のドキュメントがありましたので
こちらを参考に進めて行きます。

# 必要な作業
作業内容と行っても複雑なものは特になく

1.移行したいリモートリポジトリをローカルPCにクローン
2.CodeCommitに移行先のリポジトリを作成
3.クローンしたリモートリポジトリをCodeCommitにプッシュ

以上の流れになります。

# リモートリポジトリをローカルPCにクローン
## リモートリポジトリをクローン
今回はリポジトリの移行が目的のため、履歴も持ったベアリポジトリをクローンする必要があります。
※ベアリポジトリとは作業ディレクトリを持たないリポジトリでリモートリポジトリに使用されています。

そのため、–mirrorオプションを付加してクローンします

元記事を表示

git config

“`
git config –global user.email “aizwellenstan@gmail.com”
git config –global user.name “aizwellenstan”
“`

元記事を表示

Windows PowerShellでgitのブランチを表示して、変更があったらブランチ名の色を変えるスクリプト

# 概要
PowerShellでgit操作する際に、ブランチ名や変更状況等をビジュアライズしたいので、スクリプトを作成しましたー

# 設定
Documents\WindowsPowerShellに配置するMicrosoft.PowerSHell_profile.ps1に下記のスクリプトを配置する。

[こちらの記事](https://kojinjigyou.org/24625/) を参考に改造。

“`Microsoft.PowerSHell_profile.ps1
function prompt {
$branch = “”
$git_cahnge_count = 0
$git_staged_count = 0
if (git branch) {
(git branch | select-string “^\*”).ToString() | set-variable -name branch
$branch = $branch.trim() -replace “^\* *”, “”
git diff –name-only | wc -l

元記事を表示

gitでよく使うコマンドを順に沿って整理してみた。(プロジェクト開始からローカルの変更を反映するまで。)

# はじめに
もはや何番煎じかわかりませんが、gitについて調べたことをメモします。
実務を想定して書くので未経験者や初心者の方もイメージがわきやすいはず。
なお、gitには様々な操作がありますが、すべて取り上げると長くなるので、ブランチやリモートリポジトリ作成に関することは別記事にします。

# 前提条件
MacOS Big Sur 11.6.5

# そもそもgitとは
バージョン管理システムのこと。
IT業界で開発を進める際は、複数のメンバーで同時進行で進めることが多いです。
役割分担してそれぞれが書いたソースコードを毎回手作業で統合するのは極めて骨が折れます。
また、トラブルなどがあった際にすぐソースコードをトラブル前に戻したりとか、あるコードをいつだれが書いたのかを把握できるようにしておく必要があります。

そこで、IT業界ではバージョン管理という手法を用いてプログラムのソースコードの変更履歴を常に記録、管理しています。
そしてバージョン管理システムの代表例の一つが**git**です。

# どうやったらgitが使えるの?
公式サイトからダウンロードする。なお、ダウンロード前

元記事を表示

既存のリポジトリをBitbucketに紐づけする方法

はじめて使用したときに困ったので、備忘録として。(ときたま使用するときがあるし…)

# ローカルリポジトリの準備

1. Sourcetreeを用いて,ローカルリポジトリを作成.作業パスは追加したいファイルがあるパスを選択。
* ex. “cd C:\Long\Coat\Daddy” (Daddy下にソースファイルやら何やら)
* この時出力先のエラーが出るが「はい」を押して続行。
* クローン作成先のパス”C:\Long\Coat\Daddy”は既に存在しています。続行して、このフォルダにリポジトリを作成しますか?
![create repositry.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2598835/93f35c99-2331-c5c2-71b9-da47a86aa849.png)

2. 好きなのファイルをコミットする.

# リモートリポジトリの準備
1. Bitbucketにアクセス
* 「+」ボタンからリポジトリを作成

元記事を表示

シェルスクリプトで書くgit エイリアス

:::note warn
この記事は、gitエイリアスを作るにあたって[より適した方法](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-Git-%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9)を紹介していません。
:::
# 動機
シェルスクリプトを触れるようになりたいということで、はじめの一歩として普段よく使うgitコマンドをカスタマイズしてみることにしました。

# やりかた
適当なディレクトリに「git-hoge」という名のシェルスクリプトを配置し、実行権限をつけてパスを通せば「git hoge」コマンドが動くようになります。
### git-hogeを配置
“`
$ cd ~
$ mkdir .bin
$ cd .bin
$ vim git-br
“`
“`sh:git-br
1 !#/bin/sh
2 git branch $@
“`
### git-hogeに実行権限をつける
“`
chmod u+x git-br
“`
### パスを通

元記事を表示

git branch と毎回打つのはめんどくさい

# 背景
cuiでgitを使っていて、git branch だのgit checkout だのをしょっちゅう手打ちすることに気づきました。
gitコマンドは [wordle](https://www.nytimes.com/games/wordle/index.html)ではないので、最初の数文字だけでわかってほしいです。

つまり、
“`
git br
“`
とかでbranchを確認したいのです。

# 結論
gitリポジトリ内でこれを叩きます。
“`
$ git config alias.br branch
“`
すると以下ができるようになります。
“`
$ git br
aaa
bbb
* master

“`
# 何が起きたのか

.gitディレクトリ内部のconfigが更新されています

“`
$ cd .git
$ ls
COMMIT_EDITMSG hooks objects
HEAD index refs
config info
description logs
“`

“`
$cat config
[core]
repositor

元記事を表示

git describe

`git describe –always` get recent commit id

“`shell
git describe -h

usage: git describe [] […]
or: git describe [] –dirty

–always show abbreviated commit object as fallback
–contains find the tag that comes after the commit
–debug debug search strategy on stderr
–all use any ref
–tags use any tag, even unannotated
–long always use long format

元記事を表示

git log 変更履歴を確認する

git log 変更履歴を順に辿れる
いつどこでどんなどんなコミットがあったのか履歴を辿れる
“`
git_tutorial % git log
commit 53dd892bc4f850fd4307916af0a424b9f50d2512 (HEAD -> master)
Author:
Date: Sun Mar 27 10:00:22 2022 +0900

diff

commit 009c55f78ab6b364d2ee9b3a1452f94e8338fe41
Author:
Date: Sun Mar 27 09:50:35 2022 +0900

thirdcommit

commit 3667a5a17da7201ff1a52bf8d1473441e665c19a
Author:
Date: Sun Mar 27 09:28:13 2022 +0900

a

commit 9bbe2aa2ffeb3cdf0bd763be50dbf8800716e69b
Author:
Date: Sun Mar 27 09:24:45

元記事を表示

git diff変更差分を確認する

ワークツリーとステージの間の変更差分を確認するのが
git diff <ファイル名> コマンド

git addした後の変更分を確認するのがステージとリポジトリの差分を確認したいとき。
git diff –staged

“`
git_tutorial % git diff
diff –git a/index.html b/index.html
index 470f438..6a9d330 100644
— a/index.html
+++ b/index.html
@@ -1,3 +1,4 @@
initial commit
second commit
-third commit
\ No newline at end of file
+third commit
+git diff
\ No newline at end of file
git_tutorial % git add index.html
git_tutorial % git diff(ステージに移動したから何も表示されなくなる)
git_tutorial % git diff –staged(リポジト

元記事を表示

Gitまとめ

///
Gitはスナップショットを記録する。
Gitはデータをバージョンとしてそのまま保存する。(差分ではなく、そのまま保存する)
Gitは以前の状態に戻せる。(コミットを辿ることで以前のコミットに戻せる)
///

///
ワークツリー(自分の作業場) ①⇨ ローカルリポジトリ(自分のパソコンの履歴データ) ⇨ リモートリポジトリ(Github)

①まずはローカルに差分ではなく、全体のスナップショットとして記録する。

他人のデータを取得する
リモートリポジトリ(Github)⇨ ローカルリポジトリ ⇨ ワークツリー

ローカルは3つのエリアからできている
ワークツリー git add⇨ ①ステージ(スナップショットをコミットする変更を準備)git commit⇨ ローカルリポジトリ(スナップショットを記録する)

①ステージはなぜあるのか
変更したファイルだけをステージに追加したいから。
いらないファイルと分けたい

///

///
🔥ワークツリー index.html //git add//⇨ 🔥リポジトリ index.htmlのファイル内容を圧縮する//git add//

元記事を表示

【差分比較】ファイルやディレクトリの差分を比較する方法

## ディレクトリ同士の差分を比較する方法

どのファイルが異なっているかに関しては’diff’コマンドで分かります。
“`
diff -rq original_app other_app
“`

GitHubを使用する場合であれば、新たにブランチを切り、参考にしたいフォルダの中身を丸ごと入れ替えて、ブランチ同士の比較をするという荒技も考えられます。

## ファイル同士の差分を比較する方法

ファイル同士の比較はgitコマンドが便利です。
“`
git diff fileA fileB
“`

##

元記事を表示

【失敗談】GitHubのコミット履歴を復元させることになった時の話し

## そもそも、なぜコミット履歴を復元することになったのか

#### 禁断のコマンド「git push -f」

作業の詳細はここでは割愛しますが、当時Git-flowを導入しようと作業を進めていました。 その作業の途中で「git push」を行なったところ、下記のようなエラーが出ました。

“`
% git push
〜〜省略〜〜
〜〜省略〜〜
error: failed to push some refs to ‘https://github.com/〜〜省略〜〜.git’
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull …’) be

元記事を表示

git_config設定

よく忘れるのでメモ。

# gitのconfig設定

“`terminal:一覧表示
$ git config –list
“`

“`terminal:セットしたい時
$ git config –global {設定値}
“`

“`terminal:外したい時
$ git config –global –unset {キーの名前(=より左側)}
“`
##### `{キーの名前(=より左側)}`の補足

* `git config –list`で表示させた時の、`=`より左側のことだよ!
* 下記で言うと、`alias.ci=commit`が消えます。

![スクリーンショット 2022-03-26 13.33.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/696641/2fad262a-d8da-4699-de0e-1ede787825f1.png)

# よく使う設定

## 初期設定

“`terminal:名前
//登録
$ git config

元記事を表示

Gitのサブコマンド風エイリアスを作成したい

## はじめに
– Gitの各種サブコマンドをショートカットしたコマンドを呼び出したい

パッと思いつくのはailiasでしょうか

“`.bashrc
alias gitco = “git commit”
“`
ただ、`git co`のようなエイリアスはサブコマンドとして処理されてしまうためできません

## 解決法

> git-hogeというファイル名で作成した、スクリプトのパスを通しておくとgit hogeで実行してくれます

例えば

“`~/.bin/git-co
#!/bin/bash
git commit $@

# $@で このコマンドが呼び出されたときの引数をすべて取得できます
“`
作成したらbashなどのシェルで実行権限との付与とパスを通します
“`shell
$ chmod +u ~/.bin/git-co
$ export PATH=”$PATH:$HOME/.bin/”
“`
これで`git co`を`git checkout`のエイリアスとして実行できます。

### Tips
git-hogeはシェルスクリプトとして書けるのでシバンをPy

元記事を表示

OTHERカテゴリの最新記事