今さら聞けないGit 2020年09月23日

今さら聞けないGit 2020年09月23日

cronでGithubにPushするプロセスを自動化する

#やったこと

Pythonとcrontabを使って、データファイル(pklフォーマット)を一週間に一回(土曜日の午後7時)に更新されるようにしました。

毎週更新されるデータをGithubに自動的にPushしたく、同じくcrontabを使ってやってみた。

#環境

– Linux Mint 19
– Python 3.6.9
– git 2.17.1

#GithubでSSH接続する
ssh接続する方法はたくさんネットに上がっているので割愛します。
(参考: [GitHubにssh接続できるようにする](https://qiita.com/0ta2/items/25c27d447378b13a1ac3))

#GITコマンドでプッシュしてみる
ssh接続が出来たら、gitコマンドでPushしてみる。

アップしたいデータファイルはplayers_data.pklというpythonのpickleというモジュールを使用したフォーマットです。

“`bash
git add players_data.pkl
git commit -m “最初のコミット”
git remote add

元記事を表示

リモートのブランチがmasterしかないときは.git/configを確認する

.git/config

の fetch を確認する

fetch = +refs/heads/master:refs/remotes/origin/master

とかだと、masterしか見えない。

fetch = +refs/heads/*:refs/remotes/origin/*

にすると全部見える。

元記事を表示

リポジトリが大きすぎて、cloneできないときは小分けにする

git clone –depth 1 hogehoge

cd hogehoge

git fetch –depth 50
git fetch –depth 100
git fetch –depth 500
・・・
git fetch –unshallow

元記事を表示

warning: http.sslcapath has multiple values エラー

# 背景
gitの設定値の sslCAPathの設定中に `warning: http.sslcapath has multiple values` が発生して設定がうまくできない場合

# 原因

エラーメッセージ通り複数のsslcapathが設定されている場合にエラーとなる。

複数あるか確認

“`
git config -l | grep ssl
http.sslcapath=/Library/xxx/somecacert1.pem
http.sslcapath=/Library/xxx/somecacert2.pem
“`

# 解決策
unset-allする。

“`
# いい例
sudo git config –unset-all –system http.sslCAPath
“`

普通にunsetしようとしてもうまくできないので注意

“`
# ダメな例
sudo git config –unset –system http.sslCAPath
“`

# 参考
[Window Git $ git config –global http.prox

元記事を表示

Ubuntu 18.04にKallitheaを構築する

# 概要
KallitheaはGit と Mercurial に対応したオープンソース(GPLv3)のリポジトリホスティングソフトウェアです.
今回はそのKallitheaをubuntu上に構築していきます.

[Kallitheaとは](http://www.kallithea-users.jp/about/index.html)

# 環境
| Software | Version |
|—–|—–|
| ESXi | 6.7 |
| Ubuntu | 18.04 |

# パッケージのアップデート
“`
sudo apt update
“`

# インストール
## 1. パッケージのインストール
“`
sudo apt install build-essential git libffi-dev python3-dev npm mercurial python3-pip
“`
## 2. ディレクトリを作成
– 今回は/opt配下に構築していきます

“`
# kallitheaとリポジトリ配置用のディレクトリ(repos)を作成
sudo mkdir –

元記事を表示

Gitコマンド

#リポジトリを作成

– [GitHubでリポジトリ作成](https://github.com/new)

作成後に表示されるURLをメモしておく

– 作業フォルダを作成し、移動する

(後のローカルリポジトリなので、1で作成したリポジトリ名に合わせると良い)

“`
$ mkdir work

$ cd work
“`

– ローカルリポジトリとして初期化する

“`
$ git init
“`

– ファイルをインデックスと呼ばれる領域に登録する(ステージングという)

“`
$ git add ファイル名
“`

– ステージングしたファイルをコミットする

mオプションでコミットにメッセージを付与

“`
$ git commit -m “first commit”
“`

– リモートリポジトリに登録

“`
$ git remote add origin メモしたURL

$ git push origin master
“`

#リモートブランチを取り込む

– リモートブランチの変更を取り込む

“`
$ git pull origin ブラ

元記事を表示

【プログラミング学習~3ヶ月以内の方必見】Gitを使った基本的な開発の流れを丁寧に説明してみた

# はじめに
執筆日:2020/9
この記事を見れば、「Gitを使った基本的な開発の流れを理解できる」を目的に進めていこうと思います。

私が学習を始めた当初も、Gitに関する記事はたくさんありました。ですが、流れを把握するイメージがつき辛く理解するのに苦労しました。その経験から、この記事では応用的なコマンドなどの説明は扱わず、あくまで「Git活用時の基本となる大まかな流れ」をお伝えしていこうと思います。
図を用いてイメージしやすい様に作った分、少し分量が多くなりました。小まめに見返す様にしてみてください!

#対象となる方
– プログラミング学習~3ヶ月以内の初学者の方
– これから初の共同開発をしたいと思っているが、Gitはまだよくわからないと不安な方

上記の方々のお力になれれば幸いです。

#この記事の使い方
Gitは大まかな流れを理解できれば、決して難しくはないです。ただ、目に見えて「どこどこの段階にいる」という事が可視化されにくいので、理解できるまでは**何度もこの記事を繰り

元記事を表示

そろそろ本格的にプログラミング用語を置き換える時期なのかも

先日GitHubから以下の発表がありました。
[GitHub to replace ‘master’ with ‘main’ starting next month /
GitHub来月10月からブランチの「master」を「main」に名称を置き換える](https://www.zdnet.com/article/github-to-replace-master-with-main-starting-next-month/)

![sample.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/253969/ef540f1e-30ce-d0ba-b4c3-1799269be3e6.png)

GitHubでは、来月から`master`ブランチという名称は使わず、`main`ブランチという名称に変更するという発表でした。来月ってもう普通にすぐだけど、、、。

実は元々数ヶ月前に発表はあったんだけど、そこまで日本では話題にならなかった。
[GitHub abandons ‘master’ term to a

元記事を表示

commit failed exit code 1 receivedの解決法

ミナミ([@minami_nakasato](https://twitter.com/MinamiNakasato))です。

今日お目にかかったエラーはこちら。

スクリーンショット 2019-11-05 23.04.47.png

## エラーが出るまで
* ターミナルでコマンド「rails new 任意」を実行し、新規アプリ作成。
* ターミナルでコマンド「git init」を実行し、ローカルリポジトリを作成。
* ヨソのリポジトリを「git clone」し、「View」フォルダの中に配置。
* アプリ[GitH

元記事を表示

Git-flow GitHub-flow GitLab-flowという開発フローについてまとめる

gitを使用した開発フローである
Git-flow 
GitHub-flow
GitLab-flowについてまとめる

参考 
Git-flowって何?
https://qiita.com/KosukeSone/items/514dd24828b485c69a05

git-flowで用いるブランチまとめ
https://qiita.com/hatt0519/items/23ef0866f4abacce7296

【図解】git-flow、GitHub Flowを開発現場で使い始めるためにこれだけは覚えておこう
https://www.atmarkit.co.jp/ait/articles/1708/01/news015.html

#Git-flowとは
Vincent Driessen氏がブログに書いた”A successful Git branching model” というブランチモデルの導入を簡単にする git プラグインである。他の”GitHub-flow”や”GitLab-flow”等のワークフローと比べると、大規模で複雑な構成になっています。Git-flowはGit

元記事を表示

GitHub CLI 1.0 主要コマンドのサブコマンド、オプションまとめ

# GitHub CLI 1.0の主要コマンドのサブコマンド、オプションまとめ

ついに`GitHub CLI 1.0`が登場しましたね。?

ソースコード、ドキュメントはこちらから
?https://github.com/cli/cli
?https://cli.github.com/

GitHub CLIは、go言語製のGitHub公式のCLIツールです。(既存のGitHubのCLIツールとして有名なのは[hub](https://github.com/github/hub)らしいですね)

従来はcommitなどの作業はターミナルで行うが、PRの作成などはブラウザを開いて行う必要がありました。
ターミナル→ブラウザ→ターミナル…みたいに頻繁にアプリを切り替える必要があり、個人的にはこのタイミングでコンテキストスイッチによって集中力が途切れがちでした。GitHubを開くためにブラウザ開いたのに、YouTubeのタブが開いていてそのまま…なんてことはよくありますよね…?GitHub CLIを利用すればこの切り替えの手間がなくなり、快適なGitHubライフを送ること

元記事を表示

Gitのmasterブランチ意外、全てのブランチを一括削除する

タイトルの通りに、`master` ブランチ意外全て削除するのは以下のコマンドです。
`’master’`の代わりに他のブランチ名を変えることもできます。

“`:ターミナル
git branch | grep -v ‘master’ | xargs git branch -D
“`

長くて覚えづらいので、aliasを作成しました。

“`bash:~/.zshrc
alias gbr=”git branch | grep -v ‘master’ | xargs git branch -D”
“`

元記事を表示

GitのFast Forwardの動作を確認してみる

# はじめに
[前回の記事](https://qiita.com/neruneruo/items/0daf2b30c59582007c4e)からの続き。
[理想を追い求めたCI/CDパイプライン](https://jawsdays2020.jaws-ug.jp/session/%E9%87%91%E8%9E%8D%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E5%90%91%E3%81%91%E3%81%AB%E7%90%86%E6%83%B3%E3%81%AEci-cd%E3%82%92%E8%BF%BD%E3%81%84%E6%B1%82%E3%82%81%E3%81%9F%E3%81%8A%E8%A9%B1/)では環境とブランチが1対1に紐付き、その間では1つのコンテナベースを渡り歩かせるのが原則となっているため、Commitとコンテナベースを一意に紐付ける識別子が必要になる。一方で、GitLabではデフォルトのマージはmergeCommitとなり、CommitIDが都度作られてしまうことから、コンテナべベースを一意に識別するためには、外部から識別子を

元記事を表示

Github初心者②Gitの設定を簡単にやってみよう

##Gitの設定を簡単にやってみよう

![スクリーンショット 2020-09-20 13.58.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/676313/e79a6b6b-85dc-b06e-daec-f45a7cf67f1f.png)

Github初心者①Gitに続き続編でGitの設定をしていきたいと思います。本当は①をGitの設定にしておくべきだったかもしれないのですが、書き直すのは面倒なのでとりあえず自分にとってのメモ程度で書かせていただきたいと思います。

まずはこちらからGitのダウンロードを行なってください。

[Git入門](https://git-scm.com/book/ja/v2/%E4%BD%BF%E3%81%84%E5%A7%8B%E3%82%81%E3%82%8B-Git%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)
[参考記事_1](https://backlog.com/ja/

元記事を表示

GitBashの”stdout is not a tty”で怒られないように

#はじめに
1年ぐらい悩んでいましたが、たった今、対策が見つかりましたのでご報告します。

#現象
GitBashでリダイレクトやパイプを使った時に、こんなメッセージが出てうまくいきません。

“`
$ python bin/regression.py > out.txt
stdout is not a tty
“`

毎回これが出る度に回避策を考える日々。

### 回避策(例)

– less が使えず、流れるメッセージを見つめ、見たいところでCtrl-Cで強制終了。その後スクロールバーをつかって見たいところを調整。
– リダイレクトできないため、プログラムでファイルに出力するコードを書く。もしくはDOSコマンドプロンプトを起動し、実行する。

[Git Bashのttyで怒られないように](https://qiita.com/amanoese/items/7b237e8703c3b4c7f001) も試したんですがうまくいかないんですよ。

#対応

(A) 本腰入れて調べてみました。するとこんな話を見つけました(参考文献参照)

**コマンドに拡張子をつける**

(

元記事を表示

Git メモ【随時更新】

Git に関するメモです。

一度解決したらそのまましばらく **`Git に関する Tips`** を忘れがちなので、いったんここにメモしておきます。

## 直近のコミットの変更
コミットをもう一度やりなおす場合は、–amend オプションをつけてもう一度コミットします。

“`shell:
$ git commit –amend
“`

いったんコミットした後、何かのファイルをステージするのを忘れていたのに気づいた場合はこのようにします。

“`shell:
$ git commit -m ‘initial commit’
$ git add forgotten_file
$ git commit –amend
“`

– 参考
– [Git – 作業のやりなおし](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E5%9F%BA%E6%9C%AC-%E4%BD%9C%E6%A5%AD%E3%81%AE%E3%82%84%E3%82%8A%E7%9B%B4%E3%81%97)
– [Git – 歴史の書き換え](ht

元記事を表示

git commit のコミットメッセージに使える英単語

### ファイル追加系

| 単語 | 意味 |
|:-:|:-:|
| create | 新しく作成した |
| add | 追加した |

### ファイル更新系

| 単語 | 意味 |
|:-:|:-:|
| update | (最新の状態に)更新した |
| modify | (既に正常だったが改良のために)修正した |
| fix | (壊れていたものを正常な状態に)修正した |
| refactoring | (機能は変えずに)構造を整理した |

### ファイル削除系

| 単語 | 意味 |
|:-:|:-:|
| remove | 削除した(他の場所に残っているかもしれない) |
| delete | 消去した(存在を抹消した) |

元記事を表示

Git基本事項

# 用語(編集途中)

### コミット
ユーザーが任意のタイミングで記録を保存する操作.
### リポジトリ
コミットを貯めておく場所.

すでにGitで管理されているプロジェクトの開発に参加する場合はリポジトリをコピー(クローン)して使う.

### ワークツリー
変更するファイルを保持する場所.
### ステージングエリア
コミットするファイルを登録する場所.
### Gitディレクトリ
コミットを格納する場所.

# GitHubにあげるまでの手順
今回はGitのインストールやGitHubのアカウント作成などの初期設定の説明は省く.

あらかじめ登録してある人が新しいプロジェクトを始めるという状況を想定.

### リモートリポジトリをローカルへ複製する or ローカルで作成したリポジトリをリモートへ反映させる

今回はリモート側のリポジトリとして先にGitHubへリポジトリを作成し,それをローカルへ複製するという方法で進める.

“`
$ git clone GitHubのリポジトリURL
“`

GitHubのファイルが複製さ

元記事を表示

実務経験約6ヶ月の僕が実務で使ってない技術だらけでWebアプリを0から開発してみた話

#0.はじめに
***実務経験だいたい6ヶ月の僕がスキルアップのために現時点では実務で使っていない技術を使ってWebアプリを0から開発してみた話。***

**未経験からエンジニア転職を目指す方々のWebアプリ(いわゆるポートフォリオ)作成**にも結構参考になることはあると思いますのでぜひ。

作成したのは**面接情報共有アプリ**です。

#1.使用技術

– **フロント:HTML/MDBootstrap4/Vue.js(2.6.11)**
– **バックエンド:Laravel(6.8)**
– **DB:開発環境はDockerのMySQLコンテナ、本番環境はRDS(MySQL)**
– **開発環境:Docker(LEMP環境)**
– **インフラ:AWS(EC2/S3/Route53/ELB

GitHubで”Initial Commit”をすぐにする方法

# はじめに
`GitHub Codespace`は、ブランチがないと作れないので
# やり方
最初だけローカルかGitpodを用いります。

1, まず、GitHubに`username`/`initial`という名前のRepoを作ります。
2, _github.com/`username`/initial/settings_ を開いて、`Template Repository`に✅を入れます。
3, クローンします。

>`git clone https://github.com/“username“/initial.git`
>`gitpod.io/#github.com/“username“/initial`

4, `git commit –allow-empty -m ‘Initial Commit’` をして__Push__します。
> コミットメッセージはご自由に

これで、Repoを作るときに__Template__から__initial__を選択することで、`Initial Commit`済みのRepoを作れます。
これならすぐにCodespace