今さら聞けないGit 2023年02月15日

今さら聞けないGit 2023年02月15日

【GIT】一時保存してブランチを移動する方法

# 背景
チーム開発をしていると、現在着手しているチケットの作業中に、前回チケットのレビュー結果が返ってくることがある。すると現在作業しているブランチから前回チケットのブランチに移らなければならない。その時に内容は保存してブランチを移動させたいがコミットはしたくない。

# やりたいこと
コミットはせずに一時保存してブランチを移動したい。

# 方法
### stashを使う
`$ git stash`を用いることで現在いるブランチの編集内容を一時保存することができる。
“` ruby:
# 現在いるブランチの編集内容を一時保存
$ git stash
$ git switch <移動先のブランチ>
“`
一時保存の内容を反映させたいときは`$ git apply`を実行する。
“` ruby:
# 一時保存の内容を反映させる
$ git apply
“`
# 参考

https://www.granfairs.com/blog/staff/git-stash

元記事を表示

Gitの初期設定

GitとGitHubを連携させたので、忘れた時のためにメモ。

“`
% git config –global user.name “user.name”
% git config –global user.email user.email@example.com
% git config –global core.editor “atom –wait”
“`

設定した情報は、`cat ~/.gitconfig`で確認可能。

元記事を表示

リモートにある最新のmainブランチをローカルにあるブランチにマージさせる

## はじめに
リモートリポジトリにある最新のmainブランチを取得して、
ローカルリポジトリにある自身の作成したブランチに取り込む方法。

チームで開発をしている以上、それぞれブランチを切って作業することになります。
その作業ブランチをmainブランチにマージさせて、リモートリポジトリにあげていくわけですが、それを自身のブランチに取り込むことはよくあります。
なので今回はその作業の方法をまとめていきます。

## 方法
### mainブランチに移動する
“`terminal
$ git checkout main
“`

### git pullでmainを最新にする
“`
$ git pull origin main
“`

### 開発用ブランチへ移動
“`
$ git checkout be-webtest
“`

### mergeコマンドでmainの内容を取り込む
“`
$ git merge main
“`

## 注意点
マージをする際、コンフリクトする可能性があります。
コンフリクトが起こるとマージできないので、修正する必要があります。
基本的にコー

元記事を表示

リモート環境でブランチを作成してローカル環境で新しくブランチを切る方法

## 前提条件
– 今回の新しいブランチをリモート上(github)で作成し、その後ローカルでも同じブランチ名でブランチを切っていく

## 方法
### fetch してあげる
“`terminal
$ git fetch origin
“`
`fetch`コマンドを使って、リモートリポジトリの最新の履歴の取得をしてあげる
その際、`origin`をつけてあげる

### リモート上にあるブランチをローカル上にも作成する
“`terminal
$ git checkout -b 27-be-webtest-adminapi origin/27-be-webtest-adminapi
“`
上記コードを打つことで、リモート上にあるブランチをローカル上にも作成することができる。
その際ブランチ名は同じにしてあげるのがベター。

確認してみるとローカル上のブランチに追加されている。
“`
CA8775: OOOOOOOO$ git branch
* 27-be-webtest-adminapi
be-webtest
main
“`

先にローカルにブランチを作って、プッ

元記事を表示

いろいろな認証付きProxyの突破方法

大企業&セキュリティに厳しい企業だとインターネットに出る際にプロキシ経由のパターンが多いため、よく使うやつをメモ。

### 基本
だいたいこの書式
“`
http://${認証ユーザID}:${パスワード}@proxyのIPアドレス:ポート
“`

#### とりあえず問答無用でいれる(curlとかはこれでいけるはず)
“`
export HTTP_PROXY=http://${認証ユーザID}:${パスワード}@proxyのIPアドレス:ポート
export HTTPS_PROXY=http://${認証ユーザID}:${パスワード}@proxyのIPアドレス:ポート
“`

#### yum
“`/etc/yum.conf
proxy=http://${認証ユーザID}:${パスワード}@proxyのIPアドレス:ポート
“`

#### apt
“`/etc/apt/apt.conf
Acquire::http:Proxy “http://${認証ユーザID}:${パスワード}@proxyのIPアドレス:ポート”
Acquire::https::Proxy “ht

元記事を表示

【AWS】CodeCommitのGitコマンド備忘録

AWS CodeCommitでのAWS-CLIとgitコマンドによるレポジトリの作成・編集・アップロード・インポートの方法を紹介する。

## レポジトリの作成
レポジトリの作成はAWS-CLIを使用する。

1. AWS-CLIの認証を行う
デフォルトのリージョン名は、CodeCommit のリポジトリの AWS リージョン と一致する必要がある。
“`
aws configure
>AWS Access Key ID [None]: ASIA**************
>AWS Secret Access Key [None]: *********************
>Default region name [None]: ap-northeast-1
>Default output format [None]: json
aws configure list
“`
1. ~/.aws/credentialsの認証情報にセッショントークンを追加する
※必要な人だけ
“` ~/.a

元記事を表示

【Git】カレントブランチ名を取得する方法

以下のコマンドでカレントブランチ名を取得できます。

## `git rev-parse`
“`:ターミナル
$ git rev-parse –abbrev-ref HEAD
main

$ git rev-parse –abbrev-ref @
main
“`
detached HEADの場合にはHEADと出力される。

## `git symbolic-ref`
“`:ターミナル
$ git symbolic-ref –short HEAD
main
“`
detached HEADの場合には`fatal: ref HEAD is not a symbolic ref`と表示され異常終了する(終了コード: 128)。

## `git branch`
“`:ターミナル
$ git branch –show-current
main
“`
detached HEADの場合には何も出力されず正常終了する。

## `git name-rev`
“`:ターミナル
$ git name-rev –name-only HEAD
main

$ git name-

元記事を表示

EclipseでGithubからSpring Bootプロジェクトをクローンする

# はじめに
Eclipseを使用して、GithubからSpringBootプロジェクトをクローンしてくる手順を記事にしたいと思います。
使用しているのは Eclipse-2022-12 記事執筆時点で最新verとなります。

# GitHubからClone
まずEclipseを起動し、右上のパースペクティブを開くからGitを選択します。

Gitリポジトリーのクローンをクリックします。
gitのstashを使いこなせるようになりたい

## はじめに
チーム開発などをしていると、他メンバーの進捗によってコンフリクトなどを恐れて先に進めないなんてことがあるとのこと。
そんなときに役立つのがgitの`stash`。
そんなstashを使いこなせるようになりたい。少しずつ慣れていけるようにしていく。

## shashとは
stash は退避するという意味を持つそう。
今とあるブランチで作業してるけど、急にやりたいことができた。でもコミットしたくない。→ そんなときに使えるのがStashとのこと。
stashを使用すると、コミットしていない変更を退避することができる。
stashで現在の変更を退避して、今すぐやりたい作業をして、退避させていた変更を戻して作業を再開することができる。

## 実際の使い方
### 現在の作業を一時的に退避したい
“`
$ git stash save
“`
– save は省略できる。 また、 save の後に内容を表すメッセージを指定することができる。
– 下記のようにメッセージ指定して書くことができる。

“`
$ git stash save “◯◯を修正中”
“`

###

元記事を表示

git プロンプト

“`
# 補完で小文字でも大文字にマッチさせる
zstyle ‘:completion:*’ matcher-list ‘m:{a-z}={A-Z}’

# git
autoload -Uz vcs_info
setopt prompt_subst
zstyle ‘:vcs_info:git:*’ check-for-changes true
zstyle ‘:vcs_info:git:*’ stagedstr “%F{magenta}!”
zstyle ‘:vcs_info:git:*’ unstagedstr “%F{yellow}+”
zstyle ‘:vcs_info:*’ formats “%F{cyan}%c%u[%b]%f”
zstyle ‘:vcs_info:*’ actionformats ‘[%b|%a]’
precmd () { vcs_info }

# プロンプトカスタマイズ
# branchの前を表示したい場合はboost noteを参照
# PROMPT=’%F{cyan}$vcs_info_msg_0_%f $ ‘
PROMPT=’%. %F{cyan

元記事を表示

最近知ったgit checkout のある動作

次のように、Androidプロジェクトのディレクトリを削除した。

“`shell
rm -rf .idea
“`

そして、次のように`git checkout 削除したディレクトリ名`を実行してみた。

“`shell
git checkout .idea
“`

そしたら、次のように表示された。

“`shell
Updated 4 paths from the index
“`

今までAndroid StudioやVSCodeを使っていたので、意識したことがなかったが、どうやらこの動作はステージから作業ツリーに特定のファイルを戻す処理らしい。なので、削除されたファイルが削除される前の内容に復元されたみたいだ。

# 参考にした記事

https://dev.classmethod.jp/articles/git-reset-and-git-checkout/

https://github.com/android/nowinandroid/issues/527

元記事を表示

AzureDevOpsにSSH公開鍵を登録して、GitRepositoryにSSH接続する

# はじめに

自分はGitRepositoryにSSHで接続する派です。
Windowsマシンを使ってた頃、複数の接続先を持ちすぎたのか、頻繁にPWを聞かれてうんざりしてからSSH派になりました。

AzureDevOpsのSSH鍵有効期限は「1年」です。(2023/02/10時点)
毎年やらなきゃいけないことをその度に調べ直すのは嫌なので、メモしておきます。

なお、AzureDevOpsへの登録方法を記述しますが、GitHubでもノリは同じです。

# 環境

“`text
macOS 13.1
“`

# 公開鍵・秘密鍵の作成

## sshフォルダに移動

“`terminal
$ cd ~/.ssh
“`

## 鍵ペアの生成

“`terminal
$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/[userName]/.ssh/id_rsa): key_azure_devops
Enter passph

元記事を表示

【GIT】git pushした際に発生したエラーの解消方法

# エラー事象
`$ git push`を実行したところ下記エラーが発生した。
“`
fatal: The current branch hoge has no upstream branch.
To push the current branch and set the remote as upstream, use
git push –set-upstream origin hoge
To have this happen automatically for branches without a tracking
upstream, see ‘push.autoSetupRemote’ in ‘git help config’.
“`

# 原因
作成したブランチの「追跡ブランチ」が未設定のため、`$ git push`でどこにpushして良いのかわからずにエラーとなっていた。

# 対処法
追跡ブランチを新規設定してpushを実行する。
`$git push –set-upstream origin <追跡ブランチ名>`

# 参考
https://www.tfsap

元記事を表示

Gitでフォルダ/ファイル名の大文字小文字を区別させる方法

>既定では、Windows および macOS のファイルシステムは大文字と小文字が区別されません。
>一方、ほとんどの Linux ファイルシステムは大文字と小文字が区別されます。

[Git の大文字と小文字の区別](https://learn.microsoft.com/ja-jp/azure/devops/repos/git/case-sensitivity?view=azure-devops)

Windows および macOS では、 AAA.txt と aaa.txt は同じものとして認識します。
そして、Gitは各OSのファイルシステムと同じになるよう初期設定されています。
これは Git でのフォルダ/ファイル名の大文字小文字の管理を困難にさせます。

## Windows / macOS の Git で大文字小文字を区別させる方法
以下のコマンドを実行することで、Gitの設定を変更し、
フォルダ/ファイル名の大文字小文字を区別するように指定することができます。

“`bash
git config –global core.ignorecase false
`

元記事を表示

【GIT】masterブランチを最新にして新規ブランチを切る手順

# 背景
チーム開発をしていると、新しいチケットに着手する際、masterブランチを最新にして新規ブランチを切る必要がある。
ここではその手順を記載する。

# 方法
“` ruby:手順
# masterブランチに切り替える
$ git switch master
# リモートリポジトリから最新の履歴をmasterブランチに反映させる
$ git pull
# リモートリポジトリから最新の履歴をアップストリームブランチに反映させる
$ git fetch origin
# masterブランチとアップストリームブランチに差異がないか確認する
$ git diff origin/master # 何も出力されない
# 新規ブランチを切る
$ git switch -c <ブランチ名>
“`

# 参考

https://qiita.com/yuyuchu3333/items/a30387bdd6a0afc1185c

https://blog.masuyoshi.com/workend-git-rebase/

元記事を表示

消したAzure DevOps Wikiの中身を取り出す

すでに消してしまったAzure DevOps Wikiの中身を再び見たいということがある。

全く空っぽにしちゃった場合は、とりあえず1つ仮ページを作る。
すると、そのAzure DevOps Wikiに関するメニューが操作可能になる。

![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36428/b0527e92-b5e7-387d-7343-59baec21aa7d.jpeg)

`Clone wiki` を選ぶとrepositoryをcloneするurlが得られる。

![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/36428/aaeecfd5-7189-d45b-1cae-11d382ca5f13.jpeg)

これを手元にgit cloneする。
あとは `git log` なり `git revert` なり `git diff prev-commit-id that-commit-id` なりす

元記事を表示

Github使いやすいコツ

## 参照記事

https://knowstechnic.blogspot.com/2023/02/github-advanced-operation.html

## Githubとは

GitHubは、ソフトウェア開発用のバージョン管理と協力サービスを提供するWebベースのプラットフォームです。開発者はコードを保存し管理し、変更を追跡し、他のチームメンバーとのプロジェクトに参加することができます。
GitHubはバグトラッキング、機能リクエスト、プロジェクト管理、Wikiなどの他の機能も提供しており、開発者がプロジェクトをより管理するのに役立ちます。
コアの機能に加えて、GitHubはオープンソースソフトウェア開発のハブとしても使用されており、開発者は多種多様なオープンソースプロジェクトに貢献し共有することができます。
全体として、GitHubはソフトウェア開発と協力のための人気のあるプラットフォームであり、世界中のあらゆる規模の開発者や組織が使用しています。

## 今回の記事の目的

GithubGithub使いやすいように幾つのコツを紹介しようと思います。

#

元記事を表示

プルリクをマージした後のブランチにCommit&Pushするとどうなるのか。

# プルリク(PR)をマージした後のブランチにPushするとどうなるのか。
表題の通りです。
普段は、対応通りにブランチを切って、PRがマージされたらブランチを消してるんです。

1. main → develop → feature

feature → develop
でPRを出す。
1. 無事マージされてPRがクローズされる。
1. feature で更新があり、コミットとプッシュがなされる。
1. どうなる????(表題の疑問)

## 結論
developで止まる。
mainに反映させたい場合はdevelopブランチからmainブランチに向けてPRを出して
それをマージすることで実現できる。

## 確認手順
1.  Githubにリポジトリを用意する。
1.  mainブランチを作成する。
1.  mainブランチからdevelopブランチを作成して、PRをmainブランチに向けて出す。
1.  PRをマージする。(delete branchしない)
1.  developブランチからfeatureブランチを作成する。
1.  feautreブランチからdevelopブラ

元記事を表示

git filename too long

“`
git config –system core.longpaths true
“`

元記事を表示

ディスクの空き容量が足りなくなった時【gitのログ見直し】

### 状況
– “`git clone“`をして検証したいブランチを反映している。
– 検証環境でディスクの空き容量が足りなくなり「No space left on device」が発生する。
– 不要なログ、ファイルを削除しても解消されない。

### 試したこと
– 容量の重いファイルを“`du -m“`コマンドを使って探していく。
– プロジェクトディレクトリの“`.git/objects“`の容量が大きくなっていることを確認

### “`.git/objects“`って何してるの?
– リポジトリにあるファイルの差分や履歴を管理しているオブジェクト
– コミットが多くなると容量は肥大化していく
– 容量の大きいファイルをコミットした場合なども容量が大きくなるため危険

### 解決策
– Shallow Clone
– 検証環境では、毎回クローンしなおしていたので、“`git clone“`時に“`–depth“`のオプションをつけることでクローンするときに、どこまでログを遡って取得するかを指定する。
– “`g

元記事を表示

OTHERカテゴリの最新記事