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

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

変更内容を非難させる git stash でやらかしたこと

過去にgit addしていて、コミットしていないファイルについてはgit stashで対応できますが、過去にgit addしたことのないマイグレーションがある状態でgit stashをしてブランチを切り替えて作業することはNG

“`zsh
Untracked files:
(use “git add …” to include in what will be committed)
db/migrate/20211004063538_add_order_number_to_cards.rb
“`

この状態で、git stashを行っても追跡されていないファイルにマイグレーションファイルが存在し、切り替えたブランチ先に追跡されていないマイグレーションファイルを持ち込んでしまう。

この際のエラーが出た場合は、2パターン解決策がある
# ロールバックをして、データベースの整合性を取る方法

“`zsh
$ bin/rails db:status

database: db/development.sqlite3

Status Migrat

元記事を表示

git push時に「fatal: git-http-push failed」が出たとき

# エラー内容
サーバーからリポジトリをcloneし、ローカルで作業し、サーバーにpushしたところ、以下のようなエラーが出た。

“`bash
$ git push origin test/branch
error: Cannot access URL http://11.2.33.444:8888/git/hoge/bar.git/, return code 22
fatal: git-http-push failed
“`

# 解決法
リモートのoriginのURLに、「ユーザ名:パスワード@」を追加する。

“`bash
$ git remote -v
origin http://11.2.33.444:8888/git/hoge/bar.git (fetch)
origin http://11.2.33.444:8888/git/hoge/bar.git (push)

$ git remote rm origin

$ git remote add origin http://username:password@11.2.33.444:8888/git/hoge

元記事を表示

【Git】git stashを使ってファイルを一時退避させる

#はじめに
現在作業途中だけど、他のブランチで別の作業を行わなければならないから、現在の作業はコミットせずにファイルを一時退避させたいというときに、`git stash`を使います。
`git commit`していないファイルが対象なので、`git add`はしていてもしていなくても退避させることができます。

#コマンド

##git stash
・ワークツリー及びステージにあるファイルを一時退避させます。
・前回のコミット後に新規作成されたファイルは退避に含まれません。
・saveはあってもなくても良いです。
・複数回`git stash`を行うと、`stash{0}` `stash{1}` `stash{2}`といった感じで何回目のstashかが分かるようになります。

“`git:ターミナル
git stash
git stash save
“`
##git stash -u
・`git stash`と異なり、前回のコミット後に新規作成されたファイルも退避に含まれます。

“`git:ターミナル
git stash -u
“`

##git stash list
・一時

元記事を表示

複数アカウントのAWS CodeCommitを管理する時のgit clone時tips

自分で3回調べ直したので手順メモ。

# 背景
– AWS CodeCommitにあるリポジトリをcloneしたい
– 利用するAWSアカウントが複数あるため、 `git config –global` したくない
– (もっとスマートな方法もありそうだが)都合よく切り替えるため初回git clone時に追加の操作を足す。

## 参考
大枠はこちらの方法です。

https://qiita.com/nekonoprotocol/items/b4bc9565f2babaf3e781

# todo

### 1. AWS Credencial設定

“`bash
aws configure –profile wasshoi
“`

「wasshoi」部分は案件に応じてお好みで。

### 2. gitに対してまずは素直にglobal設定

“`bash
git config –global credential.helper “!aws codecommit –profile wasshoi credential-helper $@”
git confi

元記事を表示

gitコマンド

コマンド忘れて毎回調べてるので箇条書きでまとめました。

#よく使うコマンド
“`

git init //既存のディレクトリをgitに登録
git remote add origin [リモートリポジトリのURL] //リモートリポジトリを追加
git remote -v //現在のリモートリポジトリを確認
git add . 
git commit -m “first commit”
git branch -M main
git checkout -b main
git push -u origin master //push
git push –set-upstream origin main //初期commitの時は上流ブランチがないとかでエラーがでるのでこっちを使うといいかも

“`

“`
git log
git reset –soft HEAD^ //commitを取り消せる
git reset –hard HEAD //
git update-ref -d HEAD //first commit だけは上記のresetで消せないのでこのコマンドを使

元記事を表示

【Git】ブランチについて

#はじめに
今回は、ブランチを使うメリットとコマンドについて見ていきましょう。

#ブランチ(branch)
ブランチとは、プロジェクトの変更の履歴を枝分かれさせて記録する機能のことを言います。
大元のブランチから分岐させることで、チームの他のメンバーがファイルを変更しても、その影響を受けることなく開発を進めることができます。
つまり、複数人が並行して別の機能を開発することができるというメリットがあります。
また、マージ(merge)を行うことで、分岐したブランチを統合することができます。

#ブランチ関連のGitコマンド
##変更履歴の統合

“`git:ターミナル
git merge <ブランチ名>or<リモート名/ブランチ名>
“`

##ブランチの新規追加

“`git:ターミナル
git branch <ブランチ名>
“`

##ブランチの一覧表示

“`git:ターミナル
git branch
git branch -a
“`

##ブランチの切り替え

“`git:ターミナル
git checkout <既存のブランチ名>
“`

##ブランチ名の変更

元記事を表示

WindowsでGit関連のコマンドをAlias登録する

インターネット上にWindowsでのエイリアス設定の断片的な解説はあるのですが、それらを見てもPowerShellでの汎用的で永続的なエイリアス設定は分かりづらいなと感じたため、本記事を作成しました。

WindowsでVSCodeでコードを書き、ターミナルで以下操作を実行するとします。

“`
git branch
git checkout -b xxxx
git add .
git commit -m “”
git push origin xxxx
git checkout main
git branch -d xxxx
“`

VSCodeのGUIでもGitの操作は可能ですが、コマンドラインからの方が楽なときがあります。でも毎回このようなコマンド入力をするのが面倒なので、エイリアスを設定したいと思いました。
Linuxではエイリアスは設定が簡単(“`alias gcb=’git checkout -b’“`)なのですが、Windowsだとちょっと面倒です。

WindowsでVSCodeのデフォルトのターミナルはPowerShellで、私もそのまま使っているので、Powe

元記事を表示

VSCodeでGitリポジトリが認識されないとき

# 概要
* VSCode Version 1.60.2 (Windows x64)で、リモート計算機 (CentOS7)に置いてあるGitリポジトリを開いたら、Gitリポジトリとして認識されなかった。
* コミット履歴やブランチ一覧などが全く表示されないなど。
* リモート計算機にGitの最新版(ver 2.33.0)をインストールしてパスを通し、リモート計算機中のVSCodeサーバープロセスをすべて殺し、再度接続したところ、Gitリポジトリとして認識されるようになった。
* 原因はCentOS7のデフォルト(システム)のGitバージョンが古すぎたため(ver 1.8.3.1)と考えられる。

元記事を表示

Gitブランチでフォルダーの運用

# 背景

会社はGithubでGitflowを管理しています。最近開発の業務が大幅増えてきて、ブランチの数も以前より何倍になりました。Gitブランチについて、現状は下記となります。
1. 大きな機能に対して、featureブランチを作成して、細かい機能は更にチケットを切ってfeatureブランチ向けのPRを作って作業します。
2. テスト環境のデポロイやリリースのために、github actionでスクリプトを作って、毎回featureブランチ向けのPRがマージされたら、自動的にデポロイやリリース用のブランチへPRを生成します。
3. 毎回リリースの直前にfeatureブランチの内容を確認して、リリースを行うとなります。

# 気がついたところ

最近はGitブランチの管理で下記の何点に気が付きました。
1. Sub-featureと所謂細かい機能を改修するブランチが多いので、ブランチの管理が難しくなる。更に考慮漏れや用件追加によって、命名が似ているブランチも増えて来ました。例えば、チケットAに向けのブランチ`ticket_a`。一回マージして、また新しい改修を追加したい場合は、`t

元記事を表示

giboを使っていい感じにgitignoreの設定をする

みなさんはGitリポジトリを作成したら、きちんと`.gitignore`を設定していますか?

`.gitignore`を適切に設定していないと、開発中のログファイルやビルドキャッシュ、果てはクラウドサービスのキーファイルやクレデンシャルといった**コミットに含めるべきではないもの**をうっかりコミットしてしまう事故が起きたりします。

そうならないように、また、コミット作業時に神経をすり減らさないためにも、`.gitignore`を設定しておきましょう。

## giboコマンドを使う

さて、`.gitignore`を設定することが大事なのはわかりましたが、どんな内容を書けばいいのか考えるのも、毎回手で書くのも大変ですね。

そこで登場するのが[gibo](https://github.com/simonwhitaker/gibo)というコマンドです。

`gibo`は[github/gitignore](https://github.com/github/gitignore)というGitHubが管理している`.gitignore`のテンプレート集を使って`.gitignore`を

元記事を表示

exec user process caused: no such file or directory

dokcer-composeコマンドで起きたエラー。

# 原因と解決法

これの通り。

[standard_init_linux.go:211: exec user process caused “no such file or directory” の直し方 – Qiita](https://qiita.com/kabik/items/5591f62c0ef6ddef5db2)

# 問題点は残る

特定のファイルだけLFに変換し、今回のエラーは解消されたが、他のファイルはCRLFのままで、レポジトリもCRLFになっている。
(Repository上にCRLFがあるかどうかは以下のコマンドで。)

“`
git grep –cached -I $’\r’
“`

# Windows for Gitの改行コード変換問題

そもそもCRLFにする必要は基本ない。LFにしとかないとチーム開発で影響出たり、今回のような無駄なエラーにつながったりする。

それには、git configに

“`ruby
git core.autocrlf=true
“`

があるせい。

#

元記事を表示

git コマンド チートシート

自分用のチートシート
前提 WindowsPowerShellでGitをインストール済み

## ローカルリポジトリ作成〜コミットまで

新規リポジトリの作成

“`
git init
“`

ステージングの状態の確認

“`
git status
“`

変更ファイルをステージング

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

ファイルの変更差分の確認

“`jsx
git diff
“`

ステージングしたファイルの差分確認

“`jsx
git diff –staged
“`

ステージングしたファイルを記録する

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

## コミット後の確認

コミット履歴の確認

“`
git log
**:qでlogの閲覧を終了する**
“`

コミット内容の確認

“`
git show [コミットID]
“`

コミット同士の差分を確認する

“`
git diff[コミットID]..[コミットID]
“`

ブランチ同士の差分の確認

“`
git diff [ブランチ名]..[

元記事を表示

【Laravel】git cloneしただけでは、php artisan serveできない

##この記事で書くこと
####git cloneした後、ブラウザに表示するまでに必要な手順
初めてgit cloneをした時、自分がローカル環境で作ったプロジェクトのようにいつも通り`php artisan serve`としてもブラウザには表示できず、えええ何でダメなの…??ってなりました。

手順は調べると簡単に出てきたけれど、composerやvendorディレクトリについてそもそも理解していなかったなと痛感しました。

今後もよく使う手順だと思うので、git cloneしてからphp artisan serveするまでの手順と、その仕組みを記録しておきます。

###手順の概要
1. [git cloneする](#git cloneする)
2. [vendorディレクトリを作る](#vendorディレクトリを作る)
3. [.envファイルを作る](#.envファイルを作る)
4. [アプリケーションキーを初期化する](#アプリケーションキーを初期化する)

####

##git cloneする
とりあえずgit cloneから始めます。

GitHubの「Clone or

元記事を表示

【Git】GitHubの新機能を初心者でも使えるか試してみた

#対象者

* Gitの新機能に関して知りたい方

#目的

* Gitの新機能を使ってみて自分の今後の開発に役立てること

#実際の手順と実例
###1.GitHubでリモートリポジトリを選択

自分はスクールで使用している本の投稿サイトを例に使ってみます。

自分のリモートリポジトリを開いて、、、
![スクリーンショット 2021-08-14 8.10.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1681213/96f478c9-d1fa-ed62-8c31-a569c6d32eef.png)

ここでドットを押すと、、、、

![スクリーンショット 2021-08-14 8.12.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1681213/2f22ea75-fad2-5761-8c76-b9aa4f5cceb6.png)

VSコードみたいなの出た!

###2.試しにREADMEファイルを

元記事を表示

[Github]git push origin master後、password入力後エラー(Authentication failed for~)

# はじめに
本記事では、`git push origin master後、password入力後のエラーについて`を記述します。

# 本題
## ターミナルにて

“`
% git push origin master
Username for ‘https://github.com’: ユーザー名
Password for ‘https://mkato1013@github.com’: パスワードを入れてみた
remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
fatal: Authentication failed for ‘https://

元記事を表示

【Git】git reset HEADでgit addしたファイルの変更を取り消そう

#はじめに
今回は、`git reset HEAD`について見ていきましょう。

#git reset HEAD
`git reset HEAD`コマンドを使うと、`git add`によってステージングされたファイルやディレクトリの変更を取り消すことができます。
具体的には、現在のブランチの直前のコミットの情報をもって、ステージのファイルやディレクトリを上書きすることで、変更を取り消していきます。
取り消されるのはあくまでステージのファイルやディレクトであって、ワークツリーのファイルやディレクトリの変更は取り消されません!!

“`git:ターミナル
git reset HEAD <ファイル名>or<ディレクトリ名>
git reset HEAD .
“`

このコマンドを実行すると、以下のような文が出力され、ステージを変更から取り消されたことが分かります。

“`git:ターミナル
Unstaged changes after reset:
M ファイル名
“`

前述したように、ワークツリーのファイルの変更は取り消されていないので、そっちの変更も取り消したいので

元記事を表示

【チーム開発の基礎】git pull でリモートリポジトリの最新内容を取り込んでから push する【初心者向け】

## こんな時どうしたらいいの? (業務上でのシチュエーション)

①私は、`feature/1`というブランチで`xxx`という機能を作る作業を進めていました。

②そこに上司のAさんが同じく`feature/1`というブランチにて、`yyy`という機能を作る開発をし始めました。

③Aさんは私よりも作業スピードが早いため先に`yyy`の機能の実装を終え、`”yyyを実装”`というコミットメッセージで`commit`し、リモートの`feature/1`に`push`しました。

④その後、`xxx`の実装が終わった私は、このまま`xxx`を`commit`+`push`したら`yyy`の機能はどうなるのだろう、、、
と不安になり、この場合の手順を上司に質問したので、それをまとめます。

## 作業手順

### ①`xxx`の実装が完了したら、まず普通にステージング(`add`)+コミット(`commit`)までを行う

“`bash
git add ファイル名
“`
“`bash
git commit -m “xxxを実装”
“`

※ここで流れで`push`してしまわな

元記事を表示

[git] git初期設定 gitのエディタをVSCodeにしたのにgit commitでエディタが開かない

##はじめに
僕は今までgithub desktopを使用していたので、gitとgithubの理解が浅く、コマンドでgitを使用したことも少なかったので、学び直しています。

その際、タイトルのようなことでつまづいたので記事に残しておきます。

##gitのエディタをVSCodeに設定
gitのエディタを設定する際に、私が参考にしていた教材はAtomというエディタを使用していた為に下記のコマンドで設定するように指示されていました。

“`terminal
$ git config –global core.editor “atom –wait”
“`

もし、他のエディタを使用するのであれば“`atom“`の部分を任意のものに変更するだけで良いと解説されていたので、VSCodeを使用していた僕は下記のように設定してしまいました。

“`terminal:間違えたコマンド
$ git config –global core.editor “visualstudiocode –wait”
“`

恥ずかしすぎます、、、
コマンド自体は通ります。ただ、“`visuals

元記事を表示

MinVerでお手軽にライブラリのバージョン番号の管理を行う

# はじめに

.NET で作成したライブラリを公開する場合、.csproj などでパッケージ名やバージョンの設定を行った後に特定のタグが付与されたことを契機に GitHub Actions などを使ってビルドしてパッケージリポジトリに Push することが多いと思います。この場合、.csproj と GIT のタグの両方でバージョンを設定する必要があります。

この記事では [MinVer](https://github.com/adamralph/minver) を使ってバージョン設定の負荷を軽減する方法について説明します。

# MinVer と MinVer のインストール

[MinVer](https://github.com/adamralph/minver) は有効な[セマンティックバージョニング](https://semver.org/spec/v2.0.0.html) のタグを付与すると、タグとコミットの深さをもとにバージョン番号を自動的に設定してくれるツールです。バージョン番号の推測は[ドキュメントのこの記載](https://github.com/adamral

元記事を表示

初心者がFlaskのアプリをHerokuでデプロイする

# 概要と目的
 はじめまして、プログラミング初心者です。プログラミングを学習する上で、何か成果物を残すのは大事なことです。なので私は`Python`の学習の成果物として、`Flask`を用いたWebアプリを制作しました。
 制作したWebアプリを公開しようという事で、無料サーバの`Heroku`と`Git`によるリポジトリ操作について学びました。色々なサイトを参考にしたのですが、所々つまづくことがあったので、自分用にまとめた記事を作ることにしました。

### 目的

– Flaskの簡単なアプリを作る
– ローカルな仮想環境でFlaskのアプリを動かす
– HerokuとGitでデプロイする

### 実行環境
– 日時:2021/09/26
– OS:windows10
– Python 3.9
– Flask 2.0.1
– pip 21.2.4

# ① FlaskでWebアプリを作る
 `Flask`と`Python`用の、軽量なウェブアプリケーションフレームワークです。同様のフレームワーク`Django`に比べて軽量で、最小限の機能で1から設計することが可能です。今回はサ

元記事を表示

OTHERカテゴリの最新記事