今さら聞けないGit 2020年10月21日

今さら聞けないGit 2020年10月21日
目次

自分の親ブランチが知りたい

自分用の備忘録です:point_up:
間違っている点等ありましたらご指摘ください!!

GUIツールを使っていないので、ふとカレントブランチの親ってなんだっけとなりました。
そこで素晴らしい記事を見つけたので、使ってみました。

## ☆使いかた
“`
$ git show-branch | grep ‘*’ | grep -v “$(git rev-parse –abbrev-ref HEAD)” | head -1 | awk -F'[]~^[]’ ‘{print $2}’
“`
これだけです!!

現在のブランチを確認して、実際に使ってみました。
もしブランチ名の命名を間違えてプッシュしてしまっても、親ブランチを確認することができます。
素敵ですね。

“`bash
$ git branch
d/ww1
feature/#0001
* feature/#0002
staging
develop
master
$ git show-branch | grep ‘*’ | grep -v “$(git rev-parse –abbrev-ref HE

元記事を表示

YAMLファイルでVM作成 (KVM)

# はじめに
YAMLファイルでVM構築できたら楽じゃね?ということで、やっていきます。

# 環境
– Centos 8のMinimal installされた状態
– VirtualBox上で動かしてます
– 途中からGUIで動かします

# アップデート、KVMのインストール
“`bash
# dnf update -y
# dnf install -y wget
# dnf module install -y virt “Server with GUI”
# dnf install -y virt-install virt-viewer git wget
“`
# libvirtdの起動
“`bash
# systemctl start libvirtd
# systemctl enable libvirtd
“`

# “`kvm-compose“`のダウンロードと設定
“`bash
# git clone https://github.com/naoki2001/kvm-compose
# mkdir /compose/{ images , isos }
#

元記事を表示

gitリポジトリの統合

# 準備

統合先リポジトリ:main-repo
統合されるリポジトリ:sub-repo

# 統合編
[【Git】2つのGitリポジトリを履歴を保持して統合したい](https://qiita.com/nozomi-kawai/items/5efe8e47e54ebccd0bf8)

先駆者の方がいたので同じ手順で行いました。

“`shell
# 統合先リポジトリに移動
cd main-repo/

# 念の為ローカルリポジトリを最新にする
git pull

# 作業用のブランチを作成(ブランチ名:integration_repo)
git checkout -b “integration_repo”

# 統合するリポジトリを格納するためのディレクトリを作成
mkdir sub-dir

# 空ディレクトリをgit管理できるように.gitkeep作成
touch sub-dir/.gitkeep

# 一旦コミット
git add -A
git commit -m “create sub-dir”

# 統合されるリポジトリを統合先リポジトリのリモートリポジトリに追加する
g

元記事を表示

【初学者/自分用】gitのbranch〜pushまで詳しく解説!!

#はじめに

プログラミング入門時や公式ドキュメント(Railsチュートリアルetc.)などを書くときに、
「git checkout -bとは?」「git add -A と git add . の違いって?」ってなりました。?(私だけ?)

まあ、始めから分かる人なんていません。まずは基礎からゆっくりわかればいいのです。

まずは、簡単な流れを書くと、、、(例:Railsチュートリアル)

“`ruby:consale
$ git checkout -b XXXX(タイトルのように、コーディングする内容をわかりやすく書く)
#コーディングする
$ rails test #コーディングした後はテストする癖をつける

$ git add -A
$ git commit -m “comment”(“comment”はどんなこと書いたか一言。) #誰が見ても分かるように
$ git checkout master
$ git merge XXXX(上のXXXXと同じことを書く)

$ rails test(確認。念のため。) #pushする前にテストする癖をつける
$ git push

元記事を表示

git format-patchなどで複数のコミットを別のリポジトリーに変換して移植する

今日やったことのメモです。

# 要件

`REAMDE.md`という名前のファイルをリポジトリーAに作っていくつかコミットしたが、事情が変わり別のリポジトリーBに同じ内容の変更を加えたい。しかし以下の懸念事項が:

– コミットメッセージやdiffの内容は極力維持したい
– ただし、リポジトリーBにはすでに`README.md`というファイルがあるので`CODE_OF_CONDUCT.md`というファイルにリネームした状態でコミットしたことにしたい

# 使ったコマンドのバージョン

“`bash
> git –version
git version 2.24.1.windows.2

> perl –version

This is perl 5, version 28, subversion 1 (v5.28.1) built for x86_64-msys-thread-multi
“`

# 1. `git format-patch`で各コミットをpatchファイルとして書き出す

参考: [`git show`を使用して複数のコミットにまたがってパッチを作成して適用

元記事を表示

CI/CDをkatacodaで体験(初心者向け) – Part9(Re-writing History)

# CI/CD入門
このぺーじでは、[katacoda](https://www.katacoda.com/)と呼ばれる「ブラウザから無料で勉強用のインスタンスを起動できるWebサービス」を利用してCI/CDを実践します
内容は上記リンクに沿うので、不明点があればそちらへどうぞ

## Gitのバージョン管理について – Scenario 9 – Re-writing History
ここでは、CI/CDとして欠かせないGitによるバージョン管理について学習します
このシナリオで学習することをさっと確認する場合は**概要**を確認
**理解に間違い等がございましたら、ぜひご指摘ください**

### 概要
>- “`git rebase –interactive (–root)“`でレポジトリの履歴を変更可能
– リポジトリの変更方法の流れ
1. “`git rebase –interactive (–root) (hash)“`
2. 対象のバージョンに対しての操作(コマンド等)を要求
3. 具

元記事を表示

sourcetreeをプロキシ環境下で実行する方法

## sourcetreeインストールできない
gitサーバーを作成し、sourcetreeでgit管理をしようと思っていて、プロキシ環境下windowsでインストールを試みたところ、インストールすら行えなかった。

そんな場合の対応

## 解消法
・アトラシアンお持ちでない場合は、アカウントを作成。
・最新のインストーラーをダウンロードします。
・インストーラーを実行します。手順を進めます。
・Atlassianログインポップアップが表示されたら、インストーラーを終了します。
・ディレクトリに移動します 。`%APPDATA%\..\Local\Atlassian\SourceTree`
・passwd.txtという名前の空のテキストファイルを作成します。
・accounts.jsonというJSONファイルを作成
・以下のテキストを.jsonファイルに貼り付けます。
・「YOUREMAILHERE」という単語を、アトラシアンアカウントに使用したメールに置き換えます。
・更新したjsonファイルを保存します。
・インストーラーを再実行します。
・魔法が起こる!

“`acco

元記事を表示

CI/CDをkatacodaで体験(初心者向け) – Part8(Being Picky With Git)

# CI/CD入門
このぺーじでは、[katacoda](https://www.katacoda.com/)と呼ばれる「ブラウザから無料で勉強用のインスタンスを起動できるWebサービス」を利用してCI/CDを実践します
内容は上記リンクに沿うので、不明点があればそちらへどうぞ

## Gitのバージョン管理について – Scenario 8 – Being Picky With Git
ここでは、CI/CDとして欠かせないGitによるバージョン管理について学習します
このシナリオで学習することをさっと確認する場合は**概要**を確認
**理解に間違い等がございましたら、ぜひご指摘ください**

### 概要
>- “`git cherry-pick “`で、特定のcommitを別のbranchのマージ
– hashは複数指定可能
– hashA..hashBのように連続して指定可能**(hashAはマージに含みたいバージョンの一つ手前)**
– マージの際にconflictが発生した場合は“`git

元記事を表示

マージ先?マージ元?リベース先?リベース元?

CUIとGUIを併用すると、よく操作を間違えるのでメモ。

## Mergeとは

>〈…を〉〔…に〕溶け込ませる,没入させる; 併合する 〔into〕.
> The companies were all merged into one giant conglomerate. 会社は全部併合されて巨大な複合企業になった.
―― [Weblio辞書](https://ejje.weblio.jp)

「AをBにマージしますか?」
⇒ Aが消えてBが残る。Aがマージする側(**マージ元**)、Bがマージされる側(**マージ先**)。

「現在のブランチに’xxx’をマージしても本当によろしいですか?」
⇒ ‘xxx’が消えて現在のブランチが残る。’xxx’が**マージ元**、現在のブランチが**マージ先**。

### Mergeを使って、Featureを取り入れたDevelopをつくる

* Developをメインブランチにして、Featureをマージする
* 現在のブランチが**マージ先**になる

“`sh
% git checkout develop
% git mer

元記事を表示

Git で特定のブランチを別リポジトリとして分割する

# TL;DR

– Gitで複数のプロジェクトが1つのリポジトリに混在し**ブランチ=プロジェクト**という扱いとなってしまった場合に、**履歴を残した状態で**ブランチを別のリポジトリに分割する方法を記載します。

# 前提

– リモートリポジトリへの変更の反映は行われていること。

# 環境

– Windows 10 Pro x64 1909 (OS ビルド 18363.1139)
– git version 2.28.0.windows.1
– [Azure DevOps Server 2019 Update1](https://docs.microsoft.com/en-us/azure/devops/server/release-notes/azuredevops2019u1?view=azure-devops)

# 構成

|名称|値|
|—|—|
|分割元リポジトリ|repoA|
|分割元ブランチ|repoA-branchB|
|分割元サブフォルダ|repoA-branchB-folderC|
|分割先リポジトリ|repoB|

## 変更前

“`

元記事を表示

CI/CDをkatacodaで体験(初心者向け) – Part7(Finding Bugs)

# CI/CD入門
このぺーじでは、[katacoda](https://www.katacoda.com/)と呼ばれる「ブラウザから無料で勉強用のインスタンスを起動できるWebサービス」を利用してCI/CDを実践します
内容は上記リンクに沿うので、不明点があればそちらへどうぞ

## Gitのバージョン管理について – Scenario 7 – Finding Bugs
ここでは、CI/CDとして欠かせないGitによるバージョン管理について学習します
このシナリオで学習することをさっと確認する場合は**概要**を確認
**理解に間違い等がございましたら、ぜひご指摘ください**

### 概要
>- “`git diff “`で特定のバージョンを比較
– “`git log

元記事を表示

yps並走備忘録 Task6 既存コードからアプリケーションを作成する(To Do List)

いよいよ本格的にWebアプリケーションを作成します。
今回の開発ではWebアプリの定番CRUD操作も入ってきますし、Laravelのミドルウェアも使います。

また開発でも機能単位での開発になるのでこのタスクからは本格的にgit-flowを使うことが推奨されています。
>参考:[git-flow図解](https://qiita.com/ohnaka0410/items/7c7fa20710dfd72b7d7a)

git-flowはWeb開発の現場では当たり前に使われているそうなので、この機会に慣れておきたいですね!
#注意事項
2020年/20/19日現在Laravel 8のリリースにより最新版のLaravelを導入した場合本記事やリンク先の参考記事の通りの実装だと動かなくなる可能性があるのでLaravelのプロジェクト作成時には以下のコマンドで7.25.0で作成することをおススメします。
`cd /var/www/html` //まずはアプリを公開するnginxの公開ディレクトリに移動
`composer create-project –prefer-dist laravel/

元記事を表示

peco を使ってブランチのチェックアウトを行う (リモートブランチ と ローカルブランチ) 改良版

# peco を使ってブランチのチェックアウトを行う (リモートブランチ と ローカルブランチ) 改良版

https://qiita.com/m-tmatma/items/8285a6cace98cfdb5db9 の改良版です。

### 改善版1

“`
git checkout $(git branch -a | grep -v “/HEAD” | peco | sed -r “s#^\\s+remotes/origin/##”)
“`

### 改善ポイント

https://qiita.com/tommy_aka_jps/items/6ce68f564cb3802ca9b0 の記事で以下で `proj/exampleWorks` のリモートブランチをチェックアウトできるとあったのでそれを反映して簡略化しました。

“`
git checkout proj/exampleWorks
“`

* `git branch -a` でリモートブランチとリモートブランチを両方列挙します。
* sed で `git branch -a` を使ったときにリモート名のところを削除し

元記事を表示

SONYのNNCチャレンジ(音声データを用いてAudioStockに役立つものを作れ)に応募する。

# 0. 私は誰?
 数学科博士課程の院生です。専門は解析であり計算機代数やまして機械学習の知識はほとんどありませんが研究のために計算機を使うことはあり、Pythonだけはなんとか使うことができます。第一回のNNCチャレンジ(画像分類)にも参加しましたが明確な目的意識がなく、知識不足もあってめぼしい成果物は得られませんでした(提出だけはしました)。
 
# 1. SONY NNCチャレンジとは
 SONYが運営する機械学習の統合開発環境「Neural Network Console (NNC)」を使った機械学習のコンテストです。
コンテストの運営はSONYと株式会社ledgeさんらしいです。概要は以下のURLにあります。
https://nnc-challenge.com/

# 2. 今回のテーマ
 今回の公募で扱うのは音声データということで、自分の中でやりたいことがはっきり決まりました。私はいわゆる”音ゲー”が趣味で、普段から聞いているのはほとんどゲーム楽曲です。その中でも特に大好きな作曲家であるt+pazolite(“とぱぞらいと”と読みます。)さんは非常に独特な音楽を作ります。

元記事を表示

CI/CDをkatacodaで体験(初心者向け) – Part6(Experiments Using Branches)

# CI/CD入門
このぺーじでは、[katacoda](https://www.katacoda.com/)と呼ばれる「ブラウザから無料で勉強用のインスタンスを起動できるWebサービス」を利用してCI/CDを実践します
内容は上記リンクに沿うので、不明点があればそちらへどうぞ

## Gitのバージョン管理について – Scenario6 – Experiments Using Branches
ここでは、CI/CDとして欠かせないGitによるバージョン管理について学習します
このシナリオで学習することをさっと確認する場合は**概要**を確認
**理解に間違い等がございましたら、ぜひご指摘ください**

### 概要
>- branchの作成は、“`git branch “`や、“`git checkout -b “`
– branchの一覧表示は、“`git branch“`。オプションとして“`-va“`は頻繁に利用
– branc

元記事を表示

ssh keyの登録方法

https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

“`
tsuboi@tsuboi hotel-project-spring % ssh-keygen -t rsa -b 4096 -C “igarage@gmail.com”
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/tsuboi/.ssh/id_rsa): <このままEnter>
Enter passphrase (empty for no passphrase): <このままEnter>
Enter same passphrase again: <このままEnter>
Your identification has been saved in /Users/tsuboi/.ssh/sa

元記事を表示

CI/CDをkatacodaで体験(初心者向け) – Part5(Fixing Merge Conflicts)

# CI/CD入門
このぺーじでは、[katacoda](https://www.katacoda.com/)と呼ばれる「ブラウザから無料で勉強用のインスタンスを起動できるWebサービス」を利用してCI/CDを実践します
内容は上記リンクに沿うので、不明点があればそちらへどうぞ

## Gitのバージョン管理について – Scenario5 – Fixing Merge Conflicts
ここでは、CI/CDとして欠かせないGitによるバージョン管理について学習します
このシナリオで学習することをさっと確認する場合は**概要**を確認
**理解に間違い等がございましたら、ぜひご指摘ください**

### 概要
>- branchの分岐 × 分岐元と分岐先の同じファイル、同じ行に対して異なる変更 -> conflict発生
– “`git checkout –ours/theirs “`で分岐先、分岐元どちらを優先するか決定。その後優先した変更をcommitし劣後の変更を加える
– branch統合の方法は“`git

元記事を表示

ブランチ切り替え時に移動先ブランチのstash一覧を表示させる方法

# stashしたことを忘れてしまう問題

`git stash`は非常に便利ですが、他のブランチで作業をしているうちにstashしたことを忘れ、戻ってきた際に再び同じ作業を始めてしまうようなことがたまにあります。

今回はその対策として、
「ブランチを移動するたびに移動先ブランチのstash一覧を表示するGitフック」
を作成したので、その実装方法について解説します。

### 完成イメージ 
以下のように、移動先ブランチ上でstashしたもののみを表示するイメージです(他のブランチのものは表示しない)。
![スクリーンショット 2020-10-18 0.39.04.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/123809/4cbb03a1-5dcd-b88b-0c69-fb493b6f0e42.jpeg)
これなら明らかに通常と違うため stash の存在を思い出せるはずです。

また、元々存在する機能(git hooks)しか使わないため、変なプラグインを入れたりする必要もありません。

#

元記事を表示

git v2.28でデフォルトブランチをmainに変更する

ご存知の方も多いと思いますが、2020年10月1日よりGitHubではプロジェクト作成時点でのデフォルトのブランチ名が `master` から `main` に変更されました。
また、7月27日にリリースされた git バージョン 2.28 からはデフォルトブランチの変更オプションが実装されているので、これにより `main` ブランチに対応できるようになっています。
本記事ではこちらの設定手順についてご説明します。

## TL;DR
+ git 2.28 (GitHubの変更時点での最新版) では**デフォルトブランチはmasterのままである**
+ デフォルトブランチを変えるには、まず**gitを 2.28 に更新**する
+ その後 `git config –global init.defaultBranch main` をCLIで実行するか `.gitconfig` を変更すれば対応完了

## 変更の背景
Git関連の複数のコミュニティではGitのデフォルトブランチ名 `master` について変更すべきではという議論があります。詳しくはここで語りませんが、もとも

元記事を表示

【zsh】絶対やるべき!ターミナルでgitのブランチ名を表示&補完【git-prompt / git-completion】

# :star2: この記事でできること
– ターミナルのプロンプトにgitのブランチ名を常に表示させる(git-prompt)
– gitコマンドをTab補完できるようにする(git-completion)

![スクリーンショット 2020-10-17 22.36.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/178077/2df951f9-5ef9-2eac-0267-9f0c20b16d4e.png)

# :star: はじめに
– もともとbashを使っていた時は次の記事を参考に同様の設定をしていました
– [「Git補完をしらない」「git statusを1日100回は使う」そんなあなたに朗報【git-completionとgit-prompt】](https://qiita.com/varmil/items/9b0aeafa85975474e9b6)
– しかし、macOSがCatalinaにアップデートされてからはzshがターミナルのデフォルトとなり、zshへと移行が進んで

元記事を表示

OTHERカテゴリの最新記事