- 1. Gitのコミットの取り消し
- 2. 開発でよく使用するgitのコマンド一覧
- 3. Gitコマンドに別名を設定する
- 4. CI/CD:「GitHub-flow」「Git-flow」による開発、本番環境へのデプロイフロー
- 5. 【Gitエラー】yarn.lockのコンフリクトを解消する
- 6. 【2024/01/09】今日の気付きメモ
- 7. 【GitHubエラー】git@github.com: Permission denied (publickey).の解決法
- 8. gitで指定のローカルブランチを、リモートリポジトリの指定ブランチにpushする
- 9. 最初のgitの動作を図で理解する3
- 10. 特定ブランチをローカルマージせずにPullRequestマージやっちゃいがちなあなたへ送るGit Hooks
- 11. VS CodeでCommit messageのスペルチェックを行いたい
- 12. Git 変更取り消しコマンド
- 13. githubリポジトリへのpushする際の設定の流れ
- 14. Gitとは?
- 15. 【Git】git clone後に新しいリモートリポジトリのURLを設定する方法
- 16. サーバー移行後、GitLab接続が遅くなってwarningが出たときの対処法
- 17. 【初心者】ローカルで作成したプロジェクトをリモートリポジトリへ反映するまでの流れ
- 18. 軽微な修正を一つのCommitにまとめる手順メモ
- 19. You can still open each one individually by opening a file within.
- 20. 最初のgitの動作を図で理解する2
Gitのコミットの取り消し
## 環境
Ubuntu20.4## はじめに
コミットの取り消しの実演を行います。個人で開発している分には、コミットを取り消したい場面に遭遇することは滅多にありません。「しまった、やってしまった。急いで取り消さなくては!」という事態に遭遇したとき、恐らく、気持ちの面では、相当程度焦っていると思われるため、こういった作業は、サクッと行えるようにしておいた方がいいだろうと思います。## やったこと
gitのログを確認すると、現在このようになっています。
“`
$git log –oneline
e6f6bc1 (HEAD) aaaccc
0619520 aa
8786091 ad
1ff8c28 aaa
5d9625c add
b3aa690 add file
8b66d30 ggg
3a68b15 ddd
“`直前のコミットを1つ取り消します。
“`
$git reset –hard HEAD^
“`確かに、直前のコミット(aaaccc)が取り消されて、次の履歴であるaaがHEADに繰り上がりました。
“`
$git log –oneline
06195
開発でよく使用するgitのコマンド一覧
これは[iCARE Dev Advent Calendar 2023](https://qiita.com/advent-calendar/2023/icare)の23日目の記事です。
# はじめに
やるやる詐欺をしていたらいつの間にか年が明けてしまいましたが、Advent Calendarを書いていこうと思います。
開発者の方ならcherry-pickとかrebase等は使いこなされていると思いますので、少し便利なオプションをいくつかご紹介します。# コマンド一覧
– git commit -m コミットメッセージ
`git commit` だとvim等のエディタが起動してそこでコミットメッセージを入力することができますが、 `-m コミットメッセージ` を付けるとエディタの画面へ移動することなく、そのままコミットすることができます。—
– git add -p
普通は `git add ファイル名` みたいな感じでファイルをaddされるかと思いますが、1つのファイルの特定の部分だけコミットしたいみたいなときがあるかと思います。そんなときに `-p` を付けると1フ
Gitコマンドに別名を設定する
Gitコマンドを毎回入力するのがめんどくさい.
コマンドに別名(エイリアス)を設定しておくことで,入力を少しだけ楽にすることができる.
少しだけだけど...“`bash
$ # エイリアスの設定は,git config –global alias.<別名>$ git config –global alias.co checkout
$ git config –global alias.br branch
$ git config –global alias.ci commit
$ git config –global alias.st status
$ git config –global alias.unstage ‘reset HEAD –‘ # ステージを解除
$ git config –global alias.last ‘log -1 HEAD’ # 直前のコミットを確認# 外部コマンドを実行するときは,$ git config –global alias.visual ‘!<外部コマンド>‘
$ git con
CI/CD:「GitHub-flow」「Git-flow」による開発、本番環境へのデプロイフロー
# はじめに
Web開発やデータ基盤などAWS環境で様々なCI/CD開発を行ってきました。
本記事は、「GitHub-flow」「Git-flow」による開発、本番環境へのデプロイフロー(CI/CD)について後述しました。
環境やお作法などで、実装方法は異なってきますが、もし迷ったら本記事をご参考ください!!
※承認機能などの細かい機能については、後述してませんのでご注意ください# GitHub-flowの概要
– featureブランチ: mainブランチから分岐。開発環境へデプロイするためのブランチ。新機能や修正に使用。
– mainブランチ: 本番環境へデプロイするためのブランチ。# GitHub-flowのデプロイフロー
## 開発環境(featureブランチ)へのデプロイ
– **featureブランチへプッシュすると、ビルド・テストが行われ、正常であれば開発環境へ自動デプロイされる。**## 本番環境(mainブランチ)へのデプロイ
– **featureブランチからmainブランチへマージすると、ビルド・テストが行われ、正常であれば本番環境へ自動デプロイされる
【Gitエラー】yarn.lockのコンフリクトを解消する
# 起こったエラー
forkアプリ内でmasterを最新の状態にし、ローカルのdevelopにpullしようとした際に、
“`
error: Your local changes to the following files would be overwritten by merge:
hogehoge/yarn.lock
“`
というエラー文が出現した。# 解決法
一度対象のyarn.lockファイルを削除してからもう一度pullをしたら成功した。
pull前に削除したyarn.lockファイルの中身と差異があったときのために、念のため、対象のディレクトリ下で
“`
yarn install
“`
を行った。
【2024/01/09】今日の気付きメモ
## Commitzenで開発環境を整備
https://zenn.dev/hayato94087/articles/e45c14a901096b#commitizen
コミットメッセージのLintや対話型で入力できるようにするコマンドラインツールがあるのは知らなかった。
VsCodeのコミットメッセージを自動で生成する機能に頼っているが、メッセージ内容が適切ではない場合があるので、試したい気持ちはある。## Reactでのデバッグ方法
https://zenn.dev/y_okt/articles/20240107_day6
なんとなくでReact Developer Toolsを使っているところがあるので、この機会に各機能内容を理解して適切に使いこなしていけるようにしたい。
## 【React】react-hook-form Yup を使ったフォームバリデーションのススメ
https://zenn.dev/orissama/articles/5e945b82db1362
フォームを作る時にYupとZod双方のメリットを理解していきたい。
## 技術ブログもSho
【GitHubエラー】git@github.com: Permission denied (publickey).の解決法
## 概要
GitHubにプッシュしようとした際に`git@github.com: Permission denied (publickey).`というエラーが発生したので、その解決法の備忘録です。### 注意
この記事は新卒エンジニアが執筆しています。
そのため内容に間違いや不備がある場合があります。
もし間違いを発見しましたら、どんどん指摘していただけると幸いです。### 前提条件
以下のことができている人向けの記事です。
– SSH鍵の作成
– SSH鍵とGitHubと連携
– できている場合は`ssh -T git@github.com`を実行すると、`Hi ユーザ名! You’ve successfully authenticated, but GitHub dose not provide shell access.`と表示されます。## 原因
エラーの原因は**SSHエージェント**が動作していなかったことでした。
SSHエージェントとは、SSHキーを管理してくれるプログラムのことです。通常はユーザがPCにログインする際に起動するのですが、なんらかの原
gitで指定のローカルブランチを、リモートリポジトリの指定ブランチにpushする
ローカルブランチlocal-branchを、リモートリポジトリorigin 上の remote-branchブランチに push するときは、下記コマンドでpush可能。
“`shell
git push origin local-branch:remote-branch
“`
最初のgitの動作を図で理解する3
# はじめに
前々回では最初の`git`コマンドの基礎的な動作を図で確認し、前回はディレクトリや複数のファイルを含んだコミット動作とコミット内容を復元する処理を確認した。
今回は最初の`git`コマンドで複数のコミットの管理方法について確認する。https://qiita.com/rairaii/items/45e1b19d431646fcd1d2
# 最初のgitコマンドを用意する
最初の`git`コマンドを[ビルド](https://り.com/rairaii/items/261071799ee3c1facd94#%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B)し、`$HOME/bin-git にコピーして、PATHを通す。
“`terminal:$HOME/bin-git
$ ls $HOME/bin-git
$ cat-file commit-tree init-db read-tree
特定ブランチをローカルマージせずにPullRequestマージやっちゃいがちなあなたへ送るGit Hooks
スタートアップのエンジニアだったり、ある程度権限の強い部署にいてHotFix当てるような場面のある人だとやりがちなことといえば、他人の作業ブランチやdevelop、main、masterなどのリリース用ブランチをマージせずに自分の作業分だけgit push/mergeしてしまうということじゃあないだろうか。
私も去年数えるだけで4回はやっている。これを反省し、commit前にマージ忘れを検知してくれるGit Hooksのpre-commitをChatGPTに教えてもらったので以下に記載しておく。
以下の例は develop ブランチなので、mainとかreleaseとかmasterとか各自の環境に合わせて変えていただきたい。“`shell:.git/hooks/pre-commit
#!/usr/bin/env bashgit fetch origin develop:develop
# 現在のブランチとdevelopブランチの共通の祖先を取得
COMMON_ANCESTOR=$(git merge-base HEAD develop)# developブランチの最
VS CodeでCommit messageのスペルチェックを行いたい
Visual Studio Codeは標準ではGitのコミットメッセージのスペルチェックは行ってくれません。
[Code Spell Checkerプラグイン](https://marketplace.visualstudio.com/items?itemName=streetsidesoftware.code-spell-checker)を導入するとGitのCommit Messageのスペルチェックが有効になります。
![Screenshot 2024-01-07 at 19.28.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/99370/c0bdccd3-c0b0-ef4f-a2b1-e92d472ea5ee.png)ただ、他の全てのファイルの編集時にもスペルチェックが聞いてしまいます。GitのCommit Messageのスペルチェック以外を有効にしたくない場合は`Settings`の`cSpell.enabledLanguageIds`で`scminput`以外を全て削除しましょう
Git 変更取り消しコマンド
# はじめに
変更ファイルの取り消ししたい時に使用するGitコマンドを残します。# 開発環境
– GitHub
– Mac# 指定したファイルの変更のみを削除する(git addする前)
– git checkoutを使用する
“`
git statusgit checkout <ファイル名>
“`– 結果
![スクリーンショット 2024-01-01 14.38.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/923146/46a97ccb-4c5f-6006-998a-93a931bc23e4.png)
![スクリーンショット 2024-01-01 14.37.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/923146/cd4fab86-33ec-ac91-3880-c5006ac45a0a.png)
![スクリーンショット 2024-01-01 14.37.59.png](h
githubリポジトリへのpushする際の設定の流れ
## 背景
githubというソースコードを管理するバージョン管理システムがあります。
githubのfreeアカウントでプライベートリポジトリを作成し、ソースコードやdockerイメージをパッケージとして保管することを目的とします。## 前提条件
githubへのpushは2つの方法で行っています。
* LinuxOSの場合、既存の仮想マシンにgitをインストールしています。
* スペック:OS:CentOS7.6、CPU2コア、メモリ3GB、ディスク:20GB、
* Windowsの場合、VidualStudioCodeにより、gitプラグインをインストールしています。
* スペック:OS:Windows10、CPU Inter i5 Core、メモリ8GB、ディスクHDD:300GB
## 実施内容### githubのアカウント作成
* メールアドレスの登録が必要ですので、メールアドレスを登録します。
* パスワードを登録します。
* 「🚀 Your GitHub launch code」
というメールが届くので、内容に従いコード入力します。
https
Gitとは?
GitとGitHubは一緒なものと捉えてましたが
別物とわかったので、勉強できてよかったです!### Gitとは?
プログラミングのコードを管理する分散型管理システム
編集履歴や古いバージョンのデータを管理しているシステム
ファイルの編集やチーム作業などを効率化しわかりやすくするために開発されたシステム
#### GitとGitHubは別物
GitHubはGitの仕組みを使ったサービスで世界中の人々が自分のソースコードやデザインなどのデータを保存できるWebサービスのことを指します
### Gitを使ってできること
– 編集前ファイルを残したまま編集できる
– バージョンをもとに戻す作業が効率化できる
– 修正した箇所をプロジェクトメンバーで共有しやすい
– チームで同じファイルを同時進行で編集できる
– Excel・word・画像ファイルなど様々なファイルが管理できるGitは利用することでデータの管理や共有、編集作業の効率アップに役立つツール
### Gitが活躍する場面
#### エンジニア
プログラムコードの管理にGitha最適
プログラミングコードは何度も編集しながら
【Git】git clone後に新しいリモートリポジトリのURLを設定する方法
# はじめに
リモートリポジトリを変更したいときに、
実行するgitコマンドを本記事では記載します。### 1. 設定されているリモートリポジトリを確認
次のコマンドで現在設定されているリモートリポジトリを確認する。
“`
git remote -v
“`### 2. リモートリポジトリの変更
リモートリポジトリを変更したい場合は次のコマンドを実行する。“`
git remote set-url origin [変更後のリポジトリのURL]
“`リポジトリのURLは「Code」の部分をクリックすると表示されます。
![sampleURL.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1247619/7c2e5c28-5791-5820-fab7-2ae66a3c7e7e.png)
### 3. 変更されたリモートリポジトリの確認
もう一度以下のコマンドを実行して、リモートリポジトリが変更された事を確認します。
“`
git remote -v
“`
サーバー移行後、GitLab接続が遅くなってwarningが出たときの対処法
先に結論を述べると`git config –global credential.https://(new hostname).provider gitlab`を実行して解決した。
当初の原因の考察では、サーバー側に設定漏れがあるのではないかと考えていた。
しかし実際は、Gitクライアント側の設定追加が必要だった。
# 事象
オンプレミス上でホスティングしているGitLabを、別の物理サーバーへ移行した。
クライアント側では、リモートのURLを新サーバーに変更する作業のみ行った。この状態でリモートリポジトリに接続可能だったため、移行は成功したと思いきや
プルやプッシュの際、サーバーに接続するまでに数秒かかり(遅くなり)、下記の警告が出力されるようになった。
“`powershell
warning: auto-detection of host provider took too long (>2000ms)
warning: see https://aka.ms/gcm/autodetect for more information.
warning: auto-detecti
【初心者】ローカルで作成したプロジェクトをリモートリポジトリへ反映するまでの流れ
# はじめに
ローカルで作成したプロジェクトファイルを、初めてリモートリポジトリに反映させる時に、リモートリポジトリへの反映までの流れを理解するのに苦戦しましたので備忘録として残しておきます。なるべくイメージで覚えられるように書いて見ました。# 前提条件
+ gitインストール済み
+ プロジェクト作成済み
+ gitlabで以下の作業が完了済みであること
- 初期登録
- プロジェクト作成
- ブランチ作成# 手順0 プロジェクトを作成した時の状態
gitを何もいじらずにプロジェクトを作成した時のローカルリポジトリ、リモートリポジトリはどちらもプロジェクトの内容が反映されていない空っぽの状態です。![各リポジトリの初期状態](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3664957/370841f2-99f2-cc5b-8bad-cb9829de9474.png)
# 手順1 プロジェクトをステージに追加
以下のコマンドをターミナルで実行し、プロジェクトの内容をステージに追加する。
`
軽微な修正を一つのCommitにまとめる手順メモ
## プチストレス
以下のように変更し、`git push`してCI/CDを走らせたらエラーになることがよくある。“`bash
git log –online6d76d86 機能を追加した
2e125f9 first
6d95b84 Initial
“`typoなど本題ではない原因の場合、それを修正して無意味なコミットが残るのが嫌である。
ちょっとした修正コミットをまとめる。## 手順
軽微な修正をコミットするときに`–fixup`オプションをつける。
“`bash
git commit –fixup 6d76d86
““`fixup!`がコミットメッセージにつく。
“`bash
git log –onelineeb483e5 (HEAD -> main) fixup! 機能を追加した
6d76d86 機能を追加した
2e125f9 first
6d95b84 Initial
“`rebaseを実行(まとめたいコミットたちの直前のコミットを指定)。
“`bash
git rebase -i –autosquash 2e125f9
You can still open each one individually by opening a file within.
# 事象
Visual Studio Codeでサブモジュールがたくさん含まれているGitリポジトリを開くと`The “xxx” repository has x submodules which won’t be opened automatically. You can still open each one individually by opening a file within.`という警告が表示される。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/ff11a6dd-a2a1-6b71-3727-791b2e772bf2.png)
# 原因
Visual Studio Codeが開いたGitリポジトリに含まれるサブモジュールのリポジトリ情報を読み込むが、その数に上限が設定されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/109634/60671
最初のgitの動作を図で理解する2
# はじめに
前回は最初の`git`の基礎的な動作を図で確認した。今回はディレクトリや複数のファイルを含んだコミット動作とコミット内容を復元する処理を確認する。
前回の内容
https://qiita.com/rairaii/items/1bed4a1fc1bdd74d32d1#%E7%A2%BA%E8%AA%8D%E3%81%99%E3%82%8B%E5%86%85%E5%AE%B9
# 最初のgitコマンドを用意する
最初の`git`コマンドを[ビルド](https://qiita.com/rairaii/items/261071799ee3c1facd94#%E3%82%BD%E3%83%BC%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%89%E3%82%92%E3%83%93%E3%83%AB%E3%83%89%E3%81%99%E3%82%8B)し、`$HOME/bin-git にコピーして、PATHを通す。
“`terminal:$HOME/bin-git
$ ls $HOME/bin-git
$ cat-file commit-tr