今さら聞けないGit 2021年02月10日

今さら聞けないGit 2021年02月10日

git早見表

# この記事を書こうと思った背景
– gitで何ができるかは把握してるが、期間があいてしまうと具体的にどのコマンドを打てばいいか忘れてしまい、都度ぐぐっていた。その無駄な時間をなくしたい。
– アウトプットすることによって、自分の頭を整理したい。
– Done is better than perfectの精神で書いてます。後から自分も見返す前提なので、必要だと思ったことは追記していきます。もし誤字脱字があった場合や、こういうことも書いた方がいいよ、ということがあればご指摘ください。

## 基本的な流れ
### リポジトリの初期化
– `git init`
– `git clone `

### 変更内容のリポジトリへの記録
ローカルの作業内容を、リポジトリへ記録します。
– `add .` or `add <指定のファイル>`
– `commit -m “commit message”`
– `push -u origin master `

pull (fetch + merge), checkout -b (branch \

元記事を表示

ソースファイルの世代管理が subversion から git へ変更したのでメモ

#お品書き
[CVSup](https://docs.freebsd.org/doc/3.0-RELEASE/usr/share/doc/ja/handbook/cvsup.html “CVSup”) を馴れよた頃に [subversion](https://docs.freebsd.org/doc/10.2-RELEASE/usr/local/share/doc/freebsd/ja/books/handbook/svn.html “subversion”) に化けよって、subversion に慣れよった頃に [Git](https://wiki.freebsd.org/Git “Git”) に化けた?

注:git ≒ github


#基礎的のん

“`text:git(1)のインスコ
# cd /usr/ports/devel/git && make install
“`


***それか***

“`text:git(1)のインスコ
# pkg install devel/git
“`
しておく。


git のインスコ完了しよったら
作業ディレ

元記事を表示

[vscode] git initしたのに「現在開いているフォルダーにはgitリポジトリがありません」とソースコントロールで表示されたら

# 発生事象
新規開発しようとして`git init`実行後に対象ディレクトリをvscodeで開いたところ、ソース管理に **現在開いているフォルダーには Git リポジトリがありません。Git を利用したソース管理機能を有効にするリポジトリを初期化できます。** という文言が表示されていた。
`git init`は実行ずみなので、「リポジトリを初期化する」をクリックしても、すでにinitされているというエラーが発生。

ぶっちゃけGUIでgit操作はしないけど、vscodeの左下に現在のブランチ名が表示されないのが地味に辛いと感じたので対応しました。

![スクリーンショット 2021-02-10 0.47.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/310331/88901c1e-72c6-8d41-6e15-01c1a36b067d.png)

# 解決方法
※以下の手順は直接settings.jsonを開いて設定した方が楽です。

1. `which git`を実行して結果をコピーしてお

元記事を表示

Semantic Versioningでよくある間違いたち

# はじめに
この記事は私が開発していて見かける『Semantic Versioning』の間違いについてまとめたものです。
対象は…

– バージョン管理を任された方
– Semantic Versioningを始めようと思っている方 or 始めたばかりの方
– Gitのタグ付けに困っている方

などです。
『Semantic Versioning』は理解できています:bangbang: という方には物足りない内容になってしまうかなと思います。
よく分からないけど、興味はあるという方は、ぜひ『[Semantic Versioning 2.0.0](https://semver.org/lang/ja/)』に目を通してみてください。

# よくある間違いたち
ここに挙げるものたちは、Semantic Versioningを行う上でよく見かける間違いたちです。
Semantic Versioningを導入する場合には、同じ間違いを犯さないように気を付けましょう

## 1. すべてメジャーアップデートで対応してしまう。
恐らくこれが一番見かけることが多いかなと思います。
何となく

元記事を表示

gitメモ

# [直前のコミットを取り消す](https://qiita.com/shuntaro_tamura/items/06281261d893acf049ed)

“`
git reset –soft HEAD^
“`

–softオプション:ワークディレクトリの内容はそのままでコミットだけを取り消したい場合に使用。
–hardオプション:コミット取り消した上でワークディレクトリの内容も書き換えたい場合に使用。

うかつにhardをうつと作業がなくなってしまう。

HEAD^:直前のコミットを意味する。

#

元記事を表示

【駆け出しエンジニアメモGit解説①】そもそもGitHubとは?Gitとは少し違う?どんなものなのかを解説。

#GitHubとは
**GitHubとは、Gitを利用した、開発者を支援するWebサービス**の事です。
Gitを使ったバージョン管理や、Gitに関連する様々なサービスを提供しているものです。

GitHubと聞いて、バージョン管理するやつね。と言っていましたが、少し違うようです、、、
GitとGitHubは似ていますが、違うサービスなので混同しないよう注意しましょう。

#Gitとは?
対して、**Gitとは一言で言うとバージョン管理ツール**です。
バージョン管理ツールというのは、アプリケーションなどをアップデートする際に使用するものです。

アップデートする際に、本番環境をそのまま変更していると、使用しているユーザーのアプリケーションにエラーが起きてしまったり、正常に動作しないことが多々存在します。結果的にユーザーはこのアプリめっちゃエラーが出るということで離脱(使うのをやめる)したり、UX(ユーザー体験)を低下させてしまうことになり、ユーザーが逃げてしまうことになります。

そこで、**途中経過を別の環境で実装し、実際にシステムが完成したら本番環境に移すということをやれるように

元記事を表示

会社のプロキシ:Zscaler環境下でAWS CLIやGitが繋がらない場合

# まとめ
証明書マネージャーから、Zscaler Root CAをBase64エンコード版でエクスポートし、ローカルマシン上に保存する。

### AWS CLI
.aws/configに
`ca_bundle = C:\FullPath\ZscalerRootCA.cer`
を設定する
### Git
.gitconfigに

“`
[http]
sslCAInfo = “C:\\FullPath\\ZscalerRootCA.cer”
“`

を設定する

#補足
## 環境
Windows 10
会社支給PC
Zscaler導入済み

## 遭遇するエラー内容
### AWS CLIの場合
`[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1091)`

### Gitの場合
`SSL certificate problem: unable to get local issuer certificate`

元記事を表示

Gitサブモジュールでホスト名が解消できなかった

# はじめに

GitHubにて、サブモジュールを含むリポジトリをクローンしようとしたところ、
サブモジュールのupdateでこけた。
通常のリポジトリはクローンできたのになぜ?

“`
Cloning into ‘XXX’…
ssh: Could not resolve hostname github: Temporary failure in name resolution
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
fatal: clone of ‘github:XXX/xxx.git’ into submodule path ‘xxx’ failed
“`

# 状況

– GitHubにパブリックキーは登録済み
– 通常のリポジトリはクローンできた
– `git submodule update`コマンドを打つと、上記エラーが発生

# 解消

「githubとい

元記事を表示

Git / Githubの各用語についてまとめ

##概要

未経験からWebエンジニアに転職して早くもぶつかったのがチーム開発でのGit/GitHubの使い方。
改めて、あやふやになっていた各用語をまとめてみる。

##基本

**git init**
initつまり初期化。
このコマンドを実行したディレクトリをgitによる管理対象とする
正確にはリポジトリを作成する

**git add**
対象のファイルをステージングエリアへ格納する
この段階ではまだファイルは管理されていない。

**git commit**
対象のファイルをローカル(自分のPC)のリポジトリに
コミットする。これにより1つの作業単位として保存され、
後に〇〇の作業前まで戻したいといった時などに活用することができる。

**git push**
ネットワーク上のリポジトリ(リモートリポジトリへ)
ローカルリポジトリの内容を反映させる。
これを行うことで、初めて自分の作業内容を他人と共有することができる。

**git pull**
リモートリポジトリからローカルリポジトリへ
内容を反映させるgit pushの逆バージョン
これを行うことで他人の編集したファイル

元記事を表示

GitHub 設定手順 (macOS Big Sur)

##目的

Electronで作ったアプリをGitHubを使ってアップロードする手順のメモ

##環境

macOS Big Sur
git 2.24.3

##1. Git初期設定

“`:terminal
$ git config –global user.name “【ユーザー名】”
$ git config –global user.email 【メールアドレス】
“`
“`:git情報の確認
$ git config –list
“`

##2. 鍵の作成・設定

“`:terminal
$ ssh-keygen -t rsa -b 4096 -C “【メールアドレス】”
$ Enter file in which to save the key (/Users/hoge/.ssh/id_rsa):/Users/YUI/.ssh/id_rsa_github
$ Enter passphrase (empty for no passphrase): 【パスフレーズを入力】
$ chmod 600 ~/.ssh/id_rsa_github
“`

“`:ssh

元記事を表示

Git管理下に置くが変更は無視する、はできない

# 概要
設定ファイルに含まれるパスワードなどの機密情報を伏せて Git の管理下に置き、各自がローカルで書き入れた部分の変更を無視させたいことがあるが、**Git にはそのための機能はない**。

# どうすべきか

例えば以下のような方法で代替する。

機密情報を含むファイルを `config.ini` とすると、

1. `.gitignore` に `config.ini` を追加する
– 機密情報を伏せて `config.ini.tmpl` のような別名で保存する
– `config.ini` がすでにコミットされている場合、`git rm –cached config.ini` で削除する
– 変更をコミットする

README などに、リポジトリをクローンしたら `config.ini.tmpl` を `config.ini` にコピーしたうえで機密情報を書き入れるよう指示しておくと良い。

# うまくいかない方法

検索すると以下の方法がよく挙げられているが、いずれも**有効なのはローカルにおいてのみ**である。

## .gitignore に追加して git rm

元記事を表示

Githubで特定のフォルダのみcloneする方法

### 内容
本記事ではGithub(実際はgitリポジトリならどこでも)で特定のフォルダのみをcloneする
厳密にはcloneではないが、、、

#### 0. clone先のディレクトリ作成
“`bash
# ディレクトリ作成
$ mkdir hoge
$ cd hoge
“`

#### 1. git初期化
“`bash
# git初期化
$ git init
“`

#### 2. origin追加
“`bash
# origin追加
$ git remote add origin piyo.git
“`

#### 3. sparce-checkout有効化
“`bash
# sparce-checkout有効化
$ git config core.sparsecheckout true
“`

#### 4. sparse-checkout対象の設定
“`bash
# sparse-checkout対象の設定
# sub_dir 部分はリポジトリのルートからの相対パス
# repository_root/sub_dir/subsub_dir/…のリポ

元記事を表示

ObsidianとGitHub、ハマりかけて夜が更ける

### 背景

ハマった(そして回復した)ので、記録しておく。

たしかにこの記事は素晴らしいんだけど → How I Put My Mind Under Version Control
https://medium.com/analytics-vidhya/how-i-put-my-mind-under-version-control-24caea37b8a5

ちょっと違っていて、行きつ戻りつしたので、失敗を含めて記録。

`.gitignore`の作成は省略。

“`bash
$ git init
$ git add .
$ git commit -m “init”
“`
まではよかった。

“`bash
$ git remote add origin https://github.com/USER/REPO.git
$ git push -u origin master
“`

がよくなかった。わたしの理解したところでは、2行ともよくない。

“`bash
$ git remote -v /* これは現状を確認するコマンド */
$ git remote rm ori

元記事を表示

git branchでbranch名が表示されない!!!(ローカルリポジトリ )

はいどうも、git苦手なプログラミング初心者です。

Railsでアプリケーションを作っていたのですが、
「コマンドラインで git branch と打ってもローカルのbranchが表示されないよー」という状態になりました。

“`
mbc:ディレクトリ名 ユーザー名$ git branch
mbc:ディレクトリ名 ユーザー名$
“`
さっきまでbranchのmasterを表示できていたのに!
なんでだろう?

###環境

`ruby 2.7.2`
`Rails 6.0.3.4`
`git version 2.29.2`

###発端

“`
mbc:ディレクトリ名 ユーザー名$ git branch
* master
mbc:ディレクトリ名 ユーザー名$
“`

最初はこんな感じでmasterが表示されていました。その後、少しいじっていたら

“`
mbc:ディレクトリ名 ユーザー名$ git branch
mbc:ディレクトリ名 ユーザー名$
“`
あれ?masterが出ない…

###原因

原因は**初回のcommitの取り消し**でした。
[こ

元記事を表示

【Git】エラーの対応方法。warning: adding embedded git repository:

以下エラーの修正方法

“`:エラー
$ git add .

warning: adding embedded git repository: レポジトリ名
hint: You’ve added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add WOW
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm –cache

元記事を表示

仕組みがわかったらGitが全然怖くなくなったよ、という話

##はじめに
Gitは仕組みが分かると苦手意識がなくなります。少なくとも私はそうでした。そもそも、私の場合なぜ苦手だったかというと「操作を間違えたらファイルを壊すんじゃない?」と思っていたからです。実は、Gitはファイルを圧縮してレポジトリに格納しているだけです。「ファイルを壊しようがない」事が分かり苦手意識がなくなりました。現在Gitを食わず嫌いしている人もこの記事でGitを使った頂けたら幸いです。

#Gitの仕組み
Gitは管理対象のファイルを1つ1つ圧縮し、圧縮ファイルをレポジトリに格納します。2回目以降のコミットでは、以前のコミットから変更があったファイルだけをレポジトリに追加します。ファイルに変更があったかどうかはファイルのハッシュ値で判定しています。
(「ハッシュ値なにそれおいしいの?」という人はとりあえずファイルの電話番号だと思ってください。詳しくはGoogle先生に聞いてください。)

以上

と、これだけでは納得し難いと思いますので本記事ではGitの仕組みがわかる実験してみます。手を動かすのと動かさないのとでは納得感が全然違いますので、ぜひ実際に手を動かして実験して

元記事を表示

gitの重要性に身を持って確認できた

# 背景
railsアプリを個人開発していて、WEBPACK絡みでかなりハマり、gitの重要性が身に染みました。
gitがなかったらと思うとゾッとします…

# 使用したgitコマンド
##①revert

“`terminal
$ git revert <コミットID>
“`
revertはコミットを打ち消すコマンドです。
特徴としては、コミットを消去するわけではなく、指定したコミットと逆のことをするコミットをこの一つのコマンドで作成します。
例えば、一旦追加した機能一度オフにして、後からもう一度追加したい場合などに便利です。

##②log

“`
$ git log –oneline
“`
revertするには、コミットIDが必要になります。カレントブランチのコミット一覧をこのコマンドで確認できます。
(Qボタンでエスケープできます。)

##③reset

“`
$ git reset –hard <コミットID>
“`
指定したコミットIDを消去できます。問題のあったコミットを削除する際に便利です。

##④checkout

“`
$ git che

元記事を表示

バージョン管理(Git、TFVC)と管理サーバー(GitHub等)を選定する

# 概要

バージョン管理(Git、TFVC等)と管理サーバー(GitHub、Azure DevOps等)の選定について説明します。また、ブランチ戦略についても紹介しています。

気になる点などコメントお願いします。

– (1) バージョン管理の選択
Git、TFVCなど
– (2) 管理サーバーの選択
GitHub、Azure DevOps Servies、Azure DevOps Serverなど
※Azure DevOps Serverは、Azure DevOps Servicesのオンプレミス版。旧名 Team Foundation Server(TFS)
– (A) 参考
セキュリティに関する情報、バージョン管理システム間の単語の違い、ブランチ戦略など

# (1) バージョン管理の選択

バージョン管理を選択します。

バージョン管理には中央集権型(TFVC、Subversion)と分散型(Git)2つの方式があります。

## (1-1) 用語説明

先に用語について簡単に説明します。

|用語|説明|
|—|—|
|リポジトリ|フォルダ・ファイルの編集

元記事を表示

Githubのリポジトリにプルリクテンプレートの入れよう

.gitのあるディレクトリに、`.github/PULL_REQUEST_TEMPLATE.md`ファイルを作成することで、github でプルリクテンプレートを設定することができます。

“`.github/PULL_REQUEST_TEMPLATE.md
# 概要

# 対応

# 動作確認

# スクショ
### 変更前

### 変更後

# チェックシート
– [] テストが通っていること
– [] 動作確認済みであること

“`

こんな感じで、テンプレートが表示されます。
とても便利ですね。
![スクリーンショット 2021-02-07 20.44.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/264684/abdc7a1e-7235-3db5-79b4-656d2df85409.png)

元記事を表示

Git stashを使って作業を一時避難させる!

# スタッシュして作業を一時避難させる

作業が途中でコミットしたくないけど、急遽作業しないといけなくなった (急なバグ修正など…)
そういうときに作業を一次避難させておくことができます。
それがstashと呼ばれる作業です。
*※stash とは隠すという意味*

それではstashの基本的な使い方を紹介していきます!

## 変更をstashする
“`
// ワークツリーとステージを避難させる
git stash
“`
変更をstash に一時格納。

ワークツリーとステージの変更をなかったことにすることで別作業を可能にする

## stashした作業を確認する

“`
git stash list
“`

全ての避難させた作業が表示される
stash@{} がスタッシュ名となっている

## stashした作業を復元する

“`
// 最新の作業を復元する
git stash apply

// ステージの状況も復元する
git stash apply –index

// 特定の作業を復元する
git stash apply スタッシュ名

git

元記事を表示

OTHERカテゴリの最新記事