今さら聞けないGit 

今さら聞けないGit 

作業途中だけどgitからpullしたい

最近、暖かくなったり寒くなったりコロコロ変化する気温に翻弄されております。

この間初めて作業途中にgitの最新ブランチからpullしてくる必要がありました。
やり方を調べて実際にやってみたので知識の整理も兼ねて先ほどのトピックスについて説明していきたいと思います。

# 今回使った方法
今回使った方法としては`git stash`で作業中のファイルを退避させる方法です。
作業を一旦commitし、後にこのcommitを上書きする形で最新のブランチをpullする方法もあるようなのですが、今回は次のcommitができるまでに時間がかかりそうだったのでファイルを退避させる方法を採用しました。

# やり方
“`terminal
# git管理下にある編集中ファイルの退避
$ git stash

# masterのコミット履歴をリモートリポジトリまで進める
$ git checkout master
$ git pull origin master

# 作業中のブランチに戻ってくる
$ git checkout feature-branch

# masterブランチの修正内容を取り込

元記事を表示

【GitHub】.DS_Storeを無視してGitで管理するには

MacでGitを利用をするにあたって、鬱陶しいのが.DS_Storeの存在だと思う。
「.DS_Store」とはそもそもmacOSによって生成された隠しファイルであり、.DS_Storeの格納先フォルダ情報を保存する役割を持っている。
.DS_Storeは開発者にとって意図していない時に生成されるため、Gitでファイル管理をしている際に誤ってpushしてしまうなど管理が難しいという側面を持っている。

本記事では、.DS_Storeが生成されていたとしても、無視してGit管理できるような設定の仕方について記載していく。

# 参考文献
[GitHub Docs](https://docs.github.com/ja/get-started/getting-started-with-git/ignoring-files)

https://docs.github.com/ja/get-started/getting-started-with-git/ignoring-files

# コンピューター上のすべてのリポジトリについて無視するファイルを設定す

元記事を表示

Gitブランチ操作:ローカルとリモート間での同期とエラー対処法

### **user**:

ChatGPT先生、Gitで、ローカルにはないブランチがリモートにあって、それを pull したいんですけど、そのとき

“`
git checkout branch_a
“`

ってするのはダメですよね?

### **assistant**:

え、ええとね…そのコマンドだと、ローカルに存在しない’branch_a’に直接チェックアウトしようとするから、エラーが起きてしまうわ。

正解はこうなのよ…

“`
git fetch origin
git checkout -b branch_a origin/branch_a
“`

まず、`git fetch origin`でリモートリポジトリの最新情報をローカルに持ってきて、それから`git checkout -b branch_a origin/branch_a`でリモートの’branch_a’をローカルに新たなブランチとして作成しつつその新しいブランチにチェックアウトするのよ。

いやだから、別に君を助けたくて教えたわけじゃないわよ? そう…ただ学生達が間違えないようにと

元記事を表示

Git 導入

## Git とは
ソースコード等の管理に使用される、バージョン管理システム。
バージョンの新旧に関わらず一元的に管理することができ、任意のタイミングで任意のバージョンに戻すことができる。

## Git インストール手順
### 1. 下記 URL にアクセスする
https://git-scm.com/

### 2. インストーラをダウンロードする
Downloads をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3749137/6b941a54-b6fe-87d5-59d4-78989da07b87.png)

Windows をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3749137/3f34b2ee-3109-de30-0136-1a45f880cc83.png)

Click here to download をクリック
![image.png](h

元記事を表示

gitbucketからgithubにリポジトリを移行してみた

## はじめに
gitbucketで管理していたリポジトリをgithubに移行した手順の備忘録です。
## 移行方法
プライベートなリポジトリの移行だったため、私は以下の手順で移行しました。
1. 移行先のgithub新規リポジトリを作成する
https://github.com/new
1. 移行元のgitbucketリポジトリを一度ローカルにクローンする
 “`
git clone –bare https://gitbucket.hogehoge/fugafuga.git
 “`
※“–bare“オプションを使うことで完全コピーのリポジトリをクローン可能
※このとき認証情報を聞かれるので、gitbucketのユーザー名とパスワードを用意しておく
1. クローンしたローカルの場所に移動する
 “`
cd fugafuga.git
 “`
1. 1で作成したgithubリポジトリに向けてプッシュする
 “`
git push –mirror https://github.com/hogehoge/fugafuga.git
 “`
※“–mirror“

元記事を表示

Secretlintでリポジトリに対して共通的な制限を設ける

## はじめに

本手順で紹介しているコードは、[azu さんが作成したコード](https://github.com/azu/git-hooks)から Notion や 1password の利用を取り除いただけのコードです。
本記事を投稿するにあたって、このような利用方法があると視野を広げてくれた azu さんに感謝の言葉を送ります。

## Secretlint とは

https://github.com/secretlint/secretlint

– Scanner: プロジェクト内の credentials 情報が見つけ報告
– Project Friendly: 簡単にプロジェクトに導入でき、CI サービスにも利用可能
– Pre-Commit Hook: credentials 情報のコミットを防止
– Pluggable: カスタムルールで柔軟な構成の作成が可能
– Documentation: ルールの検出理由を説明

## Demo

簡単なデモがありますので[こちら](https://secretlint.github.io/)をご覧ください。

## 導入手

元記事を表示

編集の差分を扱う git diff, git status, git checkout

# 概要
本番環境で編集した時に差分を見ることができる git コマンドを紹介します。
ファイル内を編集することなく、差分を解消して元の状態に戻してくれるgitも紹介します。

# 対象者
– 差分をみたい方
– 差分を解消したい方

# 紹介するgitコマンド
ファイルの編集結果をすべて見たい場合は
“git status “

1つのファイルの差分を見たい場合は
“git diff “
“git diff — **ファイル名**“

1つのファイルの差分を解消して、編集を無かったことにしたい場合は
“git checkout “
“git checkout — **ファイル名**“

:::note warn
**注意点**
実行する際は、ディレクトリを該当リポジトリに移動してから行いましょう。
:::

## git status
– すべての差分を “modified: ****.rb“ 形式で表示してくれます
– “config/application.rb“ のようにディレクトリも一緒に表示してくれます

“` terminal:ディレクト

元記事を表示

Gpg4winとGit for Windowsでgithubを使う①:環境整備

## はじめに
この記事は,githubにsshアクセスし,gpgで署名付きのコミットを行うための環境整備手順です。

## やりたいこと
鍵管理はGpg4winに集中させたいと思います。ssh鍵は、gpgの副鍵の一つとして扱いたいです。
また,Git for Windowsでgithubにsshアクセスできるようにもしたいと思います。

## インストール
### Gpg4win
普通にインストールするだけです。
### Git for Windows
普通にインストールするだけですが,「Choosing the SSH executable」で「Use exteral OpenSSH」を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3738861/218564b9-bd4d-0f4c-ab86-b9dea8f18d90.png)

OpenSSHを別途準備するのは,Git for Windows はMSYS2ベースで、内蔵の OpenSSH が ssh-agent と通信

元記事を表示

os再インストールでgit bashからgit hubへssh接続できなくなった場合の対象方法

# git cloneできなくなった

OS再インストール後、いつも通りgit cloneを行おうとしたら、以下のメッセージが表示されてクローン出来なかった。
“Please make sure you have the correct access rights and the repository exists.“

## 対処法
コマンドラインにおいて

“ssh-keygen -t ed25519“

“Created directory ‘/Users/ユーザー名/.ssh’.“
公開鍵と秘密鍵を生成するディレクトリを選択する。(特に指定がなければ、Enterで大丈夫)

“Enter passphrase (empty for no passphrase):“
接続時に使用するパスワードを入力(任意)

“Enter same passphrase again:“
入力したパスワードの再入力

鍵の作成完了。

## Githubへ生成した鍵の登録
コマンドラインにおいて

“cat ~/.ssh/ed25519_pub“

“ssh-e

元記事を表示

Node-REDのGit機能を学ぶ(5) フローをGitHubからRaspberry Pi 5へダウンロード

 [前の記事](https://qiita.com/kazuhitoyokoi/items/fa7d1f5259d99999873f)では「画像認識を行なうフロー」をGitHubへアップロードしました。本記事ではGitHub上に共有されているフローをダウンロードする方法を紹介します。ここでは開発環境と本番環境の分離したいケースを例として、Raspberry Pi 5のNode-RED環境にダウンロードしてみましょう。

# アプリ開発における開発環境と本番環境の分離
 産業向けIoT分野では、Node-REDを搭載したエッジデバイスが複数のベンダーから提供されています。これらデバイスでフローを開発する際、多くのフロー開発者はGit機能を有効にしていないデフォルトのNode-RED環境を使ってしまっています。しかし、デバイスは低消費電力や長期稼働向けに作られているため、開発環境に適さない場合があります。性能が低いこともあるため、「フローエディタの動作が遅い」、「デプロイボタンを押した後の待ち時間が長い」などの問題が発生することがあります。デバイスのGit機能を有効にすることで、開発環境と

元記事を表示

Node-REDのGit機能を学ぶ(4) フローをGitHubへアップロード

 本記事では変更履歴を作成したNode-REDのフローを、GitHub上に共有する方法を紹介します。GitHubにフローファイルを置くことでフロー開発者は、フローをバックアップするだけでなく、他のフロー開発者に分かりやすい形で開発物一式を共有できます。本記事は、下の図の様に前回の[「フローの変更履歴を管理」](https://qiita.com/kazuhitoyokoi/items/cd80a8b7f1fd1596f13a)の続きとなります。

![Screenshot 2024-03-12 at 20.44.20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/287766/6773f7cd-fec1-99f9-623e-f9ad958f3466.png)

 もしNode-REDのGit機能を有効化していない場合は[「Node-REDのGit機能を学ぶ(1) 概要編」の記事](https://qiita.com/kazuhitoyokoi/items/56ee43658f287f80156c#git

元記事を表示

VSCodeを使ってる時といない時でコミットメッセージを書くエディタを切り替える

環境:Ubuntu22.04 (WSL2)

# 問題
自分はVSCodeの統合ターミナルから`git commit`する際も、コミットメッセージをそのままVSCodeで書けるように`core.editor`は`code –wait`にしています。

しかしながら、他の端末アプリケーションからgitを操作する時に、VSCodeのような重厚なエディタが起動するのは鬱陶しい上、開いていたディレクトリなども消えてしまうので、代わりにnanoを起動させたいと思いました。

# 解決策
次のようにするとよいです。

“`:.gitconfig
[core]
editor = “`[ \”$TERM_PROGRAM\” = vscode ] && echo code –wait || echo nano`”
“`
`TERM_PROGRAM`を設定しない端末があるので、構文エラーを避けるために、ダブルクオートで囲っています。

自分の環境だとdashで実行されていました。恐らく/bin/shで実行するようになっている?

元記事を表示

git commit を実行したら「Author identity unknown」のエラーが出たときの対処法

## git commit を実行したら「Author identity unknown」と怒られた時の対処法
### はじめに
Gitをインストールした!コミットまでしてみよう!の段階でエラーが…。
無事に対処できたので未来の自分のためにメモとして残しておいてあげます。
あくまで自分用ですが誰かの参考になればちょっとだけ嬉しいかも。

### 実行文
“`
git commit -m “add new file”
“`

### エラー文
“`
Author identity unknown

*** Please tell me who you are.

Run

git config –global user.email “you@example.com”
git config –global user.name “Your Name”

to set your account’s default identity.
Omit –global to set the identity only in this repository.
“`
:::note

元記事を表示

git rebaseメモ

## 内容
gitでrebaseというコマンドがあります、そのメモです。

## 用途
複数のコミットを1つにする
複数のコミットを1つにまとめます。

ブランチのベースを変更する(履歴を綺麗に保つ)
例えば、自分が作業しているブランチから分岐した元のブランチ(例えば、main ブラン チ)に新しい変更が加わった場合、それらの変更を自分のブランチに取り込み、まるで自分のブランチが最新のmain ブランチから分岐したかのように履歴を再構成します。

## 状況例
以下の状況を想定します。
・作業ブランチに複数のコミットがある
・作業ブランチはmainブランチより作っている
・mainブランチは更新されている
上記状況に対し、作業ブランチに対し、最新のmainより派生した形で、作業ブランチのコミットを一つにし対応する(作業ブランチはmainの更新を取り込んでいる)

指定された状況に対応するための手順は、まず作業ブランチのコミットを1つにまとめた後、`main`ブランチの最新の変更を作業ブランチに取り込む、という流れになります。以下に、具体的なステップを示します

元記事を表示

Windows TerminalでGitBashを表示する設定をした後にすること

[こちら](https://qiita.com/yokra9/items/bdd0882268b308cf22ca)の記事を参考にWindows Terminal上にGitBashを表示する設定をしました。

https://qiita.com/yokra9/items/bdd0882268b308cf22ca

不具合というほどではないのですが、いくつか気になった点があったので対応しました。
自分用の覚書です。

## GitBashでコマンド履歴を有効にする
Windows Terminalに表示させる前まではコマンド履歴が記録されていたのですが、設定後から無効になってしまいました。
コマンド履歴を復活させるコマンドです。
“`
& history -a
“`

## .configファイル関係の置き場所変更
GitBashの.bash_historyファイルに限らずGit関係の設定ファイルが、ホームディレクトリに丸見えの状態で置かれるようになりました。
ホームディレクトリを開くたびに気になっていたので、設定ファイル関係を置いておく専用ディレクトリ「.config」を作成し、

元記事を表示

GitHubでCODEOWNERSを設定して強制的にレビュー文化を作ろう

# GitHubでCODEOWNERSを設定して強制的にレビュー文化を作ろう

ほとんど自分用メモ。

## 目標

GitHubで`CODEOWNERS`を設定してチーム開発において強制的にレビュー文化を作ろう。

## CODEOWNERSの概要

> CODEOWNERS ファイルを使い、リポジトリ中のコードに対して責任を負う個人あるいは Team を指定できます。

引用:https://docs.github.com/ja/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#example-of-a-codeowners-file

## 参考

https://docs.github.com/ja/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners

##

元記事を表示

VSCodeでgit rebaseを使ってコミットをまとめる

# はじめに
`git`には`rebase`というコマンドが存在し、以下のようなことを行うことが出来ます。
1. 作業ブランチの親コミットを、最後尾に変更する。
1. 複数コミットを1つにまとめる。

本記事では「2. 複数コミットを1つにまとめる」を`VSCode`を使用して簡単に行う方法をご紹介します。

①例えば以下のように、`main`ブランチから`feature`ブランチを生やすとします。

![002_.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3337466/a93632de-f410-c6a8-fdfd-974dd0aeddb2.png)

②続いて、`feature`ブランチで以下のような2つのコミットを行いました。

![002_new_2_commit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3337466/7118016e-6bf2-f3fd-b638-32650f549ed8.png)

元記事を表示

Git Checkoutでローカルの変更が全部ぶっ飛んだ時の対応

## VSCodeを使っている場合の解決策
誰もが少なくとも一回は経験したであろうGitの誤操作でデータぶっ飛ぶ問題、VSCode利用者のための最強の解決策を見つけてしまったかもしれません。

半月ほど前から初めてチーム開発を始め、Gitを勉強しながらコーディングし続ける日々の中、その出来事は起こりました。

チームメンバーの一人のプルリクエストでマージコンフリクトが発生し、解決しなければならない!すかさずGitHub Desktopをダウンロードしブランチを切り替えるがマージコンフリクトのエディタが見つからない。さあここでVSCodeを開いて、彼のブランチをcheckoutする。ローカルの変更をスタッシュ?何だそれ?ポチッ。
あれ?何かがおかしいぞ。ん?今日作ったはずのチャット画面が消えている。もしやこれは…

てなシチュエーションです。調べてみると、Gitはコミットした地点に巻き戻すことはできるが、コミットしていなかったらもう復元不可、ただしVSCodeユーザーには抗う術が与えられています。Git Checkoutと関連して記事が書かれていないので、備忘録も兼ねて今回共有することに

元記事を表示

CodeCommitをremoteに追加する

普段はBackLogにあるGitリポジトリを使っています。
CodePipelineを使いたいのですが、BackLogのGitと連携しようとするとちょっと大変そうだったので、
CodeCommitでリポジトリを作って、remoteにCodeCommitのリポジトリを追加する際の手順です。

## 環境

AWSアカウントが複数あり、CodeCommitを設置したAWSアカウントには、普段Switchロールしてアクセスしています。AWS CLIにはAssumeRoleするプロファイル(profile1)が設定してあるという状況です。

https://docs.aws.amazon.com/ja_jp/codecommit/latest/userguide/setting-up.html

> フェデレーティッドアクセス、ID プロバイダー、または一時的な認証情報を使用して CodeCommit や AWS に接続している場合、または IAM ユーザーや、IAM ユーザーの Git 認証情報を設定しない場合は、次の 2 つの方法のいずれかで CodeCommit リポジトリへの接続を設定

元記事を表示

Gitにおけるローカルとリモートのブランチ操作:初心者から中級者への道のり

### **user**:

ChatGPT先生、プロジェクトのチームメイトが何かGitHubレポジトリの更新をおこなったかもしれないので、確認したいと思ってます。

“`
git pull
“`

したところ、次のようなメッセージが来ました。

“`
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.

git pull

If you wish to set tracking information for this branch you can do so with:

git branch –set-upstream-to=origin/ branch_a
“`

これがどういう意味で、何をすれば良いか解説お願いして良いですか?

### **assistant**

元記事を表示

OTHERカテゴリの最新記事