今さら聞けないGit 2022年02月09日

今さら聞けないGit 2022年02月09日
目次

error: failed to push some refs to “URL”が治らない….

#Herokuを用いたデプロイ時のエラー原因が、「メインブランチ以外で作業を行なっていたこと」だった件 チーム開発でGithubを用いながらWebアプリケーションの開発を行なっていた時に行き詰まってしまったエラーを共有します ###状況 Ruby on Railsで作成したアプリケーションをherokuにデプロイしたい!! “`:terminal voclabs:~/environment/railsアプリ名 (testbranch) $ git push heroku main “` Herokuを用いてRailsのアプリケーションをデプロイするときに何回やっても下記のようなエラーが出てしまう “`:terminal ! [rejected] main -> main (non-fast-forward) error: failed to push some refs to ‘URL’ hint: Updates were rejected because a pushed branch tip is behind its remote hint: c
元記事を表示

`git pull`でエラーが消えない

# 現象 “` fatal: credential-cache unavailable; no unix socket support “` # 対策 “` git config -l –show-origin “` で設定を見直す # 参考 https://stackoverflow.com/questions/67951554/error-fatal-credential-cache-unavailable-no-unix-socket-support/67951650#67951650
元記事を表示

windowsでのraspipicoの開発環境の構築 その2

### windowsでのraspipicoの開発(続) #### 汎用的なプロジェクト構成を構築 下記の記事で行った環境を使って、より汎用的なプロジェクト構成を構築する。 https://elehobby.hatenablog.jp/entry/2022/01/17/234156 pico-sdkをサブモジュールとして追加し、クローンする。 一つのプロジェクトで完結して構成するため、よりプロジェクト全体を理解しやすくなる。 git submoduleの説明は下記の記事を参考にした。 端的に言うと下記の通り。 > 外部の git リポジトリを、自分の git リポジトリのサブディレクトリとして登録し、特定の commit を参照する仕組みです。 https://qiita.com/sotarok/items/0d525e568a6088f6f6bb また、ビルド結果は「out of source ビルド」の考えをもとにbinフォルダに生成する。 https://qiita.com/osamu0329/items/7de2b190df3cfb4ad0ca 生成ファル
元記事を表示

【git】一時退避する方法(メモ)

“` git stash save “message” -u “` 参考[【git stash】コミットはせずに変更を退避したいとき](https://qiita.com/chihiro/items/f373873d5c2dfbd03250)
元記事を表示

git cloneをする時に任意のブランチを指定する方法

#git cloneをするときにブランチをしていする方法 git cloneをするときに、開発中のソースを落とすことができず、 事象を確認したところ、開発時は「develop」ブランチで作業を行っていたが、 git cloneで落としたソースは「master」ブランチであったことが判明。 事象が分かったところでgit clone時にブランチを指定する方法を調べた。 下記のコマンドでブランチを指定してcloneすることができる “` git clone -b [ブランチ名] [リポジトリのアドレス] “`
元記事を表示

git pushしたファイルをローカルに残しつつgit管理から外したい

タイトル通り、git pushしたファイルを「git管理から外したい、でもローカルには残したい」場合の手順です。 再現手順も掲載しています。 挙動を深掘りしたい場合はご自分で検証してみてください! # これだけでOK 手短に実行コマンドのみ紹介します。 ## ファイル構成 ファイルは両方とも一度コミットされた状態です。 “test2.txt“をgit管理から除外します。 “`bash $ tree . ├── test1.txt └── test2.txt “` ## .gitignoreの作成 “`bash $ echo “test2.txt” >> .gitignore “` ## ローカルに残しつつgit管理から除外 “`bash $ git rm –cached test2.txt “` ## コミット “`bash $ git add . $ git commit -m “test2 ignore” “` ## プッシュ “`bash $ git push “` ## 実行結果 ローカルではtest2.txtのファイル自体
元記事を表示

マージ済みのブランチを対話式で削除するgitサブコマンド(dansyari)を作ってみた

# こんなもの作った – マージ済みのブランチを対話式で削除するgitサブコマンド `git dansyari` ![git-dansyari.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50690/854b8aa0-c048-021b-390a-a422ebb549a8.gif) https://github.com/kuredev/git-dansyari # 動機 – 前はこちらの[git curate](https://github.com/matt-harvey/git_curate)を使わせてもらっていたのだが、Ruby/Native Extensionで動いており、環境を変えたときにコンパイルがさくっと通らずに入れるのが面倒になってしまったのでもっと簡単に動作するものが欲しかった – 今回はシェルスクリプトのみで動くものを作った – 機能的にもブランチを消すだけでよかったので、削除の確認だけの対話式のスクリプトとした # インストール、使い方 – [このリポジトリ](h
元記事を表示

“git fetch origin”と “git fetch origin master” の違い

知っている人も多いだろうが、新卒の備忘録として残しておく。 – git pull origin master (Aブランチで実行) – リモートのmasterブランチをローカルのAブランチにマージする – 言い換えると、最新のリモートのmasterブランチを持ってくる – その際に、リモートの他のブランチの情報は持ってこない – git fetch origin master && git merge origin/master (Aブランチで実行) – git fetch origin master – リモートのmasterブランチの変更だけをローカルにダウンロード(マージはされていない) – git merge origin/master – リモートのorigin/masterをローカルのAブランチにマージ – ここで初めてリモートの最新情報を持ってこれる – git fetch origin && git merge origin/master (Aブランチ
元記事を表示

node_modules/ を間違って git に登録した後で、やっぱり除外する

.gitignore 内でタイポしていて、node_modules/ を間違って git に登録した後で、やっぱり除外する時のやり方。 ## .gitignore を編集 “`txt:.gitignore node_modules/ “` ## node_modules を管理対象から外す “` git rm -r –cached node_modules “` `–cached` オプションを付けておかないと、ファイルごと削除されて入れ直すはめになるので注意 ## git に反映 “` git add . git commit -m ‘node_modules/ は管理しない’ git push “`
元記事を表示

ズボラで面倒くさがりな人に向けた git-commit message linter

普段 git の commit message を丁寧に書かかないことをチクリと刺され辛い… ってなってるエンジニアです。 # 日本語読むの疲れるって人に gitのcommit messageを綺麗にしたいけど、linter よくわからん!!!って人に向けたツールを作ったので使ってください。 https://github.com/masahiro331/go-commitlinter ## 雰囲気 `(): ` のフォーマットに沿わない commit messageにすると git commit を失敗させます。 ![スクリーンショット 2022-02-07 8.57.59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/308125/d988862e-8ede-d941-3740-ed9e46c6da55.png) ## 導入方法 “` # go言語使ってない人はこれを機に brew install golang してくれ go insta
元記事を表示

Gitコマンドまとめ

#はじめに この度、Gitの学習を始めるにあたって簡単に学習内容やGitコマンドをまとめています。 # ローカルからgitにアップするまでの流れ #####・新規プロジェクトから始める場合・ “`python #1. GitのHPに新規リポジトリを作成する。(githubのHPから作成) #2. ローカルリポジトリを作成する。(対象ファイルに移動し実行) $ git init #3. リモートリポジトリを追加する。 $ git remote add origin (HPで作成したURL) #4. ステージングエリアにフォルダをアップする。 $ git add . #5. リモートリポジトリにファイルをプッシュする。 $ git push -u origin master “`
#####・既存のプロジェクトから始る・ 1. 既存のGitHub上のプロジェクトのURLをコピーする 1. 任意の場所にディレクトリを用意・移動する 1. Git cloneコマンドでリモートリポジトリから情報をコピーする Gitのデータの持ち方 ・圧縮ファイル(ファイル) ・ツリ
元記事を表示

Git コマンドとGitHub入門

# はじめに この記事は、エンジニア経験1年の大学生が実務で勉強になったこと、詰まったことをまとめています。間違っている箇所などがございましたら、指摘していただけると幸いです。 # 背景 普段何気なく使用しているgitですが、gitにはいろいろなコマンドが用意されており、いつも使うコマンド以外はあまり理解できていませんでした。同期のインターン生に教えていただくことがあったので、このタイミングで、gitについてもう一度学習しようと思い、記事にしました。 # Gitの歴史 Gitはバージョン管理システムの1つで、世界最大級のオープンソースソフトウェアの1つであるLinuxのカーネルのソースコードを効率的に管理するために作られた。Linuxの生みの親であるリーナス・トーバルズ氏が2005年に開発をスタートした。 # GitHub GitHubにソースコードをホスティングすることで複数人の開発者と協働してコードをレビューしたり、プロジェクトを管理しつつ開発を行うことができる。アメリカのカリフォルニア州サンフランシスコ市に拠点を置くGitHub社によって保守されている。主な開発者であるクリ
元記事を表示

【SourceTree】既存ローカルリポジトリを追加

SourceTreeに既存のローカルリポジトリを追加する方法です。 前提としては、ローカルリポジトリが既にあること(リモートリポジトリからcloneできていること)です。SourceTreeに既存のローカルリポジトリを追加すると、ローカルリポジトリをSourceTreeで扱えるようになります。 #ローカルリポジトリを追加 **①一番右にあるタブ横の「+」を押下します。(または、「メニュー」→「新規/クローンを作成する」でも同じことができます。)** **②「Add」を押下します。** ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/605915/86b3bd84-fb48-3d1f-fc2a-3f81de46da87.png) **③Add a repositoryの画面がでてきたら、ローカルリポジトリをパスを指定します。(参照横の入力フォーム)** ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazon
元記事を表示

TortoiseGitがWindows11のコンテキストメニュー(右クリックメニュー)に対応したみたい

Windowsを使用している方なら利用している方も多いかと思うTortoiseGitですが、最新版にアップデートしたらWindows11のコンテキストメニュー(右クリックメニュー)に対応したようで、下記のように一発アクセス可能になってました! ![tg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/272546/49b51d9b-cd25-d12c-49da-c6c2dfc1b65f.png) 以前までも別に対応できていなかったわけではないのですが、以前までは `そのほかオプションを表示` を一度選択してから、さらに表示されたコンテキストメニューから選択という2段階の手順が必要でした。 意外と面倒だったんですよね。。。(旧コンテキストメニューに戻す方法もあったようですが。) なので、TortoiseGitを利用している方は、ぜひ最新版へアップデートしてみると良いかと! [TortoiseGit](https://tortoisegit.org/) とは? エクスプローラからGitを操作できるアプ
元記事を表示

不要ファイルをGithubから消しつつローカルには残したい場合の手順

開発をしていてGithubにあげる必要がないけれどローカルに残しておきたいファイル群が存在する場合があります。自分はDocker環境で開発しているのでdocker-compose.ymlはローカルで必要だけれどGithubにはあげる必要がありません。 その場合はまず`$ echo “docker-compose.yml” >>.gitingore`のように.gitingoreに記述することが一般的です。 しかし、.gitingoreに記述し忘れてうっかりGithubにあげてしまった場合はどうしましょう。あげた後に.gitingoreに記述してもそれだけでは取り消せません。その場合は`git rm –cached ファイル名`を活用すると良さそう。 例えばファイル名がdocker-compose.ymlの場合、 1. `$ git rm –cached docker-compose.yml` 1. `$ git add docker-compose.yml` 1. `$ git commit -m “DELETE docker-compose.yml”` 1. `$ g
元記事を表示

error: failed to push some refs to <リポジトリURL>

別リポジトリからcloneしてきて、ブランチ作成する際につまづいた時のmemoです。 こんな感じで別リポジトリからcloneしてきました。 “`:Teminal git clone <別リポジトリURL> “` 次にbranchを作成して、myリポジトリにpushしたところ、エラーが発生しました。 “`:Teminal git checkout -b develop main error: failed to push some refs to <自分のリポジトリURL> “` branchを調べてみると、作成した [develop]ブランチには[origin/main]がついていない。。。 “`:Teminal git branch -vv * develop * main [origin/main] “` つまり、作成したbranchは別リポジトリをリモート先として作成しているため、push時にエラーが発生していると思われる。 調べたところ、branch作成時に自分のリポジトリをちゃんと指定してあげる必要があるみたいです。 “`:Teminal git
元記事を表示

【Git】refspecを世界一かみくだいて説明する

Push/Pullで実は必ず活用している、Gitにおける「refspec」の概念を紹介します。なおここでは、Gitのpush/pullについての解説はしません。

refspecとは?

git pushをする場合を考えます。初学者さん向けの記事では、その構文は以下のように書かれていると思います。

$ git push origin master

解説としては、「”origin”という名前で登録してあるGitHub上のリポジトリにmast

元記事を表示

ローカルで開発したプロジェクトをGithubに上げる手順

手順に迷わないようにまとめました。 1. githubでNewでリポジトリを作成。hakataプロジェクトなど。 1. ローカルプロジェクトに移動`$ cd User/project/hakata` 1. gitリポジトリを作成`$ git init` 1. gitリポジトリにファイルを追加する`$ git add .` 1. gitファイルをコミットする`$ git commit -m “first Commit”` 1. 1で作成したリポジトリのURLをコピーしてリモートリポジトリに設定する`$ git remote add origin https://github.com/yourname/hakata.git` 1. ファイルをアップロードする `$ git push -u origin master` 自分用ですが誰かの役に立てば幸いです。
元記事を表示

【Udemy】聴きやすい英語のエンジニア向け優良コンテンツ(順次追記)

技術はサッパリだが英語ができるワイは最近Udemyの英語コンテンツで学んでいます。 その中で**聴きやすい英語**で**内容がとてもいい**と判断したものを追記していきます。 合う講師を見つけて、その講師の他の動画を見るのが効率的だと思っています。 #**Udemy英語コンテンツのメリット・デメリット** **メリット** ・Udemyの英語コンテンツは日本語コンテンツより充実しているものが多い(独断です) ・日本語コンテンツにない技術スタックを扱っている ・最新技術の動画が出るのが明らかに日本語より早い ・副次的に英語力向上にもつながる **デメリット** ・ネイティブじゃない訛りまくった英語を話す講師も多いため、聞きやすい英語を話す講師を探す必要あり #**講師リスト** ・[Jonas Schmedtmann](https://www.udemy.com/user/jonasschmedtmann/) →比較的ゆっくり話す。自分の老いを自覚し、年齢の話題に触れるのを恐れている節がある。 ・[Trevor Sawler](https://www.udemy.com/use
元記事を表示

git log の “–ancestry-path” と “–first-parent” を図とコマンドで確認する

# “–ancestry-path” 以下説明がイマイチ理解しづらかったので、コマンドで確認してみたメモ。 > 表示するコミットの範囲(例えば、「commit1..commit2」または「commit2 ^ commit1」)が指定されている場合、「commit1」と「commit2」の間の祖先チェーンに直接存在するコミット、つまり、「commit1」の子孫と「commit2」の祖先の両方であるコミットのみを表示します。 https://tracpath.com/docs/git-log/ # 下準備 – master ブランチから master1 / master2 ブランチを切って、また合流する ### イメージ図 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50690/bca1a660-53f2-fc6b-b3a3-9c3bcb5cdbdb.png) ### コマンド “`bash # master ブランチで最初のコミット % git init % git
元記事を表示