今さら聞けないGit 2022年10月12日

今さら聞けないGit 2022年10月12日
目次

gitコマンドで親ブランチ間違えた場合の対応

github親を間違えた場合の対応です
子ブランチをたくさん生成しているときによくやってしまいます
疲れているとき、夕方集中力がキレた時に必ずやります
翌朝スッキリして対応しましょう :sun_with_face:

## ブランチ作成時に親にするブランチを間違えた場合
“`
$ git rebase –onto {本来親にしたかったブランチ} {間違って親にしてしまったブランチ名} {親を変更する作業ブランチ名}
“`

“`
$ git rebase –onto origin/develop work/A work/B
“`

## リベース時に本当の親じゃないブランチをリベースした場合
(1) 間違えたリベースを取り消す
“`
$ git reflog
“`
(2) マージ直前のHEADを見つける
“`git
66aab3fe7c (HEAD -> feature/DHCR-732_2, develop) HEAD@{164}: reset: moving to HEAD
66aab3fe7c (HEAD -> feature/DHCR-732_2, deve

元記事を表示

他の人のリポジトリからgit cloneして、自分のリポジトリにpushする

1. 他の人のリポジトリをローカルにcloneする。
“`
git clone [他の人のURL: https://~~~.git]
“`

2. 自分のGitHubページでリモートリポジトリを作成する。

3. ローカルにcloneしたディレクトリで下記のコマンドを実行する。
“`
git add [ディレクトリ名]
git commit -m “[コメントをつける]”
git push [自分のリポジトリURL: URLhttps://~~~.git]
“`

元記事を表示

Gitのブランチとは(初心者向)

# ブランチとは何か

メインの作業に加えて`新しい機能を追加する際`など、
`作業を分岐して開発`することを指します。

![スクリーンショット 2022-10-09 8.24.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2765288/d12d696d-9a3d-f47a-34da-8caf00863787.png)

mainブランチの作業に加えて”C”をコミットした際、全く異なる開発を`並行作業したい場合`
subブランチ(仮名)を作成し、mainブランチとは異なる開発を並行して進めることができます。

## ブランチを作成する

ブランチを作成には次のコマンドを実行します

“`
$ git branch sub

// git branch “ブランチ名”
“`

## 作成したブランチを一覧表示する

次のコマンドでブランチ設定を確認できます

“`
// ブランチの一覧を表示したい
$ git branch

// GitHubを含めた全てのブランチを確認したい
$ git

元記事を表示

【新人?開発】東京都内で30以上ある避難所オープンデータを全てまとめて可視化?

# 記事について

こんにちは!

この記事では[前回](https://qiita.com/To-Ki-O/items/8760d2eb9f1b50a846ea)、学習した技術を使って、
**オープンデータの可視化をするための開発**について書いています!

↓今回作成したもの(**東京の避難所データを統合し、マップ上に可視化**)
result.png
※GitHubのリポジトリは[こちら](https://github.com/To-Ki-O/fiware-tokyo-opendata-integration)に公開しています。

↓今回作成したものの構成イメージ
![アーキテクチャ図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

【やらかし】git mergeしすぎた話

# はじめに

名刺の肩書きに“エンジニア”と書かれる仕事に就いたのは丁度1年前、細々と色んな業務をこなしてきた。
そして**最近ようやく念願のコーダーとして案件に参加する**事になった。

そんな私がgitで悪戦苦闘するお話。

こんな失敗もあるんだな、と誰かの知識に繋がれば私の失敗も成仏されると思う?

# git mergeってやればやるほど良い?(いいえ)

gitを使うのはこれが初めてという事はなく、複数人でのgit管理は3回ほど経験がある。ただどれも大きな規模のものではなく、コミットログを(強く)気にする必要がないレベル。

これまでずっと私はgit mergeはやればやるほど良いと思っていた。理由下記の通り。

– git mergeすればするほど、コンフリクトを発生させずに済み、他メンバーに迷惑をかけないはず。
– git mergeすればするほど、ローカルの開発環境でエラーが出にくいはず。だって最新だもん。

> git mergeすればするほど、コンフリクトを発生させずに済み、他メンバーに迷惑をかけないはず。
>

**いや、コミットログ汚してるからコードレビュー

元記事を表示

git 別リポジトリのコミットをできる限り安全に取り込む(同期する)

# 概要

– GitHub内の別リポジトリのコミットを取り込む(こちらで説明)
– GitHubとGitLabを跨いだ別リポジトリのコミットを取り込む

上記のようなパターンがあるかと思いますが、どちらにも適用できます。

# 手順

## (手順1)コマンドで登録

“`:リモートアドレスの確認
% git remote -v
origin git@github.com:hogehoge/repository_name_a.git (fetch)
origin git@github.com:hogehoge/repository_name_a.git (push)
“`

“`:取り込み先リポジトリの登録
% git remote add copy_to_repo git@github.com:hogehoge/repository_name_b.git
“`

“`:再度リモートアドレスの確認
% git remote -v
copy_to_repo git@github.com:hogehoge/repository_name_b.git (fetch)

元記事を表示

React App を clone したけど npm start できない

リポジトリをクローン
“`zsh:Shell
git clone “https://github.com/~”
“`
react-scriptsをインストール
“`zsh:Shell
npm i react-scripts
“`
大体うまくいきます。

元記事を表示

【GitHooks】mainブランチへのコミットを禁止する。【pre-commit】

## 前提
mainブランチやmasterブランチで動作を確認している中で、そのままコードを修正し、勢いでコミットまでやってしまい、後から「あれ?作業ブランチ切れてなくね・・・?」したことありませんか?

私はあります。

リモートにpush前ならすぐに`$ git reset –soft HEAD^`して作業ブランチでコミットし直せばいいですし、push後ならgit revertしたらいいですが、それも手間なので根本的に制限しておきます。

同じGitHooksを使って、以前はこんな記事も書きました。
[【Git Hooks】コミット時にコミットメッセージの自動チェックを行う。【commit-msg】](https://qiita.com/MasaoSasaki/items/f10ab4cd54e228fb436f)

この記事ではmainブランチなど主要ブランチへのコミットの制限方法について解説していきます。

## Git Hooksとは
Git Hooksとはgitに標準で備わっている機能の一つで、`git commit`や`git push`が実行された際に、スクリプトを実

元記事を表示

ローカルリポジトリをリモートリポジトリへPushする際のトークンについて

新しくGitHubでリポジトリを作成してローカルリポジトリをリモートへPushする際に以下のエラーが発生しました。

“`
Username for ‘https://github.com’: ***********
Password for ‘https://******************’:
remote: Permission to ***********/UberAppSwiftUI.git denied to ***********
“`
※『***********』はユーザ名などの個人情報のため伏せてます

『私がやった間違っていたこと』
・アクセストークンリストの作成(設定をデフォルトで作成)
・初回git push時にユーザ名、パスワードを聞かれる際、パスワードに対してアクセストークン文字列を入力した。

『解決策』
トークン作成の際に『repo』のチェックをしないとダメなようです。
(デフォルトでチェック入れてくれればいいのに…)
問題ないように思えますが、トークン作成の設定が間違っていたようです。
![b085941f1f5977bda2f51d4e

元記事を表示

GitHubのメールアドレス設定

`git log`で自分のリポジトリを確認してみたら、メールアドレスが筒抜けになっていることに気づいたので設定を見直すことになりました。

GitHubを使い始めたときにも少し疑問に思ってたんですけど、どの参考書にもメールアドレスの設定方法が詳しく書いていなかったので気にせずにいたらやっぱり設定しなきゃいけなかったんですね。

ネットで探したらいくらでも記事が出てきますが、自分の記事が一番後から探しやすいので、ここに設定方法をまとめておきます。

# GitHub側の設定
1. 右上のプロフィールアイコンをクリック
2. プルダウンから[`settings`]をクリック
3. Accessカテゴリにある[`Emails`]をクリック
4. `Keep my email addresses private` を有効化
5. `Block command line pushes that expose my email` を有効化

以上です。

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

元記事を表示

【Git】Git for Windows のインストール(Unityプロジェクトの管理向け)

UnityプロジェクトをGitで管理する際、Windows利用者とMac利用者が混在していると文字コード、改行コードの違いが重なり不都合が発生する場合があります。

:::note warn
注意
GitHubを使わず、Unity Packageを利用して受け渡しをする場合
:::

UnityプロジェクトをGit管理する上で、不都合が発生しにくいと考えているGit for Windowsのインストール設定を下記にメモしておきます。

# インストーラーのダウンロード
[公式サイト](https://gitforwindows.org/, “Git for Windows”) からインストーラーをダウンロードしてください

# インストール
1. ライセンスの内容を確認の上、Nextをクリック
![Start.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2729904/107adc3a-fab0-c37f-4056-2cdde5260b32.png)

1. 特ににこだわりがなければ、そのままNex

元記事を表示

[Gerrit] Change-Idがなくてpushできない時の対処法

Gerritを使っていて、コミットメッセージの末尾(フッター)にChange-Idがなく
git push に失敗することがあったので、その対処法です。
動作確認環境は、Windows11、git 2.38.0、gerrit 3.6.2 です。

# push時のエラー内容
“`
$ git push origin HEAD:refs/for/master
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Writing objects: 100% (3/3), 281 bytes | 281.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: Processing changes: refs: 1, done
remote: ERROR: commit 91240a8: missing Change-Id in message footer
remote:
remote: Hint: to auto

元記事を表示

Chrome拡張開発などでGit関連ファイル等を除外してパッケージを作成する方法

`git archive`コマンドを使うと`.gitignore`に書かれたファイル/フォルダを除外してzipファイルなどを作成できますが、そのままだと`.gitignore`自体は含まれてしまうのでそれを除外する方法です。

まず`.gitattributes`ファイルを作ります。
“`git:.gitattributes
.gitattributes export-ignore
.gitignore export-ignore
“`
ファイル/フォルダ名の後に`export-ignore`を付けることで`git archive`時に除外されます。

次に`git archive`を実行するためのbatファイルを作成します。
“`bat:git_archive.bat
git archive HEAD -o archive.zip
“`
これを実行するとGit関連ファイルを完全に除外したパッケージファイル`archive.zip`ができます。
その後`.gitignore`に`archive.zip`を加えコミットします。
ファイル形式をzip以外に変えたいなど細かい変更を加

元記事を表示

初学者の失敗 ~ルートディレクトリをGit管理していた話と激重VS codeの誕生~「備忘録」

## 最初に
今回はGit学習を始めた時に、~/User直下で`git init`してしまい、VS codeが激重のまま開発を行っていました。

今後、私と同じような初学者が同じ過ちを繰り返さないようにと記載しておきます。

## 何をしていたか

下記のコマンドを実行し、Finderを開きます。

“`bash
open ~/
“`

下記の画像は、コマンドを実行した結果開いたFinderのスクショ(一部のみ)です。
![スクリーンショット 2022-10-08 15.54.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1212014/7bdfd049-0e88-366e-085f-ea2ac2d9ff27.png)
無知って恐ろしいですね。このルートディレクトリ直下でgit管理を行っていたのです。。

下記が例(※実行しないでください)

“`bash
cd
git init
“`

という風に、git管理を行っていました。

これが、激重VS codeの第一歩目…

## 何がダメな

元記事を表示

Gitで使用するエディターを変更する

## git commit 時のエディターを変更する

“`shell-session
$ git config –global core.editor <エディタ名>
“`

## git rebase -i 時のエディターを変更する

“`shell-session
$ git config –global sequence.editor <エディタ名>
“`

※指定しない場合は `core.editor` が使われます。
ので、使い分けしたいとかなければ設定不要です。

## お好みのエディタを設定する

– Emacs https://www.gnu.org/software/emacs/
– Nano https://www.nano-editor.org/
– Helix https://helix-editor.com/
– micro https://micro-editor.github.io/
– Visual Studio Code https://azure.microsoft.com/ja-jp/products/visual-studio-co

元記事を表示

【Git】マージ済みのローカルブランチを削除する方法

## マージ済みローカルブランチを削除

以下のコマンドを実行することでマージ済みのローカルブランチを削除できます。

“`
git branch –merged | grep -Ev ‘^\*|main|develop’ | xargs git branch -d
“`

* `git branch –merged`
マージ済みブランチの一覧を取得する。

* `grep -Ev ‘^\*|main|develop’`
一覧の内、先頭に`*`または`main`または`develop`を含まないものを取得する。
`egrep -v ‘^\*|main|develop’`でも可。

* `xargs git branch -d`
前のコマンドで取得したブランチを引数として`git branch -d`を実行してブランチを削除する。

## 不要なリモート追跡ブランチを削除

また以下のコマンドを実行することで不要になった[リモート追跡ブランチ](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%83%96%E3%83%A9%E3%83

元記事を表示

bash(WSL2)で作業中のgitブランチ名をプロンプトに表示させる

## ブランチ名をプロンプトに表示させる
以下のサイトを参考にした。
[Ubuntu(Linux)のプロンプトにGitのブランチ名を表示する方法](https://snowsystem.net/other/linux/ubuntu-git-branch/)

~/.bashrc の末尾に以下を追記
“`.bashrc
PS1=’\[\033[01;32m\]\u@\h\[\033[01;33m\] \w \[\033[01;31m\]$(__git_ps1 “(%s)”) \n\[\033[01;34m\]\$\[\033[00m\] ‘
“`

以下を叩く
“`
$ source ~/.bashrc
“`
before
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2882988/1975672d-3b74-d41d-9dee-d30bcab2da55.png)
after
![image.png](https://qiita-image-store.s3.ap-northea

元記事を表示

gitのsrc refspec main does not match anyについて

gitのsrc refspec main does not match anyについて、解決したので共有します。

–環境–
ターミナル: git bash
OS: windows10
git version 2.38.0.windows.10

家のPCでgitを利用するので、ラボの自分のPCでもgitにあげたい!と思い、ssh接続をしてプッシュ

しかしこんなエラーが、、、

error: src refspec main does not match any
error: failed to push some refs to ***

うーん…と思い、調べたところ、
・mainブランチに移動していない
・commitし忘れ

などが出てきました。git statusでみてみても、mainにも切り替わっているし、commitの手順は」抜けがないし…

そこで以下を試しました。

git config –global user.email “***”
git config –global user.name “***”

Enumerating objects:

元記事を表示

git-credential-manager-core 影響下で git-remote-codecommit を使うと「配列の範囲が無効です」エラーが出る

# 症状

WSL2 の Ubuntu 環境で陽気な開発作業をしていて、GitHub と AWS CodeCommit を両方使っています。認証情報をいちいち入力したくないので、GitHub では (Git for Windows 同梱の) git-credential-manager-core を、CodeCommit では [git-remote-codecommit](https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up-git-remote-codecommit.html) を使うことにします。

git-remote-codecommit は基本的に pip でインストールするだけで設定は要らない[^1]ので、 git-credential-manager-core だけ [Linux 用 Windows サブシステムで Git の使用を開始する – Microsoft Ignite](https://learn.microsoft.com/ja-jp/windows/wsl/tut

元記事を表示

GitHubのリモートリポジトリ作成からGitHubActionのworkflowの設定までの手順

# 概要

ReactアプリのローカルリポジトリをGitHubのリモートリポジトリに設定
GitHubActionのworkflowを作成してGitHubへの更新のプッシュ時にjestのテストを自動実行するように設定する

※前提としてGitHubのアカウントを登録済みである事、Gitコマンドがインストール済みである事とする。
[開発環境構築](https://qiita.com/kubota_ndatacom/items/c62109ad6e570085af88)
[テストコード作成](https://qiita.com/kubota_ndatacom/items/c6d821f8f0b310276005)

# 目次
[1. ローカルリポジトリ作成](#1-ローカルリポジトリ作成)
[2. リモートリポジトリ作成](#2-リモートリポジトリ作成)
[3. workflowファイルを作成する](#3-workflowファイルを作成する)
[4. 自動テストの結果確認](#4-自動テストの結果確認)
[5. テスト結果のメール通知](#5-テスト結果のメール通知)

# 1. ローカル

元記事を表示

OTHERカテゴリの最新記事