- 1. gitのデフォルトエディタをnanoからviに変更
- 2. remote origin already exists.のエラーを解決(備忘録)
- 3. GitHub アクセスの際の認証情報を保存する
- 4. ec2にgitをインストールしてgithubからgit pullできるようになるまで
- 5. gitコマンドが使えなくなったのを、元通り使えるようにしたい。(原因は、macOS のアップデートを実行したため)
- 6. 【git】ひっかかったことと解決法一覧
- 7. gitがhttpsのみ通信可(ssh接続不可)の時に、認証を自動化したい
- 8. 初めてgit patchを使った
- 9. Railsチュートリアルの2章でつまづいた話
- 10. VisualStudio for Mac 2019 にて新しいファイルがコミットできない場合の応急処置
- 11. commit間の差分をzip出力する
- 12. gitには気を付けるべし
- 13. git (git hub)についての学習アウトプット
- 14. Gitコンフリクト解消手順(マージ先のゴミ差分を取り込みたくない場合)
- 15. 見やすいPRのためにcommitを整理しよう
- 16. git branchコマンドの実行結果をpager表示されないようにする
- 17. ArgoCD環境構築 ArgoCDでGithubのプライベートリポジトリにhttps接続を行う方法(2022/2/12最新版)
- 18. とりあえずGitを使え!はとりあえず辞めておけ
- 19. 【Git】TortoiseGitでフォルダ名を変更する方法
- 20. MSYS2でzshのGitプロンプトを快適に使う方法
gitのデフォルトエディタをnanoからviに変更
## 環境
Ubuntu20.4## やりたいこと
1つ前のコミットメッセージを変更しようとして、次のコマンドを実行すると、nanoが起動されたので、デフォルトエディタをviに変更することにする。“`
git commit –amend
“`## 説明
gitの環境ファイルに、**core.editor vi**の設定を追加すればいいということになるのだが、環境ファイルと一言で言っても3種類存在している。
>
1. .git/config
2. ~/.gitconfig
3. /etc/gitconfig.git/configは、**git init**したときにプロジェクト内に自動的に作成されが、~/.gitconfigと、/etc/gitconfigは、作りたければ自分で作成する必要があります。
.gitc/onfigで設定した情報は、**git init**をしたプロジェクト内でのみに反映され、~/.gitconfigは、ログインしたユーザーのにみ反映され、/etc/gitconfigはOS全体に反映されます。
つまり、自分が利用しているプロジェクト
remote origin already exists.のエラーを解決(備忘録)
初投稿
#前提
以下の項目が完了していること。
– GitHubへのssh接続
– Git初期設定“`git
cd ディレクトリ名/
cd ディレクトリ名
git init
git add *
git commit -m “first commit”
git remote add origin [gitURL]
git push -u origin main
“`
と入力したらエラーが出た“`
git remote add origin git@github.com:xxxxxx/example.git
fatal: remote origin already exists.
“`
#解決策
設定し直す“`
git remote set-url origin git@github.com:xxxxxx/example.git
“`“`
git push origin main
“`
push成功。無事Githubに反映された。参考になったサイト
https://natsukimemo.com/git_commit
GitHub アクセスの際の認証情報を保存する
# はじめに
GitHub へのアクセスは SourceTree や cli で行うと思いますが、その際にユーザー名やパスワードの入力が非常に面倒です。URL に PAT を指定する方法も簡単ですぐに実現できるのですが、PAT がオープンになってしまうためあまりいい感じではありませんので、Mac のキーチェインや Windows 資格情報マネージャーに事前に登録するようにしたいと思います。
環境は macOS を想定していますが、インストール手順以外はほぼ同じコマンドで実行できます。
## 環境準備
git の credentaial-manager-core を利用します。https://github.com/GitCredentialManager/git-credential-manager
インストール方法は上記のサイトにも記載されていますが以下で行えます。
“`sh
brew tap microsoft/git
brew install –cask git-credential-manager-core
“`すでにインストール済みの場合は
“`s
ec2にgitをインストールしてgithubからgit pullできるようになるまで
## 経緯
ec2にアプリをデプロイするためにgitをインストールし、githubからリポジトリをクローンしようと思ったのですが、githubのssh設定でつまづいたため記事として残しておきます。## 結論
ssh接続のための鍵はroot(sudo)で作成する## やったこと
### 1. ec2にssh接続
“`
$ ssh -i {ec2に接続するための鍵} ec2-user@{ec2のpublicIP}
“`### 2. gitインストール
“`
$ sudo yum install git
“`### 3. githubにssh接続するための鍵を作成する
“`
$ ssh-keygen -t ed25519 -C {自分のメールアドレス}
“`
3回ほど質問されますが、全てEnterを押せばOKです
これで~/.ssh/id_ed25519(秘密鍵)と~/.ssh/id_ed25519.pub(公開鍵)が生成されます### 4.githubに公開鍵を登録する
https://github.com/settings/ssh/new
こちらから公開
gitコマンドが使えなくなったのを、元通り使えるようにしたい。(原因は、macOS のアップデートを実行したため)
原因は、macOS のアップデートだったから、これからも同様のことがあるだろうけど、その度に忘れて、その度に簡単に解決するやん、となることでしょう。(今回も既に2回目だった)
## 1. **やりたいことを確認する。**
– `git`コマンドが使えなくなったのを、元通り使えるようにしたい。
## 2. **課題(エラーの状況、不明点、エラーログ)を確認する。**
⚠️ `git clone`しようとしたら失敗した。
“`bash
$ git clone https://github.com/xxx/xxx.git
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
“`
⚠️ そのほかの`git`コマンドも使えない。## 3. **調査する(ググる、ドキュメントを読む)**
> macOS High SierraからM
【git】ひっかかったことと解決法一覧
gitでデータアップロードする際にひっかかった事と解決策一覧。
英語で返ってくるので一見難しいこと言われてる気がしてくるけど、翻訳すると結構親切な文で返してくれてるなという印象。
でも忘れた頃にやると、結構混乱するので自分用メモです。参考にさせていただいた記事やページは本文下部に記載しております。
# ①This key is not known by any other names Are you sure you want to continue connecting (yes/no/[fingerprint])?
git push -u origin masterコマンドを打った際にでる。
###### 解決策
yesと入力するだけ。– ざっくりした文の内容
「この公開鍵は初見だけど本当にアップロード続けて大丈夫?」
– 初回アップロード時に発生。(OS変更したときなど)
– 自分的ひっかかりポイント…yes/noで聞かれてるのに脳死エンターしていた# ②error: src refspec masuter does not match any
こちらも
gitがhttpsのみ通信可(ssh接続不可)の時に、認証を自動化したい
# 要旨
リモートリポジトリがssh通信を受け付けておらず、https接続のみ使える、という場合があったりすると思います。~~ポート変えてsshあけておいてほしいですよね~~ その場合、認証が毎回問われてめんどくさいので自動化したいという話です。環境:Ubuntu-20.04(wsl, ローカル) EC2上のgitlab(リモート)
# 結論
https://florianwinkelbauer.com/posts/2021-05-27-git-gnome-keyring/この方の通りにしてください。
# 元記事読むのが面倒な人向けに
“`bash
$ sudo apt-get install make gcc libsecret-1-0 libsecret-1-dev
$ cd /usr/share/doc/git/contrib/credential/libsecret
$ sudo make
$ git config –global credential.helper /usr/share/doc/git/contrib/credential/libsec
初めてgit patchを使った
あまり遭遇する人はいないだろうけど数年前に分岐したリポジトリA,BがあってAで開発進めていた内容を今回はBにも適用する必要があった。
`git patch` を使うと良さそうとのことだが聞いたことあるけど使ったことはなかったのでメモを残しておく。
### まずAで開発を進めていたコミットからパッチを作成する。
前提:Aでの開発はmasterからhogeというブランチで作業を進めていたとする。
最新のmasterをローカルにチェックアウト(既にチェックアウトしてるならpull等で最新に)
“`bash
git checkout -b master origin/master
“`### パッチファイルの作成
`hoge` ブランチをチェックアウトしてパッチを作成。
“`
git checkout hoge
git status
“`ここで指定するのはローカルのmasterブランチ
“`
git format-patch master
“`実行すると以下のようなファイルが生成される。
“`
0001-composer-92684.patch
00
Railsチュートリアルの2章でつまづいた話
Railsチュートリアルの基礎中の基礎(2章のgit)で躓いたので備忘録としてアップしておきます。
環境
・cloud9
・Rails 5.1.6
・Ruby 2.6.3Railsチュートリアル Rails ver.5.1.6では手順通りにgitの設定をしても100%エラーが出ます。(僕の力量では理由はわかりません)
1のnoteの手順通りに最後まで通した後2のqiitaの通りにするとなぜかはわかりませんがうまくいきます。1 railsチュートリアルでBitbucket、Herokuでつまづいた人が行うべきこと
https://note.com/el93019205/n/n328eac66a2602 Railsチュートリアル 1.4.3 Push時のエラー解決方法
https://qiita.com/kmat/items/3e3b681d4ce5a2877960
VisualStudio for Mac 2019 にて新しいファイルがコミットできない場合の応急処置
VisualStudio for Mac 2019にて
新しいフォルダを作成し、そこに新しいファイルを作成するが、新しいファイルのみコミット内容に含まれない場合の応急処置
既にローカルのマスターに反映されているフォルダにファイルを作成してそれをVisualSturio上で新しく作成したフォルダにドラッグアンドドロップしたらコミット内容に含まれまる根本的な解決にはなっていないのでとりあえずの応急処置として、、
commit間の差分をzip出力する
#はじめに
commit間の差分ファイルををzip化する必要があり、また同じことをする際に忘れている自信があるので
この記事で保管することにする。細かいことまで理解していないが、
これでお目当ての差分が抽出でき、zip化できたので脳死でコマンドを叩くことにする。# コマンドテンプレ
“`
$ git archive {ブランチ名} `git diff –name-only {コミットIDから} {コミットIDまで} –diff-filter=d` -o {出力ファイル名.zip}
“`# 具体例
“`
//コミット履歴を取得
(develop) $ git log
>commit hogehoge2
>commit hogehoge1//コミット間の差分をzipにする
$ git archive develop `git diff –name-only hogehoge1 hogehoge2 –diff-filter=d` -o fugafuga.zip
“`# 参考
https://www.granfairs.com/blog/staff/git-
gitには気を付けるべし
結果的に作業用ブランチを作らずstagingブランチに直接pushしてしまい、社員の方に迷惑と無駄な手間をかけてしまったので、少し反省点を書く。
## 会社のgit状況が曖昧なまま進めない
会社のgit管理がどのようになっているかは絶対に把握する。
その中でも大事なのはブランチで、どのようなブランチが存在して、どのブランチを作成して切るかは知っておくべき。これを知らずに進めないこと。以下のような流れを意識する。
1. 作業ブランチを作成する `git branch <ブランチ名>`
※ ブランチ名も適当にせず話を聞く
2. ブランチを切り替える `git checkout <ブランチ名>`
※ 1,2は`git checkout -b <ブランチ名>`で一気に行うことができる
3. 作業ブランチにmasterやstagingなどのブランチを反映 `git pull origin master`
4. 開発(確認しやすくするため、1コミットごとの作業はできるだけ少なく)
5. 作業ブランチのリモートリポジトリにpush `git push origin <ブ
git (git hub)についての学習アウトプット
## ブランチとは
ブランチとは履歴の流れを分岐して記録していくもの。分岐したブランチは他のブランチの影響を受けないため複数の変更を同時に進めていくことができる。
分岐したブランチはmerge(合流)することで一つのブランチにまとめ直すことができる。
## ブランチ運用の流れ
– メインブランチから作業専用のブランチを作成する(checkout -b “ブランチ名”で作成可能)
– 作業が終わり次第自分のブランチをメインのブランチに取り込む(push merge)また、作業単位で履歴を残す(commit)ことで、問題が発生した場合に原因となる変更箇所の調査や対策を行うことができる。## masterブランチ
リポジトリに最初のcommitを行うとgitはmasterという名前のブランチを作成する(現在はmain)
ここからブランチを切って開発作業をする。
## 統合ブランチ
後述するトピックブランチの分岐元となるブランチ。そのため安定した状態が求められる。
CIツールのテストなどはこのブランチで行う(うちではSTがそれにあたる?)
## トピックブランチ
トピ
Gitコンフリクト解消手順(マージ先のゴミ差分を取り込みたくない場合)
## はじめに
今回はGitのコンフリクトの解消法について備忘録を書いていこうと思います。
![git-conflict.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/267720/19c88e8a-3dde-d945-dcfd-78ab9b51bbaa.png)
見やすいPRのためにcommitを整理しよう
# はじめに
今日はgitのコミットログについて書きます。この記事を読んでいる人はgit操作にはなれてきている人かと思います。PRを出すときにコミットログのつくり方の工夫はされていますか?
僕は「コミットを細かくして確認する範囲を小さくする。」くらいしかわかっていませんでした。
先日仕事で注意していただいたためログの整理についてしらべました。
コードレビューをしてもらうようになると相手の立場や気持ち考えなければいけません。
少しでも負担を減らすためにコミットログを整理することができるrebaseについて学習しました。設定した内容やコマンドについて書きます。この記事ではコミットメッセージはこういっ他内容を書きましょうといったことは触れていません。
## こんな人むけです
– githubを使用した開発はだいたい理解できる。
– mergeはわかるがrebaseには自信がない。# 環境
“`bash
# git version
$ git –version
git version 2.33.1#mac version
$ sw_vers
ProductName
git branchコマンドの実行結果をpager表示されないようにする
新しいPCを設定していたのですが、`git branch`コマンド実行後に`q`を押して表示を終了しなければ次のコマンドが実行できなくなっていた(pager表示される)ので、対応方法をメモしておきます。
自分はgitはコマンドから操作する派で、さらに息をするように `git branch` を実行することが癖になっています。(エイリアスを設定して `git br` としています。)
![git1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/279032/2c519168-0f45-76d2-dee1-4a428e4bd64c.gif)
新しいPCを設定していたら、 `git branch` を実行時に結果がpagerで表示されるようになっていました。
つまり、下記のように `git branch` を実行すると、`q` を押して表示を終了しなければ次のコマンドが実行できませんでした。“`sh
% git br
* develop
main
lines 1-2/2 (END) # ここでqを
ArgoCD環境構築 ArgoCDでGithubのプライベートリポジトリにhttps接続を行う方法(2022/2/12最新版)
#初めに
現場で、argoCDを用いた簡易動作の調査の依頼を受けてはまったので備忘録として残します。#argoCDについて
Argo CDは、KubernetesのためのGitOpsに則ったCD(Continuous Delivery)ツール
“CD” という名前のとおり、継続的デリバリーに特化したツールであり、CI(Continuous Integration)の機能はありません。そのため、CIツールとは別途、他の方法で統合する必要があります。https://openstandia.jp/oss_info/argocd/
#argoCD環境構築方法
●DockerDesktopにkubernetesをインストール![スクリーンショット 2022-02-12 14.49.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2486920/bcabda27-858f-e0c1-805d-31dca4d8f90d.png)
画面右上の歯車マークを押下して Kubernetesを選択します。
とりあえずGitを使え!はとりあえず辞めておけ
## はじめに
私は現在、とある企業でアプリ開発をしている2年目の社会人である。
業務では、当たり前にGitを使っていて、Git管理されていないプロジェクトを見ると、マジか…となるレベルである。そんな私が大学時代の友達とWebアプリの開発をし始めた時の話である。(Sierで働く3人をメンバーとして招集した)
## 各自リポジトリに招待しておいたのでcloneしておいてで、止まった
Gitってエンジニアの初歩だと思っていたが、そうではなかった。**そもそもGitってなんですか?**状態。これは困った。
この辺りは賛否両論あると思うが、私はこんな手法取った
* Source Treeを使用し、コマンドに関しては全く教えない
* cloneするところまでは、一緒に行うこの状態ならきっと、なんとか勉強して使うだろうと思った
## あまり説明せずに使わせてみた
Gitという便利なツールを説明せずに使わせたらどうなるのか?半分匙を投げた状態で行ってもらった。
### みるみる、masterによくわからないコミットメッセージのコミットが追加されていった。
その後、エラーが出
【Git】TortoiseGitでフォルダ名を変更する方法
# 結論
1. 名前を変更したいフォルダを右クリック
1. `TortoiseGit`を左クリック
1. `名前を変更(N)`を左クリック
1. `新しい名前`テキストボックスに`変更後フォルダ名`を入力
1. `OK`を左クリック# 環境
– TortoiseGit 2.13.0.1
– Windows11# 詳細
– 名前を変更したいフォルダを右クリック
フォルダ名を変更したいフォルダを右クリックします。
(例として`PostgreSQLを使いたいなー`フォルダの名前を変更します。)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519245/90255c7b-461a-2266-d731-eef5517df61a.png)– `TortoiseGit`を左クリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2519245/16506f9a-a0fa-0a40-8
MSYS2でzshのGitプロンプトを快適に使う方法
MSYS2 で zsh 使いたくない?使いたいよね?そう、使いたい!
しかしその上で一つ大きな障害があります
MSYS2 の zsh でプロンプトに Git のブランチを表示させようとすると微妙に上手くいきません## 問題
`.zshrc` を使って `PROMPT` に現在の Git ブランチの状態を表示させようとするとフリーズするケースがあります
具体的には以下のような設定を書くとターミナルのサイズ変更時にシェルがフリーズします
原因は不明ですが `PROMPT=’$(git)’` だけでフリーズするので Git for Windows との相性がなにか良くないのだと思っています“`sh
## git functionscurrent_git_branch() {
(git branch 2> /dev/null | sed -e ‘/^[^*]/d’ -e ‘s/* \(.*\)/\1/’)
}parse_git_dirty() {
local DIRTY=$(git status -s | tail -1)
if [[ -n $DIRTY ]];