今さら聞けないGit 

今さら聞けないGit 
目次

gitエラー:Updates were rejected because the remote contains work that you do not have locally.

# はじめに

qiita-cli を使って qiita の記事投稿を Github 管理しているのですが、新しい記事を書いて「よし、投稿しよー」と思い、コミット&プッシュを実施したところ、git のほうで reject(拒否)されました。

エラー内容はこんな感じ

“`
$ git push
To github.com:{username}/{repository-name}.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to ‘github.com:{username}/{repository-name}.git’
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref.

元記事を表示

【備忘録】GitHubのレポを新規プロジェクトとしてClone(fork)するやり方の備忘録

## 既存のプロジェクトを再利用して新規プロジェクトの叩き台にする
色々とプロジェクトやアプリの破片を作ってはGitHubに保存してきたのですが、たまにそれに手を加えて新しいプロジェクトとして作り直したいなあという事がよくあり、クローンの手順を踏むのですが、よく手順を忘れるのでここに備忘ログ。Firebaseをよく使うので、Firebaseプロジェクトのクローン手順。
### 1、下準備
– ローカルに新しいプロジェクト用のディレクトリを作る
– Firebase上に新しいプロジェクトを作る
– GitHub上に新しいプロジェクト用のリポを作る

### 2、GitHubから既存のリポをローカルにクローンする
作っておいたローカルのディレクトリに移動し
“`terminal
cd path/to/your/directory
“`
リポをクローンする
“`terminal
git clone https://github.com/username/repository-name.git
“`
package.jsonのname/version/description などを新し

元記事を表示

rebaseでコミット履歴を整理する方法

# はじめに

こんにちは!
社会人一年目の石川です。
記事をご覧いただきありがとうございます。

本記事では、リモートのブランチをローカルにrebaseし、コミット履歴を整理する操作を行ったので、その具体的な方法についてまとめます。

## 目次
1. [rebaseの使い方](#rebaseの使い方)
1. [リモートのトピックブランチをrebaseする](#リモートのトピックブランチをrebaseする)
1. [rebase -i コマンド](#rebase–i-コマンド)
4. [最後に](#最後に)

## rebaseの使い方
Gitのrebaseコマンドは、コミット履歴を整理するための強力なツールです。特にPRを出した後、不要なコミットが混じってしまったときに、rebaseを使って履歴をきれいにすることができます。

まず、rebaseの基本的な使い方を説明します。rebaseは、指定したブランチやコミットから現在のブランチまでの履歴を、他のブランチに適用することで、内容を上書きするコマンドです。

## リモートのトピックブランチをrebaseする

まずは、リモ

元記事を表示

人からもらったbatファイルがうまく動かない!?よくあるパターンと解決策

## はじめに
皆さんは人からもらったbatファイルがうまく動かなかったり、人に渡したbatファイルが動かないといわれた経験はありませんか?
こういった現象にはいくつか原因がありますが、今回は一番よく起こるパターンの原因・対策を紹介します!

## よくあるパターン
同期や友達の間で起こっているのを見かけたことが何度かありますが、
最も多かった原因は「改行コードがLFになっている」というパターンです。

## 原因
Windowsで動作するbatファイルにはルールがあり
– 改行コードがCRLFであること
– 文字コードがShift-JISであること(日本語を含む場合)
といったルールがあります。
文字コードは最悪文字化けするだけなのでまだましですが、改行コードを誤ると正常な動作をしなくなる場合があります。
そのため人にあげたbatが動作不調の場合は改行コードをまず疑ってみてください!
## どういったシチュエーションで発生するの?(余談)
あるあるで行くとgitです、gitはLinuxベースのため特に設定を変更していない場合はプッシュの際に自動的に改行コードがLFに変換されます。

元記事を表示

git cloneでは取得できなかったブランチをgit checkoutでまとめて取得。

このGitHubのリポジトリは、ある技術本のサンプルです。

https://github.com/PacktPublishing/Building-Production-Grade-Web-Applications-with-Supabase

ただし、これを開くと
LICENSE
README.md
だけで、ソースコードがmainブランチにありません。

このリポジトリは、mainブランチ以外のブランチに章ごと分けてサンプルが入っています。

素直に`git clone`をしても、これではmainだけをcloneして、その他のブランチは取得できません。

それぞれの章を取得するには、一つ一つ git checkoutをする必要があります。

サンプルは章ごとにあるので、何回もやるのは面倒なのでAIに聞きつつ、まとめて取得するスクリプトを書いて貰いました。

## Windows版

リモートも含めたすべてのブランチ名の取得、確認
“`terminal
git branch -a
“`

すべてのリポジトリをまとめて取得。
“`terminal
$branches = git

元記事を表示

128日目 Gitを多用するようになった社畜M

## ♠はじめに
こんにちは、社畜Mだぜ。
最近やっていることがGitを多用することが多いからここでGitで利用される単語を教えていくぜ!ぶっちゃけ初心者向けになるがそこは気にするなだぜ!いいな?
さぁ、行くぜ!!!

**デュエル!**
## ♠まずGitとは
俺のターン!になる前に、そもそもGitとは何なのかを軽くおさらいしていくぜ!
Gitってのは簡単に言っちまえばファイルやコードの変更履歴を管理するツールだぜ。**バージョン管理システム**ともいえるな。

### ❤バージョン管理システムとは?
バージョン管理システムってのはプロジェクト進行に伴って行われる変更を記録し、後からその変更を確認、または変更前に戻せる仕組みだぜ。必要に応じて過去のバージョンに戻せるぜ。

### ❤Gitの特徴
次はGitの特徴についてだぜ
Gitは分散型のバージョン管理システムであり、各ユーザーが自分のコンピュータ上でファイルやコードの変更履歴を管理し、ブランチを利用して新機能の開発や作業を分岐させ、複数のブランチで行った作業をマージすることで統合できるのが特徴だぜ。

## ♠使うGitの機能一

元記事を表示

WindowsでGitコマンド補完を有効にする方法

# はじめに
 WindowsのPowerShellで、Gitコマンドの補完を有効にする方法を紹介する。Visual Studio CodeのターミナルでもGit補完が有効となる。

# 動作確認環境

* Windows 10 64bit
* PowerShell

# 方法
 Git自体は既に導入されているものとする。Gitは、[インストーラ](https://git-scm.com/downloads)から簡単に導入可能。
 Git補完するために、[posh-git](https://github.com/dahlbyk/posh-git)というツールを利用する。posh-gitは、PowerShellでGit補完を有効にするためのツールである。

1. 管理者権限でPowerShellを開く
2. 下記コマンドでposh-gitをインストールする
現在のユーザのみインストールする場合
“`powershell
Install-Module posh-git -Scope CurrentUser -Force
“`
3. PowerShellの

元記事を表示

GitHubでできることって何?

Githubについて知らない人はこちらの記事を見てみるといいかもしれません。

【初心者向け】GitHubの使い方を8ステップでわかりやすく解説

元記事を表示

Windowsのgitコマンドで(ssh-agentをサービス起動しているのに)毎回パスフレーズを聞かれる対策

## 一言で
「Windows内に ssh.exeが複数ある時は注意だ!」

## はじめに
「sshでサーバーに入るときはパスフレーズ覚えていてくれるのに、ssh経由でgit pushしようとすると毎回パスフレーズきかれて面倒……」というそこのあなた!

ネットで検索して、“`.ssh/config“`や sshの引数で“`-i secret_key“`をつけたけど全然効果がなかったそこのあなた!

もしかして鍵ファイルの形式が問題なのかと ecdsaや ed25519や、はたまた rsaに戻って鍵ファイルを作り直してはサーバー側に設定してもダメで困り果てたそこのあなた!

……全部わたしだ!!

というわけで、もしかしてこれで対処できるかもしれません

## 原因
 単純に、普段つかっている ssh.exeと、gitが呼び出している ssh.exeが別物かもしれません。ですので、フルパスで指定します。

“`cmd.exe
git config –global core.sshCommand “C:\\Windows\\System32\\OpenSSH\\ssh.e

元記事を表示

push後にgithubのauthorとcommiterを変更する方法

夫婦でMacBookを共有しており、設定など全て夫が行っているため、あらゆる権限が夫で設定されています。

そのため、ターミナル経由でgitへcommit&pushした際にauthorとcommiterに夫のフルネームが表示されてしまっていました。

commit&push後でしたが、authorとcommiter名を変更して修正しました。

## authorとcommiterの変更

ターミナルに下記全てをコピペ。
“`
% git filter-branch –env-filter ‘
OLD_EMAIL=”old@example.com”
CORRECT_NAME=”Your Correct Name”
CORRECT_EMAIL=”new@example.com”

if [ “$GIT_COMMITTER_EMAIL” = “$OLD_EMAIL” ]
then
export GIT_COMMITTER_NAME=”$CORRECT_NAME”
export GIT_COMMITTER_EMAIL=”$CORRECT_EMAIL”
fi
if [ “$G

元記事を表示

GIT初心者のGIT入門 とおまけ

やったことを自分なりにメモしたりまとめたりしてみたものをのせます
走りメモのようなところもあるので、わかりづらい箇所あらばご容赦下さい。

# 事前準備
VS CODE入れる

# 考え方
リモート Github (リポジトリサーバー) ←こっちが本体
 ↓まるまる持ってくる
ローカル Git (自分のPC上) ←開発は基本こっちでやる

(リモートで作業するパターンと、ローカルでやるパターン、どっちもできはする)

リモートはWebサイト(ブラウザ上)でやる制約がある

# git 使うコマンド
`git clone`
1回目のリモート⇒ローカルに丸々もってくることを Clone と言う
(一番最初しか使わない ・リポジトリから落とす)

`git pull`
予めCloneしているものを落とすこと。

`git push`
ソースコードあげといて、プッシュ。

# ブランチの考え方(コミット、プッシュ、マージ)
開発は複数人でやることになる
そのままやると競合とかでグチャグチャにならないの?

回避策で ブランチ (branch) がある

例えば作業者 Aさん、

元記事を表示

変更があったディレクトリで pre-commit を実行する

1つのリポジトリで複数のサービスやパッケージを作っているときに、ディレクトリごとの環境でリントとかしたいですよね

探したら
https://blog.physalis.net/2021/git-hooks-dispatch
とかあったんですけど、余計な依存無しに、 git や シェルスクリプトだけで完結したかったので、雑に作りました

“`bash
#!/bin/sh

files_changed=$(git diff –cached –name-only)
dirs_changed=()
for file in ${files_changed[@]}; do
_dir=$(echo $file | sed ‘s/\/.*//’)
dirs_changed+=($_dir)
done

dirs_unique=($(echo “${dirs_changed[@]}” | tr ‘ ‘ ‘\n’ | sort -u | tr ‘\n’ ‘ ‘))

if [ ${#dirs_unique[@]} -eq 0 ]; then
echo “No directories t

元記事を表示

GitHubに空のリポジトリを登録後に初めてローカルからプッシュを行うときに上手くいかなかった際の解決方法

## 現象
1.GitHubサイト上で空のリポジトリを作成した。

2.リモートリポジトリを追加した。
“`
$ git remote add origin https://github.com/ユーザー名/○○○.git
“`

3.上記で作成したリポジトリにpushを行ったが、エラーとなった。
“`
$ git push origin <リポジトリ>
remote: Invalid username or password.
fatal: Authentication failed for ‘https://github.com/ユーザー名/○○○.git/’
“`

## 解決策
1.ユーザー名とメールアドレスの設定を忘れていた。
“`
$ git config –global user.name <ユーザー名>
$ git config –global user.email <メールアドレス>
“`

2.もう一度pushを行ったがエラーとなった。
“`
$ git push origin <リポジトリ>
remote: Support for passwor

元記事を表示

GitHubでリポジトリを作成後、pushするまでの手順

## 概要
GitHubでリポジトリを作成してから、`git push`するまでの流れを備忘録として残す。
## 手順
1. GitHubで作成したpushしたいリポジトリを開いてください
2. 「Code」ボタンをクリックしてください
3. cloneするためのURLおよびSSHがあるので、コピーしてください
4. ターミナルに移動し、`git clone [URL]`をしてください
5. その後、コードを変更した場合は`git add ‘ファイルのパス’`を実行後、`git commit -m ‘コミットメッセージ’`をしてください
6. 最後に`git push`をすれば、完了です

## 最後に
ここまで読んでくださりありがとうございます。
今更ですが、リポジトリを作成してから`git push`するまでの流れについて度々調べることがあったので、記事にまとめました笑
この記事が誰かの役に立ってくれれば嬉しいです。
## 参考資料
– [【メモ】GitHubでgit clone〜git pushまで](https://qiita.com/nt-7/items/c5ea999a26

元記事を表示

GitHub の PR で編集されていない箇所にレビューコメントしたかった

## 概要

GitHub の PR で編集されていない箇所にレビューコメントしたかったのですが、どうしてもできなかったため代替策を記録しておきます。

## 課題

GitHub で コードレビューをしていると、その PR 内で編集されていない箇所にコメントしたいことがあります。ですが PR では編集された近辺の行にしかコメントを追加できません。

![1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3852183/7a6eb31b-da42-d29c-b436-d7469e23f8dc.png)
*コード編集箇所とその近辺では、青い+マークが表示される*

![2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3852183/79a6779f-a553-9810-903a-9051beaa3105.png)
*+マークをクリックし、コメントを追加する*

![3.png](https://qiita-image-

元記事を表示

GitHub の Saved Replies でコードレビューに心理的安全性を!

## はじめに

コードレビューをする際に、「個人の好みかなぁ」というコメントを付けるのをためらったことはありませんか?レビュイーに正しく意図を伝えて心理的安全性を高めたいと思い、Saved Replies を使ってコメント種別をつけることにしました。

## コメント種別

|略語|意味|説明|
|—-|—-|—-|
|MUST|必須:Must|修正されないとApproveできません。修正のアクションが必要です。|
|IMO|提案:In My Opinion|個人的な見解や軽微な提案です。タスク化や修正等のアクションが必要です。|
|Q|質問:Question|質問です。回答のアクションが必要です。|
|NR|お手すきで:No Rush|不急なので今やるかはおまかせします。タスク化や修正等のアクションが必要です。|
|NITS|あらさがし:Nitpick|重箱の隅をつつく提案です。やってもいいがやらなくてもよいです。アクションは不要です。|
|FYI|参考までに:For Your Information|参考までに共有します。アクションは不要です。|

## Saved

元記事を表示

【git】リモートブランチで更新かけてローカルブランチでコミットしてプッシュしたら・・・

## はじめに
gitでかなり横着したら少しハマった・・・
リモートブランチでREADME.mdをgithub上から更新をかけて、
そのことを忘れていて普通にローカルブランチで作業してコミットしてプッシュしようとしたらgitにプッシュできないと怒られた。

“`ブランチ関係.txt
develop -> origin develop
“`
これをリモートブランチの更新をローカルブランチに取り込みつつローカルブランチのコミットも維持してリモートブランチを更新する方法を備忘録として残しておく。

## エラー内容
“`error.txt
From https://github.com/sample/hogehoge * branch develop -> FETCH_HEAD
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before

元記事を表示

【git】バッファ不足でgitに怒られた話

## はじめに
いつも通りローカルブランチで作業して変更を確定してプッシュしようとしたらgitに怒られた。
画像等のファイルで一度にプッシュするファイルが大量になってバッファが足りなかったみたいだ。
びっくりした。
自分用の備忘録として残しておく。

## エラー内容
“`error.txt
www-data@www-datanoMacBook-Air sample % git push origin develop
Enumerating objects: 105, done.
Counting objects: 100% (86/86), done.
Delta compression using up to 8 threads
Compressing objects: 100% (59/59), done.
error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
send-pack: unexpected disconnect while reading sideband packet

元記事を表示

AWS Amplify 入門:機能解説、メリットと注意点

# 1. はじめに
Nuxt.jsを容易にデプロイしてインフラ運用の負荷を削減したいので、AWS Amplifyを導入することが決まりました。
Amplifyは、GitHubと連携でき、pushするたびに自動でデプロイしてくれるため、非常に便利です。
ただ、インフラ運用の負荷がないとはいっても、どのような仕組みなのかを理解する必要があるため、調査しました。

# 2. Amplify 日本ユーザーグループ / 導入事例
Amplifyに関するサイトがまとまってるため、とても参考になります。

https://aws-amplify-jp.github.io/resources/

導入事例も参考になるかもしれないです。

https://aws.amazon.com/jp/solutions/case-studies/?customer-references-cards.sort-by=item.additionalFields.sortDate&customer-references-cards.sort-order=desc&awsf.customer-references-loc

元記事を表示

【備忘】gitの退避にはgit stash pushが良さそう

# はじめに

git で現在の作業を退避(stash)するとき、
今までは `$ git stash -u` や `git stash save {コメント}`を使っていました。

しかしながら、退避コメント付与したい時や特定ファイルのみ退避したいときに、
オプションを忘れてググったり、うまくできずに手間取ることがよくありました。

そんな中、`git stash push`というコマンドがあることを最近知り、
結構便利に感じたので自分用の備忘もかねて紹介します。

# 使い方

## 一番使う退避コマンド

個人的には、今後退避時はこのコマンドだけ使うことになりそうです。

“`bash
# 退避対象ファイルをgitステージしておく
$ git stash push -m {コメントをここに} -S
“`

## 少し詳しく

これだけだと寂しいので(自分もオプションの意味とか忘れそう)、
`git stash push`の使い方を少し説明します。

### 基本文法

“`bash
# 追跡済みのファイル と ステージ済みのファイルを 退避
$ git stash pus

元記事を表示

OTHERカテゴリの最新記事