今さら聞けないGit 2021年01月06日

今さら聞けないGit 2021年01月06日
目次

機密データをリポジトリから削除する

Git リポジトリへのパスワードや SSH キーといった機密データをコミットする場合、そのデータを履歴から削除することができます。 不要なファイルをリポジトリの履歴から完全に削除するには、git filter-branch コマンドと [BFG Repo-Cleaner](https://rtyley.github.io/bfg-repo-cleaner/) は、リポジトリの履歴を書き換えます。

ここにはgit filter-branchを使ってすべてのbranchesとtagsの履歴を削除するスクリプトです。

“`sh
#!/bin/bash

branches=(master 1.0.0 1.0.1 …)
key_file=”file or path will be deleted”
for br in “${branches[@]}”; do
echo $br
git checkout “$br”
git filter-branch –force –index-filter “git rm –cached –ignore-unmatch

元記事を表示

openframeworkプロジェクトがバグった時の最終手段案

## 何があったのか
openframeworksでアプリの開発を進めていたのですが、その際にずっと普通にデバッグできていたのに、ある時から急に

“`
/usr/bin/codesign failed with exit code 1
“`

と言うエラーが出て、ビルドできなくなるようになりました。最初はDebugは無理だけどReleaseなら以前と同じようにビルドできる状態だったのですが、またしばらくするとReleaseの方もビルドできないようになってしまって、開発が進められないようになりました。

ネット上で検索したところいろいろな解決策が見つかりました。主には解決策は以下のような感じらしいです。

– キーチェーンアクセスのログインチェーンのロック→アンロックを繰り返し行う
– `/Users/hoge/Library/Developer/Xcode/DerivedData/ `のデータを削除する
– xcodeでサインインしてプロファイルを更新
– シンプルに再起動

など色々見つかりましたが、結局僕はどれもうまくいきませんでした。キーチェーンアクセスアプリを開くこと自体

元記事を表示

[備忘録] iCloud上のディレクトリをgit管理すると痛い目にあう話

# 絶対にiCloud上でコードを管理するな!!!
iCloud上のディレクトリをgit管理していると,以下のようにバージョンファイルが勝手に作成されてしまうことがある.これは,iCloud上で作業することで発生するので,iCloud上では作業しないようにしよう.

# この問題の解決方法
もうすでに,バージョンファイルが作成されてしまっていることに気づかずにコミットしてしまった場合は,バージョンファイルをgitの管理対象から外す必要がある.そして,ついでにバージョンファイルも消す.
## 手順
1. iCloudからローカル環境に作業ディレクトリを移す.
2. ローカルに移動した作業ディレクトリでバージョンファイルを管理対象から消し,存在自体も消す.
3. コミットしてプッシュ

## バージョンファイルの削除について

元記事を表示

【原因gitじゃなかった】gitのローカルリポジトリで起きた理解不能な事象〜修復までの話

gitの操作に少し慣れてきた頃起こった、理解不能な挙動に関する記録です。

【環境】
・macOS Big Sur(ver11.1)
・ローカル上で仮想OSを起動、そこでコンテナを起動しルート直下にプロジェクトファイルを配置
・Vagrant 2.2.10

それは突然やってきた

ある日の作業中、gitやエディタ、動作確認中のwebアプリでこれまでできていた事ができなくなる、等の問題が次々に問題が発生。
色々起こりすぎてパニック状態の為、まずは状況をまとめることにしました。

起こった事一覧

####エディタのエクスプローラーと実際のプロジェクトが連動していない
ターミナルでファイルやフォルダを追加してもエディタのエクスプローラーに反映しない。
複数エディタで起こり、むしろFinderでも同じ状況。
特定のローカルリポジトリでのみ発生していて、それ以外のローカルリポジトリでは異常なし。
という事で環境起因ではない事はわかっている、、

<状況>
ローカルで作成したファイル→仮想環境→×コンテナ
ローカル×←仮想環境←コンテナで作成したファイル
※仮想環境でファイルを削除→コンテ

元記事を表示

既存のローカル/リモートリポジトリのデフォルトブランチ名を、四苦八苦しながらmasterからmainに変更した話

初投稿です。
お手柔らかにお願いします。

# 経緯

masterをデフォルトブランチとして開発を進めていたが、Githubページを見ると、
mainという名のブランチが、リポジトリ作成時から手つかずの状態で残っているのを発見。

そういえば差別表現云々で、masterからmainに名称変更になった話があったなあと今更ながらに思い出しました。

リモートリポジトリにmasterとmainが両方残っているのも気持ち悪いので、mainのみに変更しようと思い立ちました。

# 結論

今回のケースでは、リモートリポジトリのmasterとmainは全くの別物(共通の祖先がない)なので、
–allow-unrelated-historiesオプションを付けてマージすれば万事解決です。

# 実際の流れ

当方初心者につき、上記の結論に至るまでに紆余曲折ありました。
せっかくなので、備忘録も兼ねて、解決までに実際にやったことを残しておきます。

(0)
Railsチュートリアルを進めていたところ、Github上に謎のmainブランチを発見。
これがリポジトリ作成時にできたデフォルトブランチであ

元記事を表示

GitHub APIを使ってタグ(ref)の指すコミットハッシュを取得する方法

GitHub APIのreleaseオブジェクトから、tagを取り出してtagに紐づくコミットハッシュを取得したい、という場面がありました。

releaseオブジェクトの中身は以下のような具合でコミットハッシュを持っていません(APIは[こちら](https://docs.github.com/en/free-pro-team@latest/rest/reference/repos#list-releases)を参照)。

“`json
[
{
“url”: “https://api.github.com/repos/octocat/Hello-World/releases/1”,
“html_url”: “https://github.com/octocat/Hello-World/releases/v1.0.0”,
“assets_url”: “https://api.github.com/repos/octocat/Hello-World/releases/1/assets”,
“upload_url”: “https://uploads.

元記事を表示

Gitのよく使うコマンド

#Gitコマンド
業務中によく使うコマンドをまとめてみました。

###クローン
任意のフォルダ名(task1)配下にクローンする

“`
git clone -b develop git@github.com:XXXX/YYYY.git ~/github/task1
“`
###ブランチの確認
“`
git branch
“`
###ブランチの新規作成
“`
git branch task1(ブランチ名)
“`
###ブランチの切り替え
“`
git checkout task1(ブランチ名)
“`
###変更したファイルの状況確認
“`
git status
“`
###指定したファイルの差分を表示
“`
git diff ~/github/task1/lib/screens/XXXX.dart
“`
###変更内容をインデックスに追加する
“`
git add ~/github/task1/lib/screens/XXXX.dart
“`
###ローカルブランチにコミット
“`
git commit -m ‘コミット内容を記載’
“`
###リモ

元記事を表示

Git Bashの初期設定

##WindowsでGit Bashを使う理由
Windowsであればコマンドプロンプトが標準で用意されているのでそれを使用する方法もありますが、Git BashはmacOSのターミナルとほとんど同じコマンドを実行できる(汎用性が高い)ため、推奨されています。

##コマンドの書き方

コマンドの構成の各名称は以下のとおりです。

“`
$ ls -a Documents
“`

$:プロンプト(標準で入力されています)
ls:コマンド
-a:オプション
Documents:パラメーター
※オプション、パラメーターは省略されることがあります。
※空白は半角スペースです。

##Gitの初期設定をするgit configコマンド

###設定する理由
設定したユーザー名とメールアドレスがコミットした際に記録され、だれがコミットしたのかが明らかになります。

###ユーザー名を設定する

“`
git config –global user.name ユーザー名
“`
Enterキーを押すと確定します。

###メールアドレスを設定する

“`
git config –glo

元記事を表示

【Git初心者】Sourcetreeの導入方法

Git初心者が理解を深める為にSourcetreeを導入したのでその時の作業の備忘録です。

環境

macOS バージョン10.15.17

Sourcetreeのインストール

公式よりダウンロード
https://www.sourcetreeapp.com/

ダウンロード後、インストールの際に「Appストアからのインストールではない」的なエラーを表示しますがmacの「設定→セキュリティとプライバシー→一般」下部の「ダウンロードしたアプリケーションの実行許可」よりエラーを回避してインストールできます。

インストール後

参考:
https://confluence.atlassian.com/get-started-with-sourcetree/get-started-with-sourcetree-847359026.html

公式の手順通りやってみました。

アカウント設定

####「Sourcetree→環境設定→アカウント」より登録を行う

**ホスト**
リモートリポジトリを選択
**認証タイプ**
BasicとOAuthを選択可能
**ユーザー

元記事を表示

[Git]git stash まとめ

# はじめに
共同開発に取り組むようになり、`git stash`コマンドを使用するようになりました。
その使い方を個人的にまとめております。

# 内容
1. 「git stash」とは
2. 使用する理由
3. よく使うコマンド

## 1.git stashとは
– 作業中のファイルを`.git/refs/stash`へ移動させるコマンド
– 別のブランチに移動する前に使用する

## 2.使用する理由
### なぜgit stashを使うのか?
→「作業途中のブランチ」から「別のブランチ」に切り替えるため

### なぜ「別のブランチ」に切り替えるのか?
→別ブランチで行う作業があるから

### 別ブランチで行う作業とは?
基本的に共同開発を行っている時に使用するかと思います。
– プルリクをローカルでチェックする時
– プルリクを修正する時

### なぜ作業途中でブランチを切り替えられないのか?
→ commitしていないファイルはマージされてしまうため

### マージされないようにするには?
2つの方法があります。
①git commit でコミットファイルを作成

元記事を表示

“git-credential-osxkeychain”の真正性を確認できません、、のポップアップの意味

# 状況
Macに標準で入っているgitをHomebrewで管理するようにした後、`brew search`コマンドを実行すると、画像のポップアップが出てきて、「拒否」のボタンしか押せない。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/694973/e147d9d3-c35f-afa1-7f87-852ed8ec97dd.png)

# 解決策
GitHubの公式ドキュメントに答えがありました。スポットライトで`Keychain access`と打ってアクセスした後、github.comの`internet password`を削除すればポップアップ

元記事を表示

リポジトリへのコミットに関するガイドライン

共同開発に使うバージョン管理システムのリポジトリにコミットするみなさんへのおねがいをまとめたものです。開発が長期化してもスムーズな開発(バグ対応含む)を維持することを主な目的としています。筆者はプログラマですが、対象はプログラマに限りません。

具体的なバージョン管理システムが何であるかは関係無く適用できるものにしたつもりですが、いちおう、筆者が想定しているのは Git, Subversion, Perforce あたりです。用語は主に Git を想定しています。別のバージョン管理システムについては用語を適宜読み替えてください。

# コミットする前に内容を確認する

変更点の確認を行い、間違った変更、余計な変更、同時にコミットするべきファイルの抜け、などが無いかを確認してください。これは意図しないコミットによるエラーやそれに伴う修正などの面倒を防ぐために必要なほか、適切なコミットメッセージを残すためにも必要になります。各クライアントソフトの提供する、変更点の一覧表示、ファイルの差分表示などを活用してください。

特に、開発サイクルに必要なビルドなどの過程でエラーの出る状態のファイ

元記事を表示

Gitlabでコンフリクトが起きた!!ローカルで解消するには、、、?

“`:mainのブランチ
git pull
“`

“`:作成したブランチ
git merge 「メインブランチ」
“`

ここでコンフリクトが起きるので、コードを修正し解消する。

あとは通常通り、

“`
git add .
git commit -m “コミットの名前”
git push origin “作成したブランチ”
“`

これで解決しました!

元記事を表示

Udemy もう怖くないGit!チーム開発で必要なGitを完全マスター (プルリクエスト・リベース・タグ・一時避難 編)

>引用先
>[Udemy もう怖くないGit!チーム開発で必要なGitを完全マスター](https://www.udemy.com/course/unscared_git/)
>このコースではGitの裏側でどのような挙動でGitが動いているのかを図で詳しく解説しているので深く知りたい方は受講してみることをおすすめします。

#プルリクエストとは
プルリクエストとは、自分の変更したコードをリポジトリの取り込んでもらえるよう依頼する機能。
バグを発生させないためにコードを他の人にレビューしてもらうためにプルリクエストがある。

#プルリクエストの手順
① masterブランチを最新に更新
② ブランチを作成
③ ファイルを変更
④ 変更をコミット
⑤ GitHubへプッシュ
⑥ プルリクエストを送る
⑦ コードレビュー
⑧ プルリクエストをマージ

#GitHub Flow
GitHub Flowとは、GitHub社のワークフロー。
masterからブランチしてプルリクエストをしマージするといった基本的な流れのこと。

#GitHub Flowのポイント
・masterブランチは常にデプロ

元記事を表示

簡単にできるgit導入からdocker起動まで python編

# これは何?
作業を忘れる俺のための備忘録
pycharmからgitを操作する予定
これをやれば自分のパソコンを汚さず作業ができるようになる

だからやれ
とにかくやれ
# git導入
gitはいろいろと便利だから使えるようになってるといいね

## 1.インストール
まずは、以下のサイトからGitをダウンロード
https://git-for-windows.github.io/

あとは道なりに進めばインスト―ル完了
詳しい道のりは説明がめんどくさいから調べて

## 2.ユーザ名とメールアドレスの登録
コンソールで
`$ git config –global user.name “ユーザー名”`
`$ git config –global user.email “メールアドレス”`
を打ち込むと登録が完了する
# github側の作業
githubのアカウントを作成し、githubのホームページへ行き右上の”+”からnew repositoryでリポジトリを作成する
Repository nameで名前を決める
publicかprivateか決めてcreate reposi

元記事を表示

Gitea を推していく!

Gitea が大好きです!
みなさんにも使ってほしいので推していきます!

## Gitea – Git with a cup of tea
[Gitea](https://gitea.io/en-us/)とは、**セルフホストのGitサービス** です。
**セルフホストのGitサービス** とは、ざっくりいうと、https://github.com/ のようなものを自分で構築できるサービスです。
https://github.com/ は、すごいサービスですが、障害が発生すると使えなくなってしまいます。
障害なども、コントロール化における**セリフホストのGitサービス** は、強い味方です。

## 私の考えるGiteaの魅力
**セルフホストのGitサービス** には、Github.comのエンタープライズ契約や、Gitlabがあります。
それらと比較して、私はGiteaを魅力的に感じています。
今回は、魅力と感じる点を3つ紹介します。

1. 軽量
2. シングルバイナリ
3. クロスコンパイル

#### 1. 軽量

Giteaは、必要最低限のサービスを提供し

元記事を表示

git pushするときにブランチ名を入力するのが面倒

# いままで
ローカル環境のブランチをGithub上の同じ名前のブランチにpushするとき、
いままではこんな感じでブランチ名を指定していました。

例)
 ローカル環境でfeature/sampleブランチにいて、
 Github上の同じ名前のブランチ(feature/sample)にpushするとき

“`
$ git push origin feature/sample
“`

# 問題点

問題点というほどでも無いのですが、毎回ブランチ名を入力しなければならないのが面倒だなぁと思っていました。
いざgit pushしようとしたとき、ブランチ名なんだっけ?となって

“`
$ git branch
“`
で確認することがよくあります。。。

# 対策

次のコマンドを使えば、ローカル環境の現在のブランチ名でgit pushすることが出来ます。

“`
$ git push origin HEAD
“`

Github上に同名のブランチが存在していない場合でも問題なくpushできます。
(git pushしたブランチと同名のブランチをGithub上に生成してくれます)

元記事を表示

git ローカル(自分のディレクトリー)にリポジトリ―を作る方法

# gitにリポジトリを作成する

> ##### 自分のディレクトリ―にリポジトリーを作成する方法

“`
> git init
“`

すると自分のディレクトリーにリポジトリ―が作成されます。

元記事を表示

エラーが出てpush出来なくなった!![error: failed to push some refs to]

●現象
エラーが出て、pushが出来ない

●エラー内容
error: failed to push some refs to “~~”

●原因は?
コンフリクトが出来ていたのをgit lab上で直したため、
リモート上のコミット履歴と、ローカルでのコミット履歴に差ができてしまいエラーが起きている。

以下のような状況です。

■ローカル
コミット履歴B(レビューの修正事項)
コミット履歴3
コミット履歴2
コミット履歴1

■リモート
コミット履歴A(コンフリクトの解消)
コミット履歴3
コミット履歴2
コミット履歴1

●対処法は?

今回は以下の手順で解決しました。
①修正作業をしたローカルの[sample_branch]をコピーし、[sample_branch_copy]を作成
②ローカルの[sample_branch]を削除
③リモート上の[sample_branch]をローカルに反映(コンフリクト解消したコミット履歴Aを獲得)
④コピーした[sample_branch_copy]から、修正作業を取り出す
⑤新しく反映したローカルの[sample_branch]に、取り

元記事を表示

Gitとは?【概念】

#はじめに
こちらは学習用のメモになります。
今回はプログラミングするにおいて必須のGitについてまとめていきます。

#Gitとは?
Gitとは`バージョン管理システムの中の一つ`です。

バージョン管理システムとは`データを管理するだけじゃなく、誰がいつどこを編集したのか、履歴を保存管理できる仕組み`です。

#Gitを使うメリット
* 上書きされたデータがバッティングされることなく、一つのファイルを複数人で編集することができる
* 過去のデータにアクセスしたり、復元ができる
* 最新のデータがどこにあるのかわかる

#リポジトリとは?
Gitを使う上でリポジトリは重要な概念になります。
リポジトリとはデータの貯蔵庫。(データを保存しておく場所)

リポジトリには2種類あり、
* リモートリポジトリ ・・・ サーバー上に置かれるもの(メイン)
* ローカルリポジトリ ・・・ 自分のPC上に作られるもの。

開発者は
①ローカルリポジトリにデータを保存をします。
②ローカルリポジトリを経由してリモートリポジトリにデータを保存していく

# GitHub
GitとGitHubは厳密にい

元記事を表示

OTHERカテゴリの最新記事