今さら聞けないGit 2022年03月16日

今さら聞けないGit 2022年03月16日

Git + GithubをMacでの使い方

GitHubでhttpsのパスワード認証が廃止された様でMacのターミナルにてコマンドにての操作を順を追って記載してみました。

元記事を表示

プロジェクトで運用するGitのブランチフローを考えて運用した話

一年ほど前に社内の受託開発で新しいプロジェクトにアサインされることになり、何もないところから GitHub を使ったプロジェクトを立ち上げ、今に至るまで運用している内容です。
基本的には後々の運用を考えた時に情報源になり、かつ Git 操作に極力手間を取られることがなく、CI/CD を回しながら品質を維持できる内容で考えました。

設計思想としては個人開発で CI/CD 込みの簡単なブランチフローを運用しているため、それを土台にしています。

## 欲しかったフローの要件

### 取り回しが単純明快であること

開発以外の要素に振り回されないように単純なフローにしています。
世に言われる履歴の綺麗さとか言うのは個人的には関心が薄いので重視していません。
その代わりコミットが壊れないことや、インデックスとして見やすくなるような部分を重視しています。

### GitHub との相性が良いこと

まず個々の開発タスクを Issue ベースで管理し、Pull Request ベースで取り込む運用としました。
Pull Request の取り込み方式は Squash Merge とし、メイン

元記事を表示

Bitbucketでアカウントパスワード認証ができなくなった時の対処方法

## 概要

Bitbucketでソース管理しているアプリケーションで
git fetchをしようとした時に以下のような文言が出てソース取得ができなくなっていた。

“`
[sample-app]# git fetch
Username for ‘https://bitbucket.org’: HogeTarou
Password for ‘https://HogeTarou@bitbucket.org’:
remote: Bitbucket Cloud recently stopped supporting account passwords for Git authentication.
remote: See our community post for more details: https://atlassian.community/t5/x/x/ba-p/1948231
remote: App passwords are recommended for most use cases and can be created in your Personal settings:

元記事を表示

git rebaseの個人的な理解

## rebase
### 概要
今いるbranchの根本を変えるコマンド

![git_rebase.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/548975/cabe44f6-372b-4732-2466-74bceffab56b.jpeg)

### コマンド

“`bash
$ git rebase develop
“`

### rebaseの途中で止まったら

コンフリクトがあります。

`git status`で出てきた赤いプログラムを見に行って、変更箇所のどっちを残すか指定しましょう。

明らかにpythonとかそういうプログラムじゃないもの(`>>>なんちゃら`)みたいなもののが追加されているんで、それがコンフリクト起こしてるものです。

上の図の場合はdevに入っているほうが(`>>>なんちゃら`)になっていました。

それが直し終わったら`git rebase –continue`を打ってrebaseの続きを行いましょう。

終わると上の赤色のfeature/1みたいなブラ

元記事を表示

Git:導入までの備忘録

# 目的
Windows への Git の導入や Github との連携などの自分用の備忘録
ふわっとした理解で書いているので間違ってたりすることもあるかもしれないので、
その時は指摘していただけると嬉しいです。

# Git のインストール
1. 以下の URL から自分の OS にあった bit の Git のインストーラをダウンロード
[Git] ダウロードページへ
2. インストーラを起動して、Git をインストール。
※Windows の PATH 設定の際に、コマンドプロンプトから起動できるようにする
3. Git インストール完了

[Git]:https://git-scm.com/downloads

# Git の基本的な使い方
コマンドプロンプトで操作することを想定して以下の操作を行う。
### Git でローカルリポジトリを作成
Git で管理したいフォルダを作成し、そのフォルダに移動
“`
mkdir [フォルダ名]
cd [フォルダ名]
“`

“`git init“` コマンドを実行。
おわり

### Git で追跡しないファイルの設定
Gi

元記事を表示

Git 設定、複数アカウント運用メモ

Git 関連の設定は、一度行ってしまって以降は滅多に振り返ることがないんじゃないかと思います。
そして、新しくアカウントを取得する必要性が出てしまったときや、環境を一新したときには、設定のノウハウを忘れてしまい、また調べることになるのです。
今回、私は新しいゲーミング PC を購入し、めでたく調べなおしたのでした。

# 1. SSH のインストール

GitHub など、サーバー上のリポジトリへのアクセスは、SSH を用いることにより、毎度アカウント情報を入力することなく、簡便かつセキュアに通信 (commit, push など) することができるようになるため、SSH の導入は必須です。
macOS など、Linux 系 OS なら、SSH 関連コマンドが揃っていますが、Windows ではデフォルトでは使えません。
Windows で SSH を使用するためには、Microsoft 的には WSL (または後継の WSL2) のがセオリーなのかもしれませんが、より簡単に、ここでは Git for Windows をインストールして、そこに含まれる SSH ツール群を使います。

元記事を表示

git リポジトリにアクティブな変更が多いため、 git 機能の一部のみが有効になります。のMACでの対処法

# 原因:恐らくuserの階層でgit initしたことが原因
対策方法

1. ユーザーのファインダーに行く(個々の名前が出ています)

ファインダーの中で

Command + Shift + .

を押して隠しファイルを表示し

.gitファイルを削除すると直る

![スクリーンショット 2022-03-15 11.46.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1246495/b177c0c4-413c-87e0-903f-523c6c214592.png)

参考:[The git repository
at ‘c:\Users\(username)’ has too many active changes, only a subset of Git features will be enabled](https://discuss.codecademy.com/t/the-git-repository-at-c-users-username-has-too-many-active

元記事を表示

[Git] ローカルだけにのみ存在するブランチを削除する(強引版)

# はじめに

Git で作業しているとローカルブランチがどんどん増えていきます。
リモートブランチでマージされたブランチは削除してしまいたいのですが、その際ちょっと困った事象に直面しました。

# 直面した問題

“`sh
git branch –merged
“`
を実行しても、(マージされたはずの)ブランチが表示されない。

基本的には、`master` or `main` ブランチで `git fetch` をして、`git branch –merged` をすればマージされたブランチの一覧が表示されることが大半です。

その場合は、下記のコマンドでローカルブランチを削除できます。

“`sh
git branch –merged | grep -v ‘master’ | xargs -I{} git branch -d {}
“`

もしくは、

“`sh
git fetch -p
# or
git fetch –prune
“`

# 上記ではどうにもならない場合

今回の主題はこの部分です。
`git branch –merged` がうまく効かな

元記事を表示

Sourcetreeのパスワード初期化(mac)

以下の対応で必要になったのでまとめ

https://qiita.com/xy2/items/d28371dd94ea9b0336fc

# 解消方法
Keychainにパスワードが保存されているらしい

**「その他」 > 「キーチェーンアクセス」** で `キーチェーンアクセス.app`を実行

**sourcetree** を検索 → 検索対象を削除

※なぜか自分の環境だと **macのメニューバー 「編集」 > 「削除」** でしか削除できませんでした…

元記事を表示

Bitbucket Cloud recently stopped supporting account passwords for Git authentication を解消したはなし

Bitbucketからpullしようとした際に、エラーが発生したので解消方法のまとめ

# エラー内容
“`
fatal: Authentication failed for ‘https://bitbucket.org/xxx/xxx.git/’
remote: Bitbucket Cloud recently stopped supporting account passwords for Git authentication.
remote: See our community post for more details: https://atlassian.community/t5/x/x/ba-p/1948231
remote: App passwords are recommended for most use cases and can be created in your Personal settings:
remote: https://bitbucket.org/account/settings/app-passwords/
“`

エラー内容通りに、
htt

元記事を表示

【Git】ローカルブランチを強制的にリモートブランチの状態へ変更するコマンド

競合解消時に何がなんだか分からなくなり、全てを無かったことにしたくなった時に使った。

:::note warn
警告
pushしていない変更がある場合、その変更は消えます
:::

“`
git reset –hard origin/ブランチ名
“`

例えば「ローカルのdevelopブランチをリモートのdevelopブランチの状態にする」
“`
git reset –hard origin/develop
“`

元記事を表示

GitでSubmoduleを含むリポジトリをCloneできないときの対処方法

先日友人と共同作業をするために、友人のGitリポジトリをCloneする機会がありました。

このリポジトリにはSubmoduleが含まれていたので、

“` bash
$ git clone –recursive リポジトリ.git
“`

の形でcloneしようとしたのですが、見事にエラーになりました。

“` bash
Submodule ‘サブモジュール名’ (git@github.com:サブモジュールの場所.git) registered for path ‘サブモジュール名’
Cloning into ‘ローカルのパス’…
Host key verification failed.
fatal: Could not read from remote repository.
“`

と言われてしまいました。

ちなみに、GitHub DesktopでCloneした場合は以下のようなメッセージが出ます。

“` Clone failed.txt
Authentication failed. Some common reasons include:

– You

元記事を表示

vscodeのソース管理の量が5k以上なので削除する方法

途轍もない量のgitのソース管理のフォルダがあったので
その削除をするコマンドが以下になり削除できました。
git initをしたままにしておいたのが原因らしい

“`git
rm -rf .git
“`

元記事を表示

【Git】よく使うコマンド

# はじめに
gitのよく使うコマンドを備忘録として記述します。

# git add, commit の取り消し
### git add の取り消し

“`:全てのファイルのgit addを取り消し
git reset HEAD
“`

“`:特定のファイルのgit addを取り消し
git reset HEAD <ファイルのパス名>
“`

### git commitの取り消し

“`
git reset –soft HEAD^
“`

# git stash でよく使うコマンド
### 未追跡の特定のファイルを一時退避して、メッセージをつける方法

“`
git stash push -m “メッセージ” — <ファイルのパス名>
“`

### git stashした内容を見たい時

“`:stashした一覧を確認する
git stash list
“`

“`:特定のstashと現在のワーキングディレクトリとの差分を確認する
git diff HEAD..stash@{0} // stashのcommit番号は git stash list で確

元記事を表示

git pull origin のエイリアスを作る

現在のブランチのみを pull したい場合、毎回

“`bash
git pull origin 現在のブランチ名
“`

と入力するのが面倒だった。

現在のブランチ名は `git rev-parse –abbrev-ref HEAD` で取得できるが、これを単純にエイリアスに登録しても上手く動かない。

“`bash:エイリアス登録・NG
git config –global alias.pullcurrent ‘pull origin $(git rev-parse –abbrev-ref HEAD)’
“`

以下のように、先頭に `!git` を指定したらちゃんと動いてくれた。

“`bash:エイリアス登録・OK
git config –global alias.pullcurrent ‘!git pull origin $(git rev-parse –abbrev-ref HEAD)’
“`

“`bash:実行
git pullcurrent
“`

## 参考

– [How can you git pull only the curren

元記事を表示

git pushしても反応がない

## git pushがある日突然できなくなる
git pushができなくなる要因はいくつかあると思います。Githubの認証が変わったタイミングとか、commitの内容が多いとか。
今回自分は、**昨日までできていた`git push`が急にできなくなりました。**
コマンド打ってもずっとこのままで動かない、、、
“`
$ git push
“`

## 原因
自分の場合の原因は、**お店のwifiを使っていること**でした。
お店のwifiなどを使っている場合は他のネットワークに繋ぎ直しましょう。お店によっては制限をかけている場合があるようです。
自分はスマホのテザリングに繋ぎ直したら実行できるようになりました。

元記事を表示

Bitbucket に push できなくなった件

# Bitbucket Push failed
AndroidStudio よりBitbucketへpushしたときに、下記エラーでpushできなくなっていた。
“`
Invocation failed Unexpected end of file from server
java.lang.RuntimeException: Invocation failed Unexpected end of file from server
・・・
・・・
fatal: could not read Password for ‘https://username@bitbucket.org’: Device not configured
“`

# Atlassian ユーザー名/パスワード認証を非サポート

Deprecating Atlassian account password for Git and Bitbucket API activity


> Starting Mar 1, 2022, Bitbucket users will

元記事を表示

Git,Githubを使用してherokuへデプロイ

初めての投稿になります。
こちらは、私の備忘録として残しておきます。

# 前提
デプロイしたいアプリが作成済み、GitHubにアカウント登録済み、GitHubにリポジトリを作成済みで、ブランチを切っている状態で、今回はrailsで作成したアプリをデプロイしていきます。

# 実行の流れ
“`!!!
まず、ステージングエリアにカレントディレクトリ以下のファイルをまとめて追加します
git add .

次に自分が変更したファイルをローカルリポジトリに保存します。
git commit -m “コミット名”

Githubにプッシュします。
git push –set-upstream origin ブランチ名

こちらでmasterブランチに変更します。
git checkout master

Githubにプッシュしたブランチ名を使用してマージを行います。
git merge ブランチ名

最後にherokuにデプロイします。
git push heroku
“`
これでherokuへのデプロイが完了です。

# まとめ
初めての投稿なので、誤字脱字やご指摘等ありましたらコメ

元記事を表示

【自分用】gitコマンドまとめ

gitでcommitやpull、pushのような基本的な操作はマスターした初心者向けのコマンド一覧です。

## ローカルの変更を取り消す

“`
git checkout .
“`
新規追加したファイルは取り消されないので注意

## 直前のコミットの取り消し
### 変更ごと取り消す
直前の変更を取り消す

“`
git reset –hard HEAD^
“`

変更ごと無かったことになるので注意。

### コミットのみを取り消す(変更は取り消さない)

“`
git reset –soft HEAD^
“`
コミットのみを取り消すので変更はステージング状態に戻される。

:::note info
HEADの後の^は1つだと直前のコミット。^^のように2つつけると2つ分のコミットを取り消すことができる。
:::

### 直前のコミットのメッセージを変更する。
コミットした直後にメッセージの誤字脱字に気づくことがある。
そんなときはamendを使用します。
“`
git commit –amend -m “直前のコミットメッセージを修正”
“`

元記事を表示

リポジトリの巨大化によるビルド時間増加への対策

# はじめに
あるプロジェクトにて、システムが大きくなり過ぎてしまい全てのテストが終わりデプロイされるまでに2時間ほどかかってしまっていた。これでは、どんな小さな変更でも少なくとも2時間かかってしまうことになり不都合が起きる。この問題に対してどのような方針を立てたのか頭の整理のためにもまとめておこうと思いました。

# プロジェクトで使用している技術
“`
バックエンド: java, springboot
インフラ: paas
管理ツール: github
ciツール
“`

# リポジトリ巨大化による課題
今回の課題を整理すると、
– ビルド時間増加
– テスト実行時間の増加
– ciツールにおけるリポジトリのclone時間増加

# リポジトリの初期状態
課題を抱えるリポジトリはリポジトリの内部に複数のモジュール(1~n)を保持していて、モジュール単位でPaas上へデプロイされる。モジュールnはベースモジュールを使用している。

# 課題解決の方向性
1. パイプラインを変更を加えことで影響が出るモジュールのテストのみ実行させる
a. リポジトリ分割

元記事を表示

OTHERカテゴリの最新記事