今さら聞けないGit 

今さら聞けないGit 

バージョン管理の運用について

# PCとGitHubを連携させる。

– Githubにリポジトリをつくる
– PC側で、ssh-keygen -t rsaで、公開鍵をつくる
– Githubに、PC側の公開鍵を登録する
– Githubにリポジトリに対して、PC側でgit cloneする

# 基本的な利用

バージョンとコメントを記入する。

“`
git add .
git tag -a rev0.0 -m “初期実装”
git commit -m “初期実装”
git push rev0.0
“`

# 間違ってpushした時の対応

git pushを取り消す。

“`
git reset –soft HEAD^
“`

# 間違ってtagを付けたときの対応

tagを取り消す。

“`
git tag -d rev0.0
“`

元記事を表示

SSHを使用してGitリポジトリをローカル環境へクローンしたい

# はじめに
Git リポジトリをローカル環境へクローンするために参照するGitHub の公式ドキュメントが複数あるため、備忘録として記事にアウトプットします

参照 : [SSH を使用したGitHub への接続](https://docs.github.com/ja/authentication/connecting-to-github-with-ssh)

# 既存のSSH キーの確認

1. [ターミナル]を開く

1. 以下を実行して、既存のSSHキーが存在するか確認する(ディレクトリはどこでもOK)
“`
%ls -al ~/.ssh
“`

1. ディレクトリの一覧から、公開SSHキーをすでに持っているか確認する。既定では、GitHubでサポートされている公開鍵のファイル名は次のいずれか
+ id_rsa.pub
+ id_ecdsa.pub
+ id_ed25519.pub

1. 確認が
1. できなければ「[新しいSSHキーを生成してssh-agentに追加する](#新しいSSHキーを生成してssh-ag

元記事を表示

Git004:Gitの作法 Gitの状態と使えるCommand一覧

### Gitはいろいろ行動を制限してくる
Programerの世界的にはめっさ便利なGit。

しかし、一般人からすると不親切極まりない挙動も結構あります。

Gitには状態があって、その状態の時にしか使えないCommandがあります。
CUIのgit commandは大量にあるし、GUIのGIT管理Softでさえ、今の状態ではこのコマンドが使えるよ・・・みたいになっていない。
結局gitの挙動をある程度理解しないといけないのが間口を狭めている原因だと思う。

### 各状態で使えるコマンドをJSON形式でまとめました。
・カナ混じりですが、gitコマンドに使われる語は必ず英語で統一縛りでまとめてます。
・Commit後状態≒Clone後/変更なし状態 じゃん!とか変更状態とStaging状態のFileが同時に存在するんだよ!
 とか細かいツッコミはあるでしょうが、運用上は問題ないっしょということで。
・随時更新します。一部自動生成で作ったので使ったことないコマンドも有り。問題が有ったら教えて。

“` JSON: JSON形式
{
“Git local repository無

元記事を表示

Git003:Gitと文字コード VS code

### Gitは基本的にはUTF-8で管理される
なので、ソースコードもUTF-8で作るのが一番いいです!!!

完!!

### でも、ずっとShift-JISでやってきたのを今さら変えられませんよね

戦略としては3つ考えられますよね。
今のところの結論は2と3で対応が良いと考えます。
×? 1: 決まった拡張子のFileのEncodeをS-JIS(CP932)に変える。
○ 2: Gitに勝手にEncodeを変更させない。
○ 3: GitでどうしてもUTF-8でしか管理しない場所は無視する。

### WindowsではGitでのEncode変換はできないのかも
で、1のEncodeを変える方法は下記のような設定らしいですが、WindowsではErrorが出ることがあります。
“`terminal:.gitattributes
#リポジトリのルートに.gitattributesの設定Fileを追加する。
#試してみてもいいが、Windowsでは変換エラーが出る気がする。
*.c text working-tree-encoding=CP932
*.cpp text wo

元記事を表示

git reset –hardを間違えてしてしまった時の対処法

おっと手が滑って…reset –hardしちゃった場合…ありませんか?(あったらえらいこっちゃですが…)

本記事ではgit reset –hardを実行した後の復元方法について,addしていない場合,addした場合,commitした場合のそれぞれについて説明する.

## addしていない場合(ワーキングディレクトリのみに変更がある場合):
この状況では,変更は完全に失われる.Gitの機能だけでは復元は不可能である.ファイルシステムの復元ツールを使用する必要があるが,成功の保証はない.

例えばgit statusをしてワーキングエリアとステージングエリアの状態を確認する
“`bash
git status
“`
すると,example.txtがステージングエリア(インデックス)になく,addされていないことがわかる.
“`bash
On branch main
Changes not staged for commit:
(use “git add …” to update what will be committed)
(use “

元記事を表示

【Github 自動化】mainブランチにプッシュさせない【#2】

# はじめに
1. Issueをつくる
1. ブランチを切る
1. 細かくコミットする
1. プルリクエストする

洗練された開発プロセスですね。

今回は
– 「2. ブランチを切る」

をサポートするルールを作成しようと思います。

# 直接のCommitを禁止する
「マージ前にプルリクエストを要求」することで、「ブランチを切る」習慣をつけます。

| `Settings`->`Branches` | 名前・ステータス・ターゲットブランチを設定 |
|:-:|:-:|
| ![スクリーンショット 2024-08-28 20.30.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457770/31daf276-4772-182c-3cda-abfc63c8cb7a.png) | ![スクリーンショット 2024-08-28 22.38.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3457770/2894

元記事を表示

【Github 自動化】Issueを必須にするルール作り【#1】

# はじめに
1. Issueをつくる
1. ブランチを切る
1. 細かくコミットする
1. プルリクエストする

洗練された開発プロセスですね。

今回は
– 「1. Issueをつくる」
– 「4. プルリクエストする」

をサポートするルールを作成しようと思います。

# 1️⃣ プルリクエスト テンプレートを作る

:::note
この章でやること
– プルリクエスト テンプレートを作成する
– Githubのルールを利用し、プルリクエストにIssueを関連付ける

Issueを関連付ける方法

[Pull RequestをIssueにリンクする](https://docs.github.com/ja/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)

Issueをプルリクエストに関連付けることができます。
具体的には、以下の

元記事を表示

Git 個人メモ

git コマンド一覧メモ作成途中
git init
git status
git clone
git config
git branch
git branch -d
git add
git restore –staged

git log

git show

git remote -v
git remote

・プッシュ 注意
git push

元記事を表示

【git】管理外の資産を含めた差分をテキストファイルに出力する

gitの差分を他者へ共有したいとき、差分が大量にあるとファイル名の一覧をコピーしてチャットに貼り付け。
というのが面倒な上相手にとっても見づらいかなと思い、テキストファイルに吐き出す形としました。

“`
git status –untracked-files=all > xxx.txt
“`

元記事を表示

git push –force したくなった時の事故防止オプション

“`
# NG
git push –force

# OK
git push –force-with-lease –force-if-includes
“`

– `–force` 制限なしにpush
– `–force-with-lease` fetchしてないとコケる
– `–force-if-includes` fetchしてもコミットが取り込まれてないとコケる

オプションが長いのでエイリアスを登録する

“`
git config –global alias.pushf ‘push –force-with-lease –force-if-includes’
“`

“`
git pushf
“`

## 参考

https://scrapbox.io/Nodewww/git_push_-f_%E3%81%AF_–force-if-includes_%E3%82%92%E4%BD%BF%E3%81%88

元記事を表示

Gitプッシュ時に発生したHTTP 500エラーの解決方法

## 概要

ローカルリポジトリのコミットをプッシュしようとした際、HTTP 500エラーが発生してしまいました。
この記事では、この問題の原因と、それを解決するために行った手順を紹介します。

## 表示されたエラーメッセージ
### SourceTreeでのエラーメッセージ

SourceTreeからプッシュを試みた際に、以下のエラーメッセージが表示されました。

“`bash
git –no-optional-locks -c color.branch=false -c color.diff=false -c color.status=false -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v –tags –set-upstream my-repository refs/heads/my-branch-name:refs/heads/my-branch-name
Pushing to https://gitlab.com/***

元記事を表示

まとめ用のブランチの作り方

# 概要
– 複数人で開発してて共通のコードベース利用したいとか、リリースブランチ作成したいとか
– 今の今までぱっとやり方思いつかなかったが、色々探して試したところできたのでメモ

# 方法

1. 最新のコードからbranchを切る(mainとかdevelopとか)
1. 空コミットを用意する
1. GitHub上でPR作成
1. 他PRの向き先を3に変更する

## 空コミットの用意

“`bash
$ git commit –allow-empty -m “Initialize integration branch”
“`

最新のところから切るだけじゃ差分ができない = PRが作成できないため差分を作らなきゃとなり、一部だけ変更するのもよくわからんなーと思っていたが、こんな方法があるなんて知らなかった

元記事を表示

git stashの使い方

# はじめに
git stash は、Git で作業中の変更を一時的に退避させるためのコマンドです。これにより、現在の作業内容を保存してワーキングディレクトリをクリーンな状態に戻し、別の作業やブランチへの切り替えをスムーズに行うことができます。

# 主な用途
1. **一時的な保存**: コードに変更がある状態で別のブランチに切り替える必要がある場合、変更をコミットせずに作業を中断したいことがあります。このとき、git stash を使うことで、変更を一時的に保存できます。
1. **クリーンな状態で他の作業を行う**: 現在の変更を一時的に退避させ、クリーンなワーキングディレクトリで新しい作業を始めることができます。

# 基本的な使い方
### 1. 変更を一時的に退避する
まず、現在の変更を stash に退避させます。
“`
git stash
“`
これにより、すべての未コミットの変更が一時的に保存され、ワーキングディレクトリが元の状態に戻ります。

### 2. 退避した変更を確認する
git stash list を使用して、退避した変更の一覧を確認できます。

元記事を表示

よく使うGitの便利なコマンドたち

## Gitのコマンド集
タイトルの通り、よく使う便利なGitコマンドをまとめました。

### add編
#### 初回
– git init直後の全てのファイルのgit addを取り消す
“`git
git rm –cached -r .
“`

– git init直後の特定のファイルのgit addを取り消す
“`git
git rm –cached -r [ファイル名]
“`

#### 2回目以降
– 全てのファイルのgit addを取り消す
“`git
git reset HEAD
“`

– 特定のファイルのgit addを取り消す
“`git
git reset HEAD [ファイル名]
“`

### commit編
– 1度でもaddしているファイルを対象にaddとcommitを同時に行う
“`git
git commit -am ‘コメント’
“`

– コミットしてしまった状態を元に戻す。HEAD^は直前のコミットを表している。git logで出力したコミットIDを指定することも可能
“`git
git reset HEAD^ –

元記事を表示

Github Actionで設計図を自動でREADMEに追加する。

## はじめに
drawioでAWSのインフラ構成図を書いていたのですが、これをREADMEから閲覧できるようになれば楽だなと思っていました。
しかし、拡張子drawioファイルはそのままだとREADMEに埋め込めないので画像形式にする必要がありました。
ですが、drawioファイルをいちいち画像形式に変換するのは手間になるのでGithubActionでデプロイすると自動で画像形式に変換する処理を実装しました。
## GithubActionとは
GitHub Actionsは、GitHubが提供する継続的インテグレーション/継続的デリバリー(CI/CD)プラットフォームです。
これを使用することで、リポジトリ内でのイベント(例:プッシュ、プルリクエスト、リリースなど)に基づいて自動的にワークフローを実行できます。

## コードの説明

まず全体像を共有します。
“`yml
name: Draw.io to PNG

on:
push:
paths:
– ‘*.drawio’
workflow_dispatch:

permissions:
cont

元記事を表示

Gitで内容が空のコミットをする

## 概要
大きな機能を開発するにあたりメインとなるブランチを作成するために、内容が空のコミットを行う必要があったためメモ

## コマンド
下記コマンドでdiffがなくてもコミットができます
“`
$ git commit –allow-empty -m { commit message }
“`

## 終わりに
知りませんでした。便利ですね

元記事を表示

git tagでかっこ付きのタグを作成する

git tagでかっこ`()`付きのタグを作成する機会があり、その際に少し詰まったので共有します。

# 環境

– MacOS 14.5
– git version 2.46.0

# 事象
git tagで以下のように`()`付きのタグを作成しようとしたところ、下記のエラーが発生しました。

“`
git tag v1.0.0(hogehoge)
bash: syntax error near unexpected token `(‘
“`

# 解消方法
タグ名をダブルクオーテーションで囲むだけです。
これで`()`付きのタグを作成できます。

“`
git tag “v1.0.0(hogehoge)”
“`

# なぜエラーになったのか?

`()`が特殊な文字として扱われたからです。

bashには`()`でくくったコマンドをサブシェルで実行するという機能があり、そのため`()`が特殊な文字として扱われてしまうようです。

`()`をタグ名として使うためには、bashに`()`を普通の文字として扱ってもらう必要があります。
`””`や`\`でエスケープすると、普通の文

元記事を表示

Gitコマンド各種

# 概要
自分が普段よく使うGitコマンドをメモとして残します

## ブランチ作成関係
### ローカル・リモート共に存在するブランチからローカルブランチを切る場合
“`bash
git branch
* feature/1
develop

git checkout develop

git pull origin develop

git checkout -b new_branch_name
“`

### リモートのみに存在するブランチからローカルブランチを切る場合
“`bash
git branch
* develop

# リモート追跡ブランチを確認する
git branch -r
origin/HEAD -> origin/develop
origin/develop
origin/feature/git_test ★今回の作成対象

# リモートブランチからリモート追跡ブランチ(ローカル上に存在するリモートブランチのコピー)の[origin/feature_git_test]を作成する
git fetch

# リモート追跡ブランチからローカルブランチを作成する

元記事を表示

【学習記録_Vue.jsの前に】Windows GitHub cloneで早速つまずいた話

## はじめに
フロントエンドエンジニアのhara-showです。
Webコーダーとして活動しています。

この度、Vue.jsを使用した
チーム開発プロジェクトに参加することになりました。

Vue.jsでの開発は初めてなので、
学習内容やプロジェクトでの気付きを、記録として投稿していきます。

## 早速つまずいた内容
開発環境構築のため、まずはリポジトリをクローンしようとしましたが、
エラーが発生してしまいました。

## 発生した問題

git clone コマンド実行時に
以下エラーが発生しました。

`remote: Repository not found.`

HTTPS, SSH 両方試しましたが、同じエラーが発生。

私の環境はWindowsですが、
チームのみなさんはMacだったためか、
やり方が異なるようでした。

## 解決手順
2回にわたって私の画面を共有しつつ
チームメンバーにサポートいただき、以下の手順で解決しました。

1.ローカルでssh key発行
2.Githubに公開鍵登録
3.接続確認
 `ssh -T git@github.com`
4

元記事を表示

Git GitHubの最低限の使い方

# はじめに
GitとGitHubについて、本当に最低限の使い方について学んだので、その備忘録です。

# Git
Gitは、テキストファイルなどのバージョンを管理するためのソフトウェア(インストール方法は省略)。リモートリポジトリとそのコピーのローカルリポジトリがある
#### ローカルリポジトリの作成
1. ローカルにディレクトリを作る
1. その中で`$ git init`
#### リモートリポジトリへのアップロード
`$ git push origin main` (mainはブランチの名前)
#### リモートリポジトリの最新の状態をローカルリポジトリにダウンロードして反映する
– `$ git pull`
– `pull` = `fetch` + `merge` とのこと
#### 変更したファイルを元に戻す
`$ git checkout .`
#### コミットログを見る(下記は5つ前まで)
`$ git log -5`
#### 現在のブランチの状態を確かめる
`$ git status`
#### ブランチ一覧確認
`$ git branch`
#### orig

元記事を表示

OTHERカテゴリの最新記事