今さら聞けないGit 2019年12月11日

今さら聞けないGit 2019年12月11日

ダブルクォートを含むコマンドをそのままaliasにすると失敗しがち

## 困りごと

gitのオレオレ便利コマンドをgit aliasに設定したら以下のエラーで動かなぁい!

### 原因と解決法

aliasにダブルクォート使っていたため。シングルクォート(`’`)にするかエスケープ(`\”`)する。
変数展開のタイミングの問題。簡単な詳細(←?)は[「シェルのエイリアスで環境変数を使うときはクォーテーションに気をつけよう」という記事](https://qiita.com/ryosukes/items/2f3c16bb5bcafb6494e5)を参照

### 困るまでの具体的な流れ

「git logでいい感じにtreeみたいな。あ、[この「git logのオプションと綺麗にツリー表示するためのエイリアス」という記事](https://qiita.com/hirotsugu_kawa/items/41afaafe477b877b5b73)パクろ。」↓

“`shell
$ git log –graph –pretty=format:”%C(auto) %h %ad %d %s” –date=format:”%y/%m/%d-%H:%M:%S

元記事を表示

Sourcetreeでのリモート・リポジトリブランチの作成方法

Git初心者です。

下記リンクのリモートリポジトリのブランチ作成では、上手く作成出来なかったため、備忘録として対応を記載します。

ブランチについて(作業ブランチ・追跡ブランチ・リモートブランチ)


https://teratail.com/questions/68283

2名(repo_a, repo_b, だけでブランチを共有して作業する場合を想定します。リモートリポジトリは、origin/masterとします。

repo_aでまず、ローカルにブランチを作成します。左側の自分のブランチdevを右クリックし、push先→originとします。
プシュ:repo_aが上部に見え、ローカルブランチとしてdev, リモートブランチが空白になります。

この空欄にdevを入れます。そうすると、左側の雲のリモートのorigin>を開くと、dev, masterが見えます。

現時点での作業ブランチはdevなので、masterとは切り離されて作業が出来ます。これをターミナルをクリックすると
(dev)になっている事が分かります。git remote -vと打つとoriginでありな

元記事を表示

【Git Bash】ローカルへのコミットからリモートへのプッシュまでをバッチ処理するシェルスクリプトを作成

#1.この記事について
###こんなケースを想定。
《ある程度定型的なコミット-プッシュ処理をバッチ的にまとめて処理したい》
《コミットのコメントをいちいち打つのが面倒なので自動的に差分内容を反映させたい》

これを使えばちょっとは楽になるかもしれない。

#2.やりたいこと
・add,commit,pushまでのバッチ処理
・コメントの自動挿入(日付+差分内容)
・上記内容を網羅したシェルスクリプトの作成

#3.使用したツール・環境
・Windows10
・git version 2.23.0.windows.1
・GitBash

#4.作成したコード

“`bash:easyPush.sh
#!/bin/bash

#例外処理
#参考URL:https://cloudpack.media/532
set -e
trap ‘echo NG’ ERR

#バージョン管理しているフォルダに移動
cd /c/Users/username/versionControlDirectory

git add -N .

git add .

#コメント内容作成
#現在時刻格納
foo=$(

元記事を表示

初期設定の覚書 git + Angular8 + AWS Amplify

# 要旨

タイトルのとおりです!

git + Angular 8 + AWS Amplify の環境構築に毎回悩むので自分用メモです。

# 適用順番

忘れないように、適宜 commit しながら。
それぞれ、インターネットから大量のファイルをダウンロードするので、やり直すのがめんどくさいです。

## 0. 初期設定
コマンド類 `ng` とか `amplify` が使えるようになっている想定です。
ng コマンドがインストールされていないとかは自分で解決を。

## 1. git Repository の作成

まずは、Repository を Web から作成します。

注意
`README.md` と `.gitignore` ファイルは、後で Angularによって作成されるので、ここでは作成しない。

## 2. git clone

`git clone https://github.com/****.git` コマンドで、ローカルリポジトリを作成して、ディレクトリに移動します。

`README.md` と `.gitignore` がある場合、削除しておきます。

元記事を表示

[個人メモ]git push 時に remote: Repository not found. と出るときの対処

`.git/config`内の`url`をhttpsではなくsshのものにする

“`diff
[remote “origin”]
– url = https://github.com/USERNAME/REPOSITORY_NAME.git
+ url = git@github.com:USERNAME/REPOSITORY_NAME.git
“`

参考: https://code-log.hatenablog.com/entry/2019/05/23/090122

元記事を表示

【Unity】git pullのたびにアタッチが「Missing」になってしまう問題の解決法

なぜかgit pullするごとに全オブジェクトの全アタッチがMissingになっててしまい、そのたびに手作業でアタッチし直すという人のための記事です。

## 解決法
**`.unity`を保存する!!!!**

原因はとても単純だった…
シーンファイルを保存しなければ、当然git statusしたときに一覧に出ませんからね。
こまめにシーンを保存することが大切です。

2人で開発していて2人とも気づけませんでした。
pullするごとにアタッチし直すという作業を延々と繰り返していました。
何というアナログ……
みなさんもしでかす可能性がありますのでそのときに役立てば幸いです。

元記事を表示

GitHubのパスワードを変更して、pushしたらエラーが出た話

# エラー詳細
GitHubのパスワードを変更後に、作業ブランチをpushしたら下記エラーが発生

“`
remote: Invalid username or password.
“`

# 解決方法
下記コマンドでGitHubユーザ名を入力

“`
git config –global user.name ユーザ名
“`

その後、通常通りpushを実施するとユーザ名とパスワードを聞かれるので入力する。

“`
git push origin ブランチ名
Username for ‘https://github.com’: ユーザ名
Password for ‘https://hogehoge@github.com’: 新しいパスワード
“`

# 参考
[GitHubでパスワード変更後、pushしたら「remote: Invalid username or password.」が出たときの対処法](https://reasonable-code.com/github-invalid-error/)

元記事を表示

GitHub超入門

この記事は[【Digital Identity Creative Div. Advent Calendar 2019】](https://adventar.org/calendars/4714 “【Digital Identity Creative Div. Advent Calendar 2019】”)の11日目です

いくつかあるGitホスティングサービスの内、Bitbucketしか使ったことがない。
GitHubの知見がない。
そんな状態だったので実際に触ってみて備忘録として纏めました!

#GitHubとは
「Git」というバージョン管理の仕組みを利用してプログラムコード等を保存したり公開することができる「Gitホスティングサービス」です。
視覚的、直感的に操作できることができます。

#GitHubを使うメリット
・ファイルの変更履歴を管理できる
・過去のログを遡って更新前の状態に戻すことができる
・チーム共有できるので共同開発に向いている
・開発中の「やっちまったヨ…」が減るのでストレスと無駄な工数削減に繋がり働き方改革
などが挙げられます。

#まずは基礎知識

元記事を表示

Android Studioで独自のGitサーバへGitする設定

GitHubとかの連携ではなくて、自前でGitサーバを構築している場合で、鍵認証を使っている場合の設定方法です。
# Step1:Gitを有効にする
まず、基本的なGitを有効化する方法は下記がとっても参考になります!
https://qiita.com/hkusu/items/45fc32a46efcb7d9a44a

# Step2:鍵ファイルを作成する
OpenSSHの鍵を用意する必要があります。Puttyはダメっぽいです。下記がとっても参考になります!
https://stackoverflow.com/questions/41563973/git-clone-key-load-public-invalid-format-permission-denied-publickey

ここでは「id_rsa_openssh.ppk」で秘密鍵を作成し、下記に保存します。
`C:\Users\Tetsuji Okuno\.ssh\`

# Step3:configファイルを用意する
Windows前提ですが、ログインしているアカウントのホームディレクトリにconfigファイルを作成しま

元記事を表示

今更の5分でわかるGit

#はじめに
こんにちわ。普段はオンプレ環境のインフラ構築を行っているエンジニアです。
TerraformやAnsible等を使用したインフラのコード化に興味があり勉強しているのですが、
如何せん現在の案件ではGitやSVNといったバージョン管理ツールを使用する機会が無いため、1から学びまとめてみようと思います。
またGitを使用したことが無い方への情報共有にもなるように、概要をまとめていきます。

#目次
・Git(バージョン管理)とは?使用するメリットは?
・GitとGitHubの違い
・頻出用語
・Gitインストール

#Git(バージョン管理)とは?使用するメリットは?
Gitはテキストファイルなどのバージョン管理を行うためのソフトウェアです。

バージョン管理とは、ファイルの**変更内容**や**変更履歴**を保持しておいて、あとから古い状態に切り戻したりできるようにするためのものです。
バージョン管理ソフトを使用するメリットは大きく3つあり、

***1,ファイルの変更履歴が管理できる***
![https___qiita-image-store.s3.amazona

元記事を表示

Git ステージングしたファイルをgit diffしたいとき

# 目的

– ステージングをしてしまった後にコマンド`$git diff`を実行して差分を取得したいときの方法を先輩から教えてもらったのでまとめる。

# 結論

– コマンド`$git diff`にオプション`–cached`をつけて実行する。

# ちょっとしたまとめ(manコマンドで調べてみた)

– ステージングしていない差分はコマンド`$git diff`のみで取得可能である。
– コマンド`$git diff`はindexとtreeを比較して差分があったときに表示する。
– コマンド`$git diff –cached`は指定したコミットに関連する現在ステージングされている変更点を出力する。

元記事を表示

自分、何のGitコマンドやったか分かっとんのか…?

※この記事は [今年イチ!お勧めしたいテクニック by ゆめみ feat.やめ太郎 Advent Calendar](https://qiita.com/advent-calendar/2019/yumemi_no1) 2019年12月10日(10日目)の記事です。

初めましての方は、はじめまして
ご存知の方は、そうだよ。ヒズミさんだよ。

縁とノリと勢いで、10日目を担当します。
~~僕は、俗物なので、ハマーンミュラーの椅子はきっと無理です(typoじゃないです)~~

## epic1:悲劇は突然に

自分が何やったかわかっとんのか・・・( ‘ω’)?
わ゙がっ゙どん゙の゙があ゙あ゙あ゙!? ( ‘ᾥ’ )???

上キー押せよ・・・( ‘ω’)?
う゛え゛キ゛ー゛お゛せ゛よ゛お゛お゛お゛お゛お゛お゛お゛お゛お゛お゛お゛!? ( ‘ᾥ’ )????

 _人人人人人人人人人人人人_
>  $ git push -f origin master  <
  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄

![explosions.png](https://qiita

元記事を表示

git commit –amend でcommitを修正する

#git commit –amend とは
タイトルの通り、「git commit –amend」についての説明です。
最近、ちょっと修正してcommitするということが多いので書いてみます(‘ω’)ノ

##そもそもamendって何?
googleで検索すると、「修正する」と出てきます。
つまり、「commitを修正する」という意味です。

##こんなことありませんか?
「commitコメント間違えた・・・」
「addし忘れたファイルが・・・」

そんな頻繁にあることではないと思いますが、
勢いでEnter押してcommitコメント間違える、ということが僕はたまにあります(笑)

##そんな時に–amend
“`
# commitしよー!
$ git commit -m “hogehogeしました”
$ git pu
“`
あΣ(・□・;)
今回の修正、「hogehogeしました」じゃねぇ!
「gehobgehoしました」だった!ハクション(@ゝз)o.:∵;´、

“`
# commitコメント修正しよう
$ git commit –amend -m “gehoge

元記事を表示

pre-commitのススメ

この記事は [Git Advent Calendar 2019](https://qiita.com/advent-calendar/2019/git) 10日目の記事です。

# はじめに

最近、gitのhooksでpre-commitを使い始めた
なかなか良いことが多かったので書いてみる

# モチベーション

– PHPという自由な言語なので、他人のコードを読む時に苦しみたくない
– コードレビューの時にスペースがないとかくだらないことをチェックしたくない
– シンタックスエラーを事前に検知したい

# やったこと

– `php -l`でのシンタックスチェック
– `phpmd`でのお作法チェック
– `php-cs-fixer`での自動修正

上記3点をcommit時にチェック。違反や引っかかることがあった時に、__commitできない__という結構厳しめのルール設定

# php -lについて

– phpのシンタックスエラーをチェックしてくれる

“`php

“`

“`bash
$ php -l f

元記事を表示

技術ポートフォリオを作った話

つい先月,自分のgithubアカウントで技術ポートフォリオを作成した.→ [**tackkyのポートフォリオ**](https://tackky.github.io/portfolio/)
どうしてgitもhtmlも慣れていないのに作ろうと思ったのか,その辺の話も含めて記事にする.

## 技術ポートフォリオは何に役立つ?
### 1. 就活で使える
#### 1. 逆求人
これが一番大きい. 特に最近IT系の就活では逆求人(企業様の方から連絡が来る就活)で,まず自分の情報を見ていただく.
例えば,

– 研究室での研究内容
– 資格,その他技術的にやってきたこと

など.この場合,研究内容だけ突き詰めて研究している方ならそこを詳しく書けばいいけれど,私などのようにいろんな技術をつまみ食いしているような人には不利になる.githubで公開リポジトリーとしてアップするという手もあるけれど,やはり就活では技術に詳しくない人事の方も見ているので,見た目にも綺麗なwebページが一番企業様へのインパクトは大きい.

#### 2. エントリーシート
このような目的で作成されたポートフォリ

元記事を表示

stashした複数ファイルのうち、一部ファイルだけ取り出す方法

スタッシュしたくないファイルも入れて、間違えてスタッシュしてしまった場合にそれを除いたファイルのみ取り出す方法の備忘録。

SourceTreeではうまくできないので、コマンドを使用する。

# 現在スタッシュしているリストを表示する

“`
$ git stash list
“`

結果は、こんな感じ

“`
stash@{0}: On branch/sample1: スタッシュしてみた1
stash@{1}: On branch/sample2: スタッシュしてみた2
stash@{2}: On branch/sample3: スタッシュしてみた3
“`

# 取り出したいファイルのあるスタッシュの番号を指定して、その中の一部ファイルを取り出す

スタッシュリストの番号を指定して、取り出したい中身のファイル名を入れるだけ
ファイルを取り出すだけなので、スタッシュは消えない

“`
$ git checkout stash@{1} pc/hoge/sample.html
“`

# おまけ

スタッシュの中身の差分を確認したいとき

“`
$ git diff stas

元記事を表示

[個人メモ]複数githubアカウント使い分けのための.git/config設定

`.git/config`を以下のように編集する。`USERNAME`/`PASSWORD`はgithubのユーザー名/パスワード。

“`
[remote “origin”]
url = https://USERNAME:PASSWORD@github.com/xxxx.git
“`

元記事を表示

gitoliteインストール方法と使用方法メモ

gitoliteをインストールしてリポジトリ管理をする。

環境
・CentOS7

準備
・自分の公開鍵を取得
・config作成(初回だけ)
 C:\Users\PCXXXXXX\.ssh
  ⇒config中身
   Host gitolite
   HostName gitサーバー
   IdentityFile 自分の鍵
   user ユーザー名
   port ポート番号

・ローカル環境にGitをインストール
※今回は自分が管理者となって鍵を管理します

#gitoliteとは
Gitで共有リポジトリのユーザー管理やアクセス管理を行えるツールのこと。
sshの鍵を使用してユーザーを管理します。
※GitHubで公開している。

#インストール
既にCentOS上にGitをインストールしていたため
Githubに公開されているgitoliteをクローンします。

“`
# git clone git://github.com/sitaramc/gitolite
# gitolite/install -ln ~/bin
“`
※gitoliteをセットアップする前

Gitのエディタを変更する

neovim に設定

“`bash
git config –global core.editor nvim
“`

【Git】GitLabでクローンすることなく古いコミットが欲しい

#こんな状況に出くわした
リポジトリがでかすぎて私の激遅回線ではクローンするのに1日かかってしまう!
※イメージ
でかすぎポジトリ

今回はこのリポジトリ下から2番目のコミット`First Commit`(`e24b3ba0f2d9d367d4758ccfafa4aef0e90b804a`)が欲しいのだ
![First Commit](https://gyazo.com/32363f6bdb2d912ea193e73d9ae8a618/raw)

## 実験
当然、クローンしていないので

“`bash
git checkout e24b3ba0f2d9d367d4758ccfafa4aef0e90b804a
“`
などとはできない。
そして、

“`bash
git fetch origin e24b3ba0f2d9d367d4758ccfafa4aef0e90b804a:refs/remotes/orig