今さら聞けないGit 2020年07月29日

今さら聞けないGit 2020年07月29日
目次

変更していないの行のgit差分

## 概要
コミットを試みたところ、変更していない行に差分があった。
差分の正体は改行コードだった

## 解決策1
trコマンドで置換する

参考
[【 tr 】コマンド――テキストファイルの文字を置換する/削除する](https://www.atmarkit.co.jp/ait/articles/1610/03/news017.html

## 解決策2
gitは自動で改行コードを変換する機能があるのでそれをoffにする

“`
git config –global core.autocrlf false
“`

参考
[気をつけて!Git for Windowsにおける改行コード – Qiita](https://qiita.com/uggds/items/00a1974ec4f115616580)

[Git – Git の設定](https://git-scm.com/book/ja/v2/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%81%AE%E8%A8%AD

元記事を表示

最速でgit add -uとコメント付きcommitする

ファイルをステージングにaddしてコミットするのが面倒だ。

とくに

“`shell

git commit -m “message”
“`
のダブルクオーテーションを入力するときにタイピング速度が落ちるのが嫌だった。

なので、shellで対話モードで開いてくれて入力待ちしてくれるスクリプトを作った。

#### gcimコマンドの中身
“`shell

#! /bin/bash
echo “add update file to staging”
echo Write commit Messge …
read msg
git add -u
git ci -m “$msg”
“`

使い方はこんな感じ

“`shell

gcim
# >>> 入力モード
# これでgit add -u && git ci -m “<入力結果>“をしてくれる
“`

とりあえず超シンプルなコードだけ書いた。Macでのみうごくので、使う人は適当に改良してほしい。

[GitHub: gcim](https://github.com/KeisukeNagakawa/gcim)

元記事を表示

Windows で Automatic git sync

– git(https://git-scm.com/download/win) をダウンロードしてインストールする option(with linux command)

“`gitsync.bat
REM Switch Disk
D:
cd D:\your-git-folder
git checkout -f master
git fetch origin master

REM Keep Local Change File Here
git update-index –assume-unchanged Unity/Assets/Model/AppInfo.cs

REM Remove Merge Problem File Here
rm -rf Unity/Assets/Model/AppInfo.cs.meta

git pull origin master
PAUSE
“`

後は TaskManager 実行するだけ

元記事を表示

【GitHub新機能】プロフィール画面にREADME.mdを追加できるようになったので自己紹介してみた

![mabataki_github.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/113263/0d40ea15-582d-d034-f3fc-16bc35143a2f.gif)
GitHubのプロフィール画面が動いた…!

# GitHubプロフィール画面にREADME.mdを作れるようになったらしい
最近少し話題になっていますが、GitHubプロフィール画面にREADME.mdを作れるようになったらしいです。

ここに自分の経歴や実績などをまとめておけると強いですね!
転職や案件探しの時にGitHubのURLだけを提出すればいいだけになったら素敵やん。。

日本語版の情報はまだ少ないですが、海外だとそこそこ試している人が多いみたいです。

[How To Create A GitHub Profile README](https://www.aboutmonica.com/blog/how-to-create-a-github-profile-readme)

> GitHub recently r

元記事を表示

Mac用.gitignoreテンプレート

# gitignore Mac用

.DS_Storeとか、環境依存の不要なファイルをgitに混入させない設定

内容としては、[github/gitignore: A collection of useful .gitignore templates](https://github.com/github/gitignore)の紹介です。

## ディレクトリとファイル作って、vimで編集

まずはグローバルの設定を変更します。

“`terminal
mkdir -p ~/.config/git && vim $_/ignore
“`

## ignoreの中身 (コピペでOK)

参考: [gitignore/macOS.gitignore at master · github/gitignore](https://github.com/github/gitignore/blob/master/Global/macOS.gitignore)

“`~/.config/git/ignore
# General
.DS_Store
.AppleDouble
.LSOverride

元記事を表示

【Git】Pull Requestから修正ファイル一覧を取得する

チーム開発で1つのPull Requestを複数人でレビューするときに修正ファイルで分担することがあったので
その一覧を取得した際のコマンドを残しておこうと思います。

“`
git diff <ベースのブランチ> <修正が入ったブランチ> –name-only // –name-onlyオプションでファイル名のみの取得
“`

元記事を表示

GitHub Actions で Upstream/Fork 元に自動追随する(Cron で自動 Rebase & Merge するスケジュールを組む)

GitHub Actions の schedule + cron で Fork/Upstream と同期させたい

> GitHub で [fork](https://docs.github.com/ja/github/getting-started-with-github/fork-a-repo) したリポジトリで、フォーク元に変更があった場合にフォークト先も自動で追随させたい。しかも、**ローカルで `cron` を実行させないで GitHub だけで完結させたい**。

つまり、フォーク元である `upstream/master` の変更を、ローカルの `master` に `rebase` してから `merge` したものを、リモート先の `origin/master` に反映させてフォーク元に追随させたいのです。

この時、外部の [CI](https://ja.wikipedia.org/wiki/%E7%B6%99%E7%B6%9A%E7%9A%84%E3%82%A4%E3%83%B3%E3%83%86%E3%82%B0%E3%83%AC%E3%83%

元記事を表示

現場ではGit Hub Desktopは殆ど使われていないって本当?

某プログラミングスクールを卒業したものでまだ、実際に働いた事がないので確証は得られませんが、先日現場で働いている方にGit Hub Desktopを使っていると言ったら笑われました、、、
なのでそれをネタに記事を書いてみる事にしました。

# Git Hub Desktopを使ってる理由
単純明快でスクールで勧められたからだけです笑
カリキュラムではgitコマンドは習いましたが次のカリキュラムでは直ぐにDesktopの方を勧めてきてあれよあれよの内に今後の学習では全てDesktopを使う事になり最後の方になるとスクール生の大半はgitコマンドなんてほぼ忘れていたに違い有りません(自分も例外ではない)
プログラミング初心者からしたらGUIで操作出来るDesktopは居心地が良いですし直感的に操作も出来ますのでかなーーり楽出来ますから使わない理由がないでしょうし、スクール内ではそれで困る事は無かったです。

# gitコマンドの方が良い理由
私が話したエンジニアの方曰く操作出来る範囲がDesktopでは出来ない事もコマンドでは出来るとの事、具体的に何が出来ないのかはその時聞いていないので分

元記事を表示

過去のコミットまで戻したい

過去のこの状態のソースに戻したい!っていうことが時々あります。(特定のコミットまで戻したい)
そんな時には下記コマンドで対応します。自分用メモ。

“`
$ git reset –hard 戻したいコミットのID(SHA-1)
“`

元記事を表示

git-remote-codecommit(GRC)を使ってAWS CodeCommitに繋いでみたら楽になった

こんにちは。AWS歴3年生の人です。最近、インフラもコードで管理するInfrastructure as Code(IaC)に関連して、Gitを使い始めたのですが、2020年春にAWSからgit-remote-codecommitという新しいGit認証ツールがリリースされたので勉強がてら試してみました。

[AWS CodeCommit が新しい Git 認証情報ヘルパーの git-remote-codecommit を導入](https://aws.amazon.com/jp/about-aws/whats-new/2020/03/aws-codecommit-introduces-open-source-remote-helper/)

**注意**

– 本記事は2020年7月17日時点でのバージョンで確認しました。

– 記載のコードにつきましては参考となりますので、利用時の不具合について一切の責任を負いません。

## 結論。こんな方におすすめです。

– AWSがきっかけでGitを使い始める人。
– AWSが提供しているGitリポジトリへ接続するための認証補助

元記事を表示

【独学】共同開発のために必要なGitとGitHubの情報をまとめました!

これまでGitやGitHubに関する知識を曖昧な状態にしていましたが、共同の案件で必要だということもあり、独学で学習してみました。

そこで学んだGitのプルリクエストを出してマージするまでの簡単な流れをここに共有します!

## 目次
– [ベースのブランチを最新の状態にする](https://qiita.com/ruilouis/items/2917d91f49945bc0d0a3#%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E6%9C%80%E6%96%B0%E3%81%AE%E7%8A%B6%E6%85%8B%E3%81%AB%E3%81%99%E3%82%8B)
– [リモートリポジトリにプッシュする](https://qiita.com/ruilouis/items/2917d91f49945bc0d0a3#%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%88%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88

元記事を表示

Git 自分用めも

# svn を使っていたが、git を使い始めると混乱するところ

## リポジトリの作成

リポジトリを作成するだけ(Bara)と、すでにあるものをリポジトリ管理する用の二つ作成方法がある。

svn だと、基本的には、初めに空のリポジトリを作成する。すでにソースがある状態からは作れなかったはず

## ソースの取得

clone する。

svn だとチェックアウト。これはほぼ同じ。

## svn の更新と、git の pull の fetch と merge
git はローカルリポジトリに mastar と origin/mastar の二つが**実は**存在する。
という前提がわかれば、pull と fetch の違いがすぐわかる。

これは svn にはない発想

* 参考 https://qiita.com/wann/items/688bc17460a457104d7d

## commit と push
commit はローカル、push はリモートへソースを反映する。

svn はコミットのみ。ローカルとリモートの発想がない。

## プルリクエスト
ブランチで作業

元記事を表示

よく使うgitコマンド一覧(初心者編2)

プログラミング初学者の発信です。
間違いがあれば、指摘いただけると助かります。

#commitの変更履歴をみる

“`
$ git log
“`

#ローカルの変更を確認する

“`
$ git status
“`

#addの取り消し
間違って違うファイルをaddしてしまった時によく使う。

“`
$ git reset HEAD <ファイル名>
“`

#commitの取り消し
HEAD^:直前のコミット
HEAD~{n} :n個前のコミット

“`
$ git reset –hard HEAD^
“`

#commitメッセージの修正

“`
$ git commit –amend “新しいコミットメッセージ”
“`

#ブランチの作成

“`
$ git branch <ブランチ名>
“`

#ブランチの切り替え

“`
$ git checkout <ブランチ名>
“`

#ブランチの削除

“`
$ git branch -d <ブランチ名>
“`

#ローカルのブランチをリモートに反映

“`
$ git push -u origi

元記事を表示

VSCode + GCP で貧弱マシンに環境構築をする②

#初めに
この記事は前回の続きで、GCP上に構築したCentOSのVMインスタンスに開発ツールやプログラミング言語をインストールして実際に開発が行える状態を作る記事です。
暇潰しに読んでいただければ幸いです。

# CentOSに各種ツールをインストール
今回は**Python,Git**をインストールし、Pythonで作ったHello worldをGithub上のリポジトリにコミットするところまでを実施します。

## Pythonのインストール
今回はコマンドを利用してインストールしていきます。CentOSには“`yum“`というパッケージマネージャが存在し、“`pip install“`や“`npm install“`に似たような形でプログラムをインストールすることができます。
試しにPythonをインストールしてみましょう。

“`
sudo yum -y install python38 #Python3.8をインストール
“`

解説していない**sudo**というコマンドは、「異なるユーザ権限で続くコマンドを実行する」コマンドです。
“`sudo -u

元記事を表示

【git】日常的に使うgitコマンドとそれを使う理由(?)のまとめ

## はじめに

自分が日常的に使っているgitコマンドとそれを使う理由(?)のようなものを備忘録がてらまとめる

なお、チーム開発かつGitHubやBitbucketなどを利用することを想定している

## 変更をステージング

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

## 全ての変更を一括でステージング(あまり使わない)

これはあまり使うべきでないかと(個人的な意見)
そのコミットに含めるべきでない変更点までコミットしてしまう危険性があるため

“`
$ git add .
“`

## コミット

コミットメッセージは英語でも日本語でも良いので基本的につける

“`
$ git commit -m “コミットメッセージ”
“`

## リモートのhogeブランチにプッシュ

たまにプッシュに失敗することがあるが、リモートリポジトリの権限が原因であることが多い気がする
リポジトリをいじれる権限が与えられているか、sshkeyが追加されているか、など確認すれば解決は難しくないはず

“`
$ git push origin hoge
“`

rebaseし

元記事を表示

よく使うgitコマンド一覧(初心者編)

#概要
プログラミングの勉強を始めて1ヶ月目でよく使ったgitコマンドです。
まだ勉強を初めて3ヶ月とかですが、参考にしてください。
間違いがあれば、指摘をいただけますと助かります。

#初期設定

この設定を行うことでgit hubに草を生やすことができる。
pushをしても草が生えないときはこの設定を忘れていることが多い。(多分)

“`
$ git config –global user.name “XXXX”
$ git config –global user.email “XXXX@hogehoge.com”
“`

#ローカルにリポジトリを作成しリモートにpush
新規でリポジトリを作成して、pushするときはこの流れ!
git add * の「*」は「全てのファイル」を意味する。

“`
$ git init
$ git add *
$ git commit -m “Initial commit”
$ git remote add origin https://github.com/XXXX/XXXXXX.git
$ git push -u origin ma

元記事を表示

git stashの流れ【コミットせず変更を退避ってどうやんの】

最近だけど、あるブランチで作業をしていた時に
急遽他の作業依頼が来たんだよね。

あれ、今のブランチの作業履歴ってどうやって保存して
他のブランチを切ればいいん…?って困ったのがきっかけ。

stashを使うと**コミットしていない変更履歴を退避**させておくことが可能みたい。
まじでgitすごい。

実はstashのこと知る前は、ローカルに変更したファイル群をそのまま保存して
あとで1ファイルずつまた変更しなおしてたんだよね。
まじでなんでもっと早く教えてくれなかった??????ってブチギレそうになったことが以前ある。

#まず変更を退避!
“`
$git stash save “XXXXXX”
“`
これでブランチ上の変更が退避される。
まあつまり、ブランチは変更が加えられていないクリーンな状態になる。
ちなみにXXXXXXのところはコメントだよ。後でこのstashってなんだっけ…?ってならないためのやつ。
俺はいつも”feature/XXXXXX_yyyymmdd”って感じでstash名に加えて年月日をアンダースコアの後に追記してるかな。

※commitしちゃって

元記事を表示

npm versionでアルファ版やRC版を作成する

Node.jsのプロジェクトでは`npm version`コマンドでバージョンをインクリメントできます。package.json, package-lock.jsonの書き換えと、Gitタグの追加が自動化されます。よく使われる`major`, `minor`, `patch`の他に、`pre*`というプレリリース用のオプションが実装されています。

以下の動作確認はnpm v6.14.5で行いました。

## 次期バージョンのアルファ版作成
“`sh
# 1.2.3 => 2.0.0-alpha.0
npm version premajor –preid alpha
“`

`premajor`を指定すると、次期メジャーバージョンのプレリリース版となります。このとき`–preid`オプションを指定すると任意の接頭辞(この場合は`alpha`)が付加されます。接頭辞を指定しなかった場合は`2.0.0-0`となりました。

## アルファ版の中でのインクリメント
“`sh
# 2.0.0-alpha.0 => 2.0.0-alpha.1
npm version prereleas

元記事を表示

[Github初心者]ターミナルで新しいブランチを作成してマスターブランチとマージする方法

掲示板を作成中、掲示板の基本機能のみ作ってherokuでデプロイした。
ユーザーログインという新規機能安全にデプロイする為に、新機能開発の前にあらかじめgitでmasterではないブランチを作って、テストを行ってからmasterブランチにmergeを行いたい。

##ブランチ作成&そのブランチに切り替え

###$ git checkout -b create-users-table-model
“`
Switched to a new branch ‘create-users-table-model’
“`

##存在するブランチの確認コマンド
###$ git branch
“`
* create-users-table-model
master
“`

###ブランチを切り替える
###$ git checkout master
“`
Switched to branch ‘master’
“`

### git checkout create-users-table-model
“`
Switched to branch ‘create-users-table

元記事を表示

【備忘録】git mergeでconflictが発生した場合の対処

#発生したマージコンフリクト
branchをmasterにチェックアウトしてブランチでの変更をmergeしようとした時にコンフリクトが発生。
初めてのことだったので記録しておくことにしました。
ブランチ作業を終えてmasterブランチにマージしようとしたところ、

“`terminal
$ git merge finalpage


CONFLICT (content): Merge conflict in config/routes.rb


Automatic merge failed; fix conflicts and then commit the result.
“`

と、怒られてしまいました。googleで調べてみると、コードの内容に競合が発生した時に起こるとのことらしいですね。git status で確認すると、

“`
On branch master
You have unmerged paths.
(fix conflicts and run “git commit”)
(use “git merge –abort” to abort t

元記事を表示

OTHERカテゴリの最新記事