今さら聞けないGit 2022年01月19日

今さら聞けないGit 2022年01月19日

初回git push 時の「src refspec master does not match any」解決法

# エラー内容
新規アプリを作成し、pushした際に以下のエラーが出力された。

“`terminal
$ git push
error: src refspec master does not match any
error: failed to push some refs to ‘github.com:xxx/xxx.git’
“`

2行目が赤文字になっていたため、2行目を中心に調べていると、
– pullしてからmerge
– git pull –rebase

という解決策が出てくる。
これはリモートとローカルでコミットが分かれていて、マージできなくてrejectedされている状態の時のエラーの解決法である。
確かにこのエラーでも
「error: failed to push some refs to ‘github.com:xxx/xxx.git’」というエラーが出力されるため、2行目のエラー内容で調べると違うエラーの解決策にヒットしてしまう。

# 解決策
1行目の「error: src refspec master does not match any」で調

元記事を表示

Cloudflare PagesのGitクローン失敗( an internal error occurred)

「git リポジトリのクローンを作成しています」のタイミングで毎回失敗する

“`text
Initializing build environment. This may take up to a few minutes to complete
Success: Finished initializing build environment
Cloning repository…
Failed: an internal error occurred
“`

# ファイル数 or ファイルサイズが原因

[Cloudflare Pages “Failed due to an internal error”](https://community.cloudflare.com/t/cloudflare-pages-failed-due-to-an-internal-error/262234/16)によるとGitリポジトリの総ファイル数か個々のファイルサイズが制限を超えると発生する。

– 総ファイル数:最大20,000個
– 最大ファイルサイズ:25MB

[Limits · Cl

元記事を表示

GitHub Import a repositoryでパスワードを何度も聞かれて進まない

## Import a repositoryでログインを何度も迫られる

Githubでrepositoryを別のアカウントへコピーしたいとき、
『Import a repository』が便利に思えるが、

なぜか

“`
Your old project requires credentials for read-only access.
We will only temporarily store them for importing.
“`

というメッセージとともに
何度もログインを迫られてしまう。

「read権限のあるアカウントでログインしているのにな…」と不思議に思い
普段行っている`メールアドレス + パスワード` だけでなく
`ユーザー名 + パスワード` でもログインを試したが、変わらずログインを再度迫られてしまう。

## 解決方法は個人アクセストークンでのログイン

`ユーザー名 + 個人アクセストークン` を入力したところ
無事にインポートが開始された。

![スクリーンショット 2022-01-17 17.44.50.png](https://qi

元記事を表示

オンプレで使うgit操作方法まとめ(Windows版)

###はじめに

gitすら使わなかった人が今更になりますが、
githubに接続せず、
自分のPCだけでgitをつかう方法をまとめました 。

###環境

Windows 11 Pro
Git for Windows

###gitの操作

git bashを前提にしています。

###フォルダの移動

bashの場合は以下のようにドライブ名込みで指定します。

“`
cd /c/users/user/documents/c/
“`

####初期化

“`
git init
“`

####ファイルの追加

現在のフォルダのすべてのファイルを追加する。

“`
git add .
“`

####コミット

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

####更新履歴を1つ前に戻す

“`
git reset
“`

####更新履歴の確認

“`
git log
“`

####取り出したいブランチ(コミット)を選ぶ

“`
git switch -c [logで表示されるブランチ名]
“`

####ファイルと取り出す

元記事を表示

Gitの基本操作その1

##1.はじめに

今回から数回にわたって、Gitでコミットをするところまでを説明していきます。
予定としては、
1.ディレクトリの作成
2.リポジトリの作成
3.ファイルの作成・編集
4.ファイルをステージに入れる
5.ステージの内容をコミット
という流れになります。今回は「1.ディレクトリの作成」について書いていきます。

##2.ディレクトリの作成

Gitを起動したら、任意の場所に移動してディレクトリを作成します。
ディレクトリを作成するコードは、以下の通りです。

“`
$ mkdir git001
“`
このコードを入力することで、ディレクトリが作成できます。

##3.ディレクトリ間の移動

先ほど、「任意の場所に移動してディレクトリを作成します」と説明しましたが、この記事を読んでいる方の中には、「ディレクトリの移動ってどうすればいいの?」と疑問に思った読者もいると思いましたので、ここでディレクトリ間を移動するコマンドを以下にいくつか紹介させていただきます。

“`:現在のユーザーのホームディレクトリへ移動①
$ cd
“`

“`:現在のユーザーのホ

元記事を表示

ConoHa VPSで複数サイト(今回はlaravel )を管理する

# ConoHaで複数サイトを管理する手順

## 初めに
既にVPSサーバーを持っているので他のサーバーを借りるとお金がかかるのでポート番号を解放して公開したい
スクールでやったけど言われるがままだったので改めて学習。今回はLaravelのプロジェクトを公開したい。
全体的に以下記事を参考
https://qiita.com/ChairoHack/items/06a2e1357b646acb41c7

## ポートを解放

“`sh
ssh root@kazpp.com
#ssh接続

cd /etc/httpd/conf
vi httpd.conf
#ポート番号の8081を今回対象にしたいので以下の内容を追加

Listen 8081

ServerName 118.27.14.189
DocumentRoot /home/kazuki/laravelpractice
ErrorLog “logs/wordpress.com-error_log”
CustomLog “logs/wordpress.com-access_log” c

元記事を表示

remote: HTTP Basic: Access denied fatal:Authentication failed for エラー

#概要
開発環境のgitをsoucetreeにクローンしてきて、プッシュしようとした際にタイトルのエラーが発生しました。

エラー文を見るに認証がうまくいってないようなのですが、とりあえずエラー文コピペで検索していると認証情報の削除を推奨している記事が多かったです。
今回はその対応で解決できなかった方のために。

#原因
自分の場合はsoucetreeに登録しているリモートリポジトリのパスが異なっていることが原因でした。
初歩的過ぎて、記事が無かっただけかもしれません…。

#対処
soucetreeのリモートリポジトリを正常なパスに修正します。
右上にある設定からパスを選択して、編集してください。
自分の場合は「https〜」になっていたところを「git@〜」に修正しました。
![スクリーンショット 2022-01-16 15.29.02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1340120/75834c59-f4c4-ae17-64ae-190fcbc5616e.png)

元記事を表示

Git ローカルの作業コピーを他のブランチと比較するコマンド(メモ)

test-branchというブランチで作業していて、その中のtest.txtをmasterのtest.txtと比較する、という場合

“`shell
git diff master — test.txt
git difftool master — test.txt
“`

作業コピーではなく、ブランチ間の最新のコミット同士を比較する場合

“`shell
git diff master..test-branch — test.txt
git difftool master..test-branch — test.txt
“`

git difftoolで起動するdiffツールの設定
WinMergeの場合は

“`shell
git config –global diff.tool winmerge
“`

元記事を表示

windows git bash ssh接続

# はじめ
リモートとやりとりするときにパスワード入力は面倒なのでssh通信しようと思ったとき皆もよく忘れる例の手順を適当に書く

# てじゅん

git bash起動

.sshディレクトリを作成

“`
$ mkdir .ssh
“`

id_githubという鍵を生成

“`
$ ssh-keygen -t id_github -C “your_emai@example.com”
“`

SSHエージェントが起動してるか確認

“`
$ eval “$(ssh-agent -s)”
“`

起動してたら、SSHエージェントに登録

“`
$ ssh-add id_github
“`

公開キーをコピー

“`
$ clip < ~/.ssh/id_github.pub ``` GithubのSettings/SSH and GPG keysのAdd SSH keyをクリックして、コピーした公開キーを登録 登録がうまくいっていれば成功メッセージが返ってくる ``` $ ssh -T git@github.com Hi youname! ... succes

元記事を表示

【重要】.envファイルをgitignoreでgitの管理対象から外したい

# 目的
AWSのアクセスキーなどをenvファイルなどに直接書き込んでいると簡単にそのキーを利用してS3を不正利用され、高額請求されるというケースがよくある。

作成していたdjangorestframeworkのAPIをデプロイするにあたって、この問題を避けるためにenvファイルをgitignoreを使ってgitの管理対象から外そうと思う。

# 問題発生
調べた通りにgitignoreに.envを無視するように記述するも、githubのGUIをみると.envが残っている!!!!!

gitignoreファイル↓

“`
/.env
“`

envファイル↓

“`.env
# SECRET_KEY=xxxxxxxxxxxxxxx
# AWS Settings
# DJANGO_AWS_S3_BUCKET_NAME=huga-storage
# DJANGO_AWS_ACCESS_KEY=xxxxxxxxxxxxxxxxxx
# DJANGO_AWS_SECRET_KEY=xxxxxxxxxxxxxxxxxx
“`
# 解決策
実はこれまでに.envをすでにpushしていたた

元記事を表示

GitHubのデフォルトのブランチ名変更方法

# デフォルトのブランチ名を何故変更しようとしたのか
2021年からGitHubのデフォルトブランチが”master”から”main”に変更されたはずでしたが、何故か私のアカウントでは新規のリポジトリのデフォルトブランチが未だに”master”のままだったので自力で変更しました。

# デフォルトブランチ名変更の経緯
https://sfconservancy.org/news/2020/jun/23/gitbranchname/

# デフォルトブランチ設定箇所
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1336886/f302a7c9-9d0b-7423-e8c7-277bf2dbba0e.png)

元記事を表示

【Git】マージ

# 【Git】マージ

# 【基本のマージ ~ プルリクエスト】
**環境** : visual studio 2019 professional

““
① 「ローカルブランチのfeature(ワーキングツリー)」を「git commit」する。
「git push」は、まだしない事。

② 「origin/master」ブランチを、「git fetch + git merge」or 「git pull」する。
(最新化する)

③ 「origin/master」ブランチ(元)を、「ローカルブランチのfeature」へマージする。

④ 「競合を解決する」
「ファイル比較」:差分を確認する。
「左右どちらか」 or 「左右両方」を、選択する。
「マージボタン押下」
※上手くいかない時は、「WinMerge」など使うこと。

⑤ VS再起動

⑥ 「ビルドされること(動作確認)」を確認したら、「git push」する。

⑦ 【プルリクエスト】
「プルリクエスト先」のブランチを確認すること。
““
– (※) VSでは、「プロ

元記事を表示

【Gitコマンド】

# 【Gitコマンド】

## 【現在のブランチ】は、「どこ?」
““
「ブランチ情報」を確認する。
$ git status

「ブランチと追跡情報」を確認する。
$ git status -sb

「ブランチのコミット履歴」を確認する。
$ git log
““

## 【スタッシュ】
““
「スタッシュのリスト」を確認する。
$ git stash list

「スタッシュ」を実行する。
$ git stash save ” {コメント} ” -u
// -u は –include-untracked の略。
//「コミットしていない変更」の(「addしたファイル」・「addしていないファイル」の両方)「変更した部分」が退避されます。
//「ワーキングディレクトリ上」は差分がない状態。

「スタッシュを元に戻す」: 直近のスタッシュ(一番上)が戻る。
$ git stash apply

「スタッシュを元に戻す」: 指定バージョンが」戻る。
$ git stash apply stash@{0}

「スタッシュを削除する」
$ git stash drop

元記事を表示

gitのcommit数を簡単に集計する方法

## はじめに

メンバーの評価まわりをする背景から、ふとgitのcommitを人単位で集計したくなったことがありました。

* 誰がどれくらいcommitしているのか
* 対象期間(評価期間)に1番commitしてるのは誰なのか
* このリポジトリに関して1番詳しいのは誰なのか

集計することでこのあたりが知れるようになります。

## コマンド

“`
git shortlog -nse
“`

gitに既に用意されていました。
オプション指定なしだとアルファベット順に表示されます。
-n: コミット数多い順
-s: コミット数のみ表示
-e: メアドも表示

期間指定は以下の通りです。

“`
# 直近半年の間でコミットの多い人を調べる
git shortlog -nse –since=”6 month ago”

# 2021年でコミット数が多い人を調べる
git shortlog -nse –since=”2021-01-01″ –until=”2021-12-31″
“`

“`:実行結果例
コミット数 人
5000 hoge
4000 foo
3000

元記事を表示

github ssh接続【備忘録】

①ファイル名を作成する
(ローカルのMAMP上にファイルを作成する場合)
②git上に【任意の名称の】リモートリポジトリを作成する
③ローカルのファイルにgitを以下のコマンドを打って生成する。
git init
④ローカルのgit とリモートのgit を以下のコマンドで連携させる。
git config –local user.name 【自分のgithubユーザー名】
git config –local user.email 【自分のgithubメールアドレス】
⑤ssh方式で連携する場合は、ローカルの.sshにキーを以下のコマンドで生成する。
mk.ssh
cd .ssh
で、sshファイルの中に入る。
ssh-keygen -t rsa
の次に、リモートリポジトリの名称を入れ込んで決定ボタンを押す。
⑥sshファイルのconfigファイルを開いて、.pubの内容をコピーする。(configがない場合は作成する)
⑦gitの公開キーをsettings→SSH and GPC keysに登録を行う。
⑧sshファイル内にあるconfigファイルを編集する
Host 【リポジ

元記事を表示

VSCodeで複数のコンフリクトを一括で解消する

## 概要
VSCodeを使えばとても簡単に gitのコンフリクトを解消することができます。
[開発現場でよく使うGit コマンドシリーズ](https://qiita.com/takuyanagai0213/items/216dbc1a62b76d4e627b) の [VSCodeにてコンフリクトを解消する](https://qiita.com/takuyanagai0213/items/216dbc1a62b76d4e627b#vscode%E3%81%AB%E3%81%A6%E3%82%B3%E3%83%B3%E3%83%95%E3%83%AA%E3%82%AF%E3%83%88%E3%82%92%E8%A7%A3%E6%B6%88%E3%81%99%E3%82%8B) にあるように、ワンクリックです。

本記事では、VSCodeを使って**複数のコンフリクト**および**複数ファイルのコンフリクト**を一括で解消する方法について取り上げます。

## 複数のコンフリクトを一括で解消する
Merge Conflictを使用します。

対象のファイルを選択した状態で、コマンドパレッ

元記事を表示

Gitコマンド&ノウハウ<中級編>

#導入〜ご挨拶〜
こんにちは、ハルです

私事ですが先日、Git(Github)を学び直しました。
その際、メモとして書いたものを連携しようと思います。
※あくまで本人視点で記述しているので大衆向けではないです。

因みに、コメント(所感)も添えました。
復習、もしくは興味本位(こんなこともできるんだ)で見てもらえたら恐縮です。

#1.Git_コマンド編
##1.1. ワークツリーの変更を取り消す
“`
#ワークツリーのファイル変更を取り消す
git checkout — <ファイル名>

#ローカルリポジトリのディレクトリ変更を取り消す
git checkout — <ディレクトリ名>

#全てのワークツリーの変更を取り消す
#git checkout — .
“`

【コメント】

ワークツリーでの作業は上記のコマンで取り消せます。
「コードを修正・変更したけど、上手くいかない。一旦、仕切り直ししたい!」って方にはピッタリですね。
ただし、一旦「add」してしまった場合は上記のやり方では取り消せません!
上記のコマンドは「ステージ領域にあるデータを取得し

元記事を表示

[git blame] ファイルを誰がいつ更新したか調べる

次のコマンドで、指定したファイルを誰がいつ更新したか調べることができる。
“`git blame {filename}“`

例)

“`
git blame feature.txt
C:\workspace\01_Project\34_gittest_clone\gittest>git blame feature.txt
fe135f73 (jeronimo34 2022-01-11 00:01:55 +0900 1) “great feature”
“`

元記事を表示

gitのデフォルトブランチ名がconfigに記述しても変更されない!

# はじめに
昨日投稿した以下の記事で「そのうち書こうかな」と言っていたやつです。
gitのデフォルトブランチ名を変えたのに、なぜか`git init`してもブランチがmasterで作成されて困ったという話。

https://qiita.com/devtoku/items/9fd4f135488420a10f4f

# 原因
**gitのバージョンが古いことが原因でした。恥ずかしい。**
どうもconfigでdefaultbranchの名前を変えられる昨日は、バージョン2.28から追加されたようです。
自分のgitのバージョンを調べてみたところ、見事に古いバージョンのものでした。
gitのバージョンを調べるコマンドは以下のとおり。

“`
git version

#gitのバージョンが表示されます
git version 2.XX.X
“`

# 解決方法
### gitの更新
リポジトリをOSに追加する方法でgitをインストールしてた人は多分`apt update` `apt upgrade`で更新できてたと思うけど、自分はなぜかgitのリポジトリが追加されてなかった(多分直

元記事を表示

そのオープンソースプロジェクト、公開前に大事な情報コミットしてない?

通常、秘密鍵やAPI Tokenはソースコードとは分離させ、.envファイルなどに保存しておいて、Gitのコミットには含めない。しかし、実装の初期には.envを一時的にコミットに含めている事例も珍しくない。それを後で削除してコミットしても、履歴としては残っている。

この記事では、スマートコントラクト用の秘密鍵や、APIトークンなどの情報をGitのコミット履歴から検索し、リポジトリを公開する前に安全を確認できるツールを紹介する。

##コミット履歴を展開する
私の作ったesightというツールを使う。

https://github.com/TakutoYoshikai/elemental-sight

git logを使って確認するのが一般的だが、一度全て展開した方が、後の編集や確認が楽になる。

**インストール**

“`bash
pip3 install git+https://github.com/TakutoYoshikai/elemental-sight.git
“`

**コミット履歴の展開**

出力先ディレクトリに、全てのコミットの差分ファイルが展開される

元記事を表示

OTHERカテゴリの最新記事