今さら聞けないGit 2022年02月23日

今さら聞けないGit 2022年02月23日

UnityプロジェクトをGitHubで管理したい(SourceTree編)

# 概要
Unityで作成したコードをGitHubでバージョン管理する手順を記載しています。

Unityは、EclipseやAndroid Studio、Visual Studioなどと違い、GitHubとの連携が最初から用意されているわけではないようで、下記のような方法を選択するようです。

* Github for Unity(https://unity.github.com/)
UnityのAssetとして、GitHub管理したいプロジェクトに追加する方式。
* Source Tree(https://www.sourcetreeapp.com/)
OS上のファイルをGit管理する。という扱いでUnityをGitHub管理する。
* GitHub Desktop(https://desktop.github.com/)
GitHub純正のGit管理アプリ。GitHub側に近いUIなので、ローカル上の管理は戸惑うかも。

# 前提環境
* macOS 12.2.1(Monterey)
* SourceTree
* Unity 2020.3.29f1(Personalライセンス)

元記事を表示

GitのWorking TreeとIndexが分かる記事

 こんにちは。

 この記事は、GitのWorking TreeやIndexについて分かるようになる記事です。

– なぜコミットの前にgit addするのか分からない
– git restoreで何が復元されるのかが分からない
– git reset で何がリセットされるのか分からない

 このような疑問を持つ人向けに、**Working Tree** (Working Directory)と**Index** (Staging Area)について解説していきたいと思います。またよく使うGitコマンドがこれらにどう作用するかについても見ていきたいと思います。

 用語の定義はこちらのGit公式リファレンスから引用しています。

https://git-scm.com/book/en/v2/Git-Tools-Reset-Demystified

## 今回使うリポジトリの準備

 あまりGitリポジトリを初期化したことのない方が読む可能性を考え、このセクションに今回使うリポジトリの準備方法を書いておきます。折りたたんでおきますので、見たい方のみご覧ください。

元記事を表示

SourceTreeでGitHubを使う

# 概要
macosでGitHubを使おうとすると、基本はIDE(統合開発環境)にGit連携機能があり、それを経由してリモート先としてGitHubにPushしたりするわけですが、Unityを使うと、どうもこのGitHub連携部分がなくて困った。

そこで、SourceTreeでGitHub操作をすることを整理してみる

ざっと流れを記載すると
* SourceTreeを入手する
* Github(Private)のリストを表示する
* Github(Private)にローカルのプロジェクトをリポジトリ追加する

# GitHubのパスワード認証は廃止された
ご存知の方は多いだろう。
GitHubは2021/8にIDとパスワードを用いたパスワード認証が廃止された。
https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/

この廃止によって、意外にGitHub連携に関して記述してある記事も使えなくなっていたりする。
(パスワード認証だと書いているわけではないが、当時は一般的だっ

元記事を表示

ブランチを途中からリベースしたい

# はじめに

リベースは便利ですよね。
私はよくお世話になっています。

なんていうか、
`main`ブランチとか真っ直ぐな方が好きだな~なんてw

ほら、普通にマージしたりしていくと、
マージコミットが入って、2本が1本に合流する点ができて
その先にまた別のブランチが合流して・・・

あんまり綺麗に思えないというか・・・。

あと、コンフリクトが発生したときの解消が後回しっていうのが・・・。
問題は先に解決しておきたい派なので、なんだかなーなんて感じてしまいます。

とまぁ、私のような人だと分かってもらえると思うんですけど、
PRを投げて待っている間に実装進めておこうとかすると結構ブランチが直列になるんです。

そして、PRのapproveもらったらsquash mergeでfast-forward mergeして・・・
そうすると、直列先のブランチが残っちゃうんですね。

ここで**途中からリベースしたい**という需要が生まれる訳です。

# 方法

いくつか方法はありますが、今回は`–onto`を使用したリベースを紹介します

元記事を表示

[Git] 特定の行がいつ削除されたのか知りたい

https://qiita.com/ezawa800/items/82380b4efa3cc20ebbb1

※タイトルは「いつ削除されたのか」ですが、
commit毎の差分なのでいつ盛り込まれたのかも分かります。

元記事を表示

テクニカルアシスタントとして学んだこと No.1:Gitインストール手順

# 目次
[はじめに -テクニカルアシスタントとは-](#はじめに–テクニカルアシスタントとは-)

1. [目的](#1目的)
2. [用語](#2用語)
3. [実際の操作方法](#3実際の操作方法)
– [前提条件](#前提条件)
– [Gitのインストール](#gitのインストール)
– [Tortoise Gitのインストールと設定](#tortoise-gitのインストールと設定)
– [リポジトリの新規作成](#リポジトリの新規作成)
– [tokenの取得](#tokenの取得)
– [Gitコミット](#gitコミット)
– [Gitプッシュ](#gitプッシュ)
4. [所感](#4所感)
5. [参考資料](#5参考資料)

#はじめに -テクニカルアシスタントとは-

現在、株式会社エニプラにて長期有給インターンとしてテクニカルアシスタントを務めています。
エニプラ社内では、「エニプラボ」という活動があります。エニプラボとは新しいIT領域に遊び心をもって取り組み、作ったものを社内/社外の方を含め、広く知ってもらうといったプログラムです。
エニプラ

元記事を表示

UnityでGithubを用いてデータ管理したい

#ご挨拶と本記事の目的
みなさんおはこんです。
昨今某ウイルスの影響でリモートワークが続く毎日であります。
そんな中、チーム開発をしている時、自分の開発と第三者の開発環境を統合したい時が来るかもしれません(いずれ来ます)
そんな中とても便利となるツールが`Github`というツールです。
これを用いるとどこでもチーム開発が可能になります。

本記事ではそのGithubを用いてUnityの進捗管理などをするための初期設定から、実際のコマンド操作に関して記述しています。
あと私の備忘録のためです。

注意:すでにGitやGithubアカウント、sshkeyの追加、Unityが自分の環境にインストールしている方を前提としています。
もしまだインストールされていない方や「Gitってそもそもなに?」と思われる方は、以下の記事を参照ください。

– [Windowsセットアップ](https://prog-8.com/docs/git-env-win)
– [Macセットアップ](https://prog-8.com/docs/git-env)
– [サルでも分かるGit入門](https://

元記事を表示

Gitでリモートから特定のパスのみを取得する方法

Git本来の使い方にはそぐわないが、リモートリポジトリの一部のデータのみが必要で、かつ取得したデータを1度しか使わない場面(ビルドプロセスなど)において、このデータ取得を高速に行う方法について調査した。

#### 前提

* [Git Version 2.35.1](https://git-scm.com/docs/git/2.35.1)

#### 要約

shallow (`–depth 1`) + tree less (`–filter=tree:0`) cloneを行った後に、必要なディレクトリをsparse checkoutで取得すればよい。

“`shell
URL=https://example.com/repository.git
BRANCH=main
CLONE_DIR=repository
TARGET_DIR=”/abc /xyz”

git clone –depth 1 –filter=tree:0 –no-checkout -b ${BRANCH} ${URL} ${CLONE_DIR}
cd ${CLONE_DIR}
git sparse-c

元記事を表示

【git】git reset とgit revertコマンドの違い

##git reset
git reset 【オプション】【HEAD^ or HEAD~n or @^】
指定した値まで【コミット履歴 + 編集内容】が削除される。
###オプション
–soft →commit履歴のみ削除
–mixed →commit履歴とaddコマンドもキャンセルされる(おpションなしの場合はこれが適用される。)
–hard →commit履歴、addコマンド、編集内容全て削除される。

##git revert
git revert 【commitのハッシュ値】
指定した値の 【編集内容のみ】が削除され、revertコマンドを行ったコミット履歴が積み重なる。

##使い方
チーム開発においてgit resetコマンドを使うのは、履歴を全て消してしまうことになるため、原則禁止

元記事を表示

git rebase について

#目次
[1.前回](#1-前回)
[2.概要](#2-概要)
[3.内容](#3-内容)
[4.用語のまとめ](#4-用語のまとめ)
[5.感想](#5-感想)
[6.おわりに](#6-おわりに)

#1. 前回

よく使うgitコマンド

https://qiita.com/ak-matsu/items/283f94a4c74127609e51

#2. 概要
git rebaseでよく使うオプション

#3. 内容
git rebase は
コミット履歴が分かりづらかったり、2つ以上のコミットを1個に統合したいときに使うコマンド

git rebaseはbrunch上で行うコマンドで
masterやmainでは個人開発などではない限り使わないほうがいい。

“`shell
前回のgit記事を一部引用

# リポジトリ初期化(ローカルリポジトリの作成)
$ mkdir rebase_test && cd rebase_test && git init
$ touch README.md && git add .
$ git commit -m init

# GitHub上にリ

元記事を表示

初心者が思う『Git』でとりあえず覚えとくコマンド3つ

#|概要
– GitとGitHubの違い
– GitとGitHubを使った作業の流れ&3つのコマンドを使うタイミング
– それぞれのコマンドの説明
– git add
– git commit
– git push
– その他によく使うコマンド  git status [現在の状況を確認する] 

#|GitとGitHubの違い

まず私自身が、ずっとGitとGitHubのことを、同じ機能で『みんなそれぞれ自由な呼び方をしているんだな〜』と勝手に思っていたので、調べて理解した範囲で違いを簡単に紹介させていただきます。

###GitHubとは…![スクリーンショット 2022-01-12 12.23.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2422183/20f8980a-12a6-cde7-7fc4-ddbd7e5bb364.png)

GitHubは、Gitをより使いやすくすることを目的に、2008年に開発されたそうです。
またクラウド上でGitを用いたバージョン管理(ソースコード)が

元記事を表示

ブランチ、ファイルの最新のコミットのSHA-1を取得する

# 本記事について

差分ビルド、コンパイルするときに、
ブランチの最新のハッシュはビルドバージョンとして、
ファイルの最新のハッシュは更新されたかどうかの判別のために
利用することができる。

また、コミットのSHA-1を使えば同時に更新されたファイルのグループ化もできる(必要になるケースは思いついてない)

## 対象ブランチのコミットのSHA-1の取得

“`
$ git rev-parse main
e8415612eaef02bb3db904c6174e39e41ed85188

$ git rev-parse –short main
e841561
“`

https://git-scm.com/docs/git-rev-parse

現在のブランチのハッシュ取る時は HEAD。

“`
$ git rev-parse HEAD
b17a0cb305a0d7b02464cca0661db6fd50e70632
“`

## 対象ファイルの最新のコミットのSHA-1の取得

“`
$ git log –pretty=format:”%H” -1 views/it

元記事を表示

GIT ワークツリーとインデックス

####はじめに
この記事は、「なんとなく理解できた」を目的としているため、正確性、具体性に欠ける表現がございます。

精度の高い情報を求めている方には向かないので、ご理解ください。

###ワークツリーとは?

Gitの管理下に置かれた、作業をしているフォルダのこと。

##インデックス
Gitではリポジトリとワークツリーの間にはインデックスというものが存在する。
インデックス・・リポジトリと、ツリーの中継点。

インデックスは、コミットするファイルを選ぶことが出来る。
なので、Gitの管理下に置かれたフォルダでも、インデックスに登録されていなければ、コミットされない。

##参考文献

https://backlog.com/ja/git-tutorial/intro/04/

元記事を表示

GIT コミットについて解説

####はじめに
この記事は、「なんとなく理解できた」を目的としているため、正確性、具体性に欠ける表現がございます。

精度の高い情報を求めている方には向かないので、ご理解ください。

###コミットとは?

ファイルやフォルダの追加や変更を、リポジトリに記録するために行う操作のこと。

コミットをすると、前回コミットした時の状態から現在の状態までの差分を記録したもの(コミットまたはリビジョン)と呼ばれるものが作成される。

このコミットは、時系列順に格納されていく。
これにより、コミットを最新の物から辿ることで、過去の変更履歴やその内容を知ることができるようになる。

元記事を表示

GIT&リポジトリをわかりやすく解説

####はじめに
この記事は、「なんとなく理解できた」を目的としているため、正確性、具体性に欠ける表現がございます。

精度の高い情報を求めている方には向かないので、ご理解ください。

###GITとは?

ファイルの履歴を管理する機能。

複数人で作成する場合でも、履歴管理がスムーズに行える。

##履歴を管理するリポジトリ

リポジトリ・・ファイルやディレクトリの状態を記録する場所。

リポジトリを、GITを反映させるフォルダの管理下に置くことで、変更履歴を記録することができる。

##リポジトリの種類

GITのリポジトリは、リモートリポジトリとローカルリポジトリの2つに分けられる。

####リモートリポジトリ
複数人で使うときに使われるリポジトリ。
####ローカルリポジトリ
1人で使うときに使われるリポジトリ。

担当する箇所を、複数人で作業をするか、単独で作業するかといった時に区別する事が出来る。

##リポジトリの作成方法(ローカルリポジトリ版)

一つ目は全く新しいリポジトリを作成する方法。

二つ目はリモートリポジトリをコピーして作成する方法。

元記事を表示

[GitHub]マージしたブランチを自動で削除する方法

マージした後、ブランチを削除するのを忘れることがあるので、調べてみたらGitHbuで設定できることを知ったのでメモ。

##やり方
###1.開発中のリポジトリでSettingsにアクセス
###2.Pull Requestsの項目にある[Automatically delete head branches] にチェックを入れる
![effc25b55efeba5bd2530de65233a027.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1374322/67955da4-72bd-7faa-7e66-6caba549459f.png)

これで設定完了です!

元記事を表示

備忘録(gitクローンからプッシュまで)

参考になる記事たち
https://qiita.com/nt-7/items/c5ea999a2638e03ee418

1.まず最初にターミナルを開いてgit add . をしよう
2.ブランチを分けよう
git checkout -b “develop”
3.変更をステージしよう
4.変更をコミットしよう
git commit -m “ほげほげ”
5.プッシュするよ
git push -u origin master

git init
→.git ファイルをディレクトリ内に作るよ。もうあるなら(クローンしたなら)いらないよ

元記事を表示

gitコマンドコピペ元

gitコマンドで使うたびにググっているようなものをまとめてコピペできるようにしておく。逐次追加予定

### `git add` を取り消す(変更内容は取り消さない)
“`sh
git reset HEAD hoge
“`

### 直前のコミットのメッセージを変更する
“` sh
git commit –amend -m “変更後のメッセージ”
“`

### `git add`ですでにgit管理下にあるファイルの変更をステージングする
“` sh
git add -u
“`
`git add -A (-all)`でもいいけど、git管理下にないファイルもステージングしてしまうので、`git add -u`してから`git add ファイル名`で個別に対応した方がミスが減ると思う。

元記事を表示

【git】git tagの削除と^{ }付タグについて

# git tagを消したい➡︎同じタグ2つ有る➡︎片方`^{}`付いてる➡︎ナニコレどっち消せば良いの?
リリースに合わせてバージョンのタグを打ったけれど、その後、軽微な変更が必要な事が分かり、タグを消したいという事もあるかと思います

まさにそんな状況でタグを削除しようと思ったら、同じタグが2つ有り、混乱したのでメモ

# tagの削除
タグの削除は以下の順序で行えます
### ローカルのタグを削除
1. `git tag`コマンドでタグ一覧を確認
2. `git tag`コマンドに`-d`オプションを付けて、タグを指定し、削除

“`shell
## ローカルのタグ一覧を確認
% git tag
android_1.0.0
android_1.0.1
android_1.1.0
android_1.1.1
android_1.1.2
android_1.10.0

## タグの削除
% git tag -d android_1.10.0
Deleted tag ‘android_1.10.0’ (was 752badb)
“`

### リモートのタグを削除
1. `git

元記事を表示

git-ftpでリモートの変更ファイルをローカルにダウンロードする方法

“`bash
git-ftp download
“`

これで、リモートの変更ファイルをローカルにダウンロードできます。

# 上手くできない時は

以下のようなエラーが出るときがあります。

“`bash
cd: 致命的エラー: Certificate verification: unable to get local issuer certifica:
“`

その際は、

ターミナルをロゼッタを使って開く

https://www.kzyrepository.com/2020/12/%E8%A7%A3%E6%B1%BA%E6%B3%95cannot-install-in-homebrew-on-arm-processor%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AE%E8%A7%A3%E6%B1%BA%E6%B3%95m1%E3%83%81%E3%83%83%E3%83%97/

lftpをインストール

“`
brew install lftp
“`

“`
mkdir ~/.lftp
echo “set ssl:verify-cer

元記事を表示

OTHERカテゴリの最新記事