- 1. ?【Win/Mac】Gitコミットに署名を付けよう!✍
- 2. 【Golang】Gitコミットのrevision番号(commit id)を取得するには
- 3. 入社3ヶ月目の僕が、実務で使用したGitコマンドの流れ
- 4. 【Git】.gitignoreって難しい Part3 – .gitignoreの作成未経験者が、ある程度の理解できるまで –
- 5. 自分が何を変えたのかがわかる
- 6. Githubとは?
- 7. GitHubにSSH接続する際に使用する秘密鍵を指定する
- 8. よく使うGitコマンド
- 9. git rebase でコンフリクトした場合の解消手順
- 10. SourceTreeでGitHubのPersonal access tokensを利用する
- 11. はじめてのGit
- 12. gitインストール方法
- 13. Your Ruby version is 2.7.3, but your Gemfile specified 2.7.5 と表示されるエラーの解決
- 14. gitのコンフリクト解消方法となぜ起こってしまうのか
- 15. git pullとgit fetchの差異
- 16. Git flowについて
- 17. おすすめgit alias: git tree
- 18. .gitignoreでフォルダの構造のみを保持したい場合のより良い書き方
- 19. venvのpython仮想環境をgitで共有する
- 20. VSCodeの拡張機能「GitLens」で快適なGitライフを手に入れよう!
?【Win/Mac】Gitコミットに署名を付けよう!✍
Gitのコミットに署名をつけるための手順です✍?
:::note
署名付きコミットは、ログ上にバッジが付きます。
– Unverified – 何かが間違っていて認証に失敗したコミット
– Verified – 本人確認に成功したコミット(あるいはブラウザからGitHub上で行われたコミット)
– バッジなし – 署名がついていないコミット署名付きコミットの検証について
[About commit signature verification – GitHub Docs](https://docs.github.com/ja/authentication/managing-commit-signature-verification/about-commit-signature-verification)(English)
:::## 前提
– Wi
【Golang】Gitコミットのrevision番号(commit id)を取得するには
# Go 1.18以降でBuildInfoを使う場合
[BuildInfo](https://github.com/golang/go/blob/9cec77ac11b012283e654b423cf85cf9976bedd9/src/runtime/debug/mod.go#L40-L47)のSettingsにある”vcs.revision”を取得。“`go:main.go
package mainimport (
“fmt”
“runtime/debug”
)func main() {
var rev string
info, _ := debug.ReadBuildInfo()
for _, s := range info.Settings {
if s.Key == “vcs.revision” {
rev = s.Value
}
}
fmt.Printf(“revision: %s\n”, rev)
}
“`“`sh
$ go mod init sample
$ git init && git add . && git c
入社3ヶ月目の僕が、実務で使用したGitコマンドの流れ
フロントエンドエンジニアとして入社し、働くこと3ヶ月。
主に、実務(サイトの修正案件)で実際に使用したGitコマンドたちをまとめました。### ローカルの作業ディレクトリに移動
~~~
cd project/released/general/
~~~### リモートリポジトリをローカルにクローン
(GitLabの対象ディレクトリをまるっと複製 = cloneボタンを押下しhttpsの方を選択する)
~~~
git clone ここにURL
~~~### 今いるブランチを確認(masterブランチにいることを確認)
~~~
git branch
~~~## masterブランチを最新の状態にする
リモートリポジトリの最新の履歴の取得だけを行う
※**「–prune」オプション**
リモートで削除されているリモートブランチを削除してくれるコマンド
~~~
git fetch – – prune
~~~### ブランチ間を移動
~~~
git checkout master
~~~### ブランチの変更内容を作業ディレクトリに反映
~~~
git pull
~~~
【Git】.gitignoreって難しい Part3 – .gitignoreの作成未経験者が、ある程度の理解できるまで –
# .DS_Storeについて
Macのシステムが各ディレクトリ(Finder)に勝手に生成する隠しファイルです。
こちらのファイルは、gitで管理しないのが一般的です。
## 補足
上記の通り、Macのみで起きる現象のため、プロジェクトの.gitignore
ではなく、.gitignore_global
で設定をしてください。
.gitignore_global
はPCに存在するGitリポジトリの設定が行えます。
# 設定方法
## .gitignore_global ファイルを作成
viコマンドで編集していきます。
“`
$ vi ~/.gitignore_global
“`
## .gitignore_globalファイルに.DS_Storeを追加
“`
.DS_Store
“`
## Gitの設定を追加
“`
$ git config –global core.excludesfile ~/.gitignore_global
“`
### 設定を確認
“`
$ g
自分が何を変えたのかがわかる
# 自分が何を変えたかを見る
## HEAD、ステージ、作業ツリーの差を表示する
“`
git diff
git diff –staged
git diff HEAD
“`
### git diff
作業ツリーとステージの差を出力する。
“`
**************@mbp training % git diff
diff –git a/.idea/workspace.xml b/.idea/workspace.xml
index aa9c133..2da7628 100644
— a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,7 +4,9 @@
–+
Githubとは?
# Githubについて
端的に言うとGithubは、Gitの仕組みを利用して、インターネット上でのスムーズな共同作業を可能にしたサービスのことで、バージョン管理をすることができる。
#### では、バージョン管理とは何か?
変化するファイルの状態のことを「バージョン」という。つまり、ファイルの変更をバージョンとして記録して、記録した地点へいつでも戻れる仕組みを作っているのが、Gitである。
バージョン管理ができることによって、開発者が複数人いても、ファイルの最新状態や変更履歴をわかりやすく保てるのがメリット。
# Gitの大まかな仕組み
上記で述べた通り、Githubはバージョンを管理しているが、変更の差分を記録するのではなく、スナップショットを保存する仕組みをとっている。
スナップショットとは、ある時点でのソースコードや、ファイル、ディレクトリ、データベースファイルなどの状態を抜き出したもののこと。これによって、ファイルなどの差分を計算しなくて済むため、複数人での開発のスピードをあげることができる。
# Githubの概要図
![Github仕組み.jpg]
GitHubにSSH接続する際に使用する秘密鍵を指定する
# 1.はじめに
A リポジトリで作業するときは秘密鍵 A を使って B リポジトリで作業するときは秘密鍵 B を使うといったケースが先日ありました。
取り急ぎコマンドをググったのでメモとして残しておきます。# 2.コマンド
コマンドは以下です。
“`sh:
# pull 例
$ git -c core.sshCommand=”ssh -i {秘密鍵} -F /dev/null” pull
“``pull`以外も同様です。
# 3.さいごに
もう少し設定ファイル等で綺麗に管理したいのですがやり方は確認中です。
よく使うGitコマンド
> 自分用メモ
## ローカルの差分内容が正しいのでリモートに上書きしたいのにエラーが出る場合
“`
git push -f origin hoge
-f はforce(強制)オプション
“`
## リモートの差分内容が正しいので、 ローカルに上書きしたいのにエラーが出る場合
“`
git fetch origin hoge
=リモートの当該ブランチの内容を取ってくるgit reset –hard origin/hoge
# reset(取り消し=上書き)
# –hard(最新という意味)
# リモートにある当該ブランチの最新状態でローカルを塗りつぶす(わりと強力なコマンド。一回実行すると取り消せない。取扱い注意。どのブランチのどのバージョンを持ってくるかちゃんと確認する)
“`
– 参考
– [www-creators.com/archives/1097](www-creators.com/archives/1097)## 間違えてコミットまでしてしまったとき、そのコミットを取り消したいとき
“`
$ git reset –soft HEAD^
“`
#
git rebase でコンフリクトした場合の解消手順
### この記事が役立つ状況
* 作業ブランチは、pushしていない
* 作業ブランチで `git rebase develop` をしたらコンフリクトした## rebaseの手順
作業ブランチは、(work)であるものとする。
1. 作業ブランチに未コミットの修正がない状態にする
1. `git add -A`
1. `git commit -m “comment”`
1. コミットする粒度ではない場合 `git stash`
1. develop(rebase先)を最新にする
1. `git checkout develop`
1. `git pull`
1. rebaseする
1. `git checkout work`
1. `git rebase develop`
1. ここで、コンフリクトしてしまい、警告が出たものとする
1. コンフリクトしたファイルを確認する
(警告メッセージを読めば書いてあるが、gitbashだと色が付くのでこちらの方がわかりやすい)
1. `git status
SourceTreeでGitHubのPersonal access tokensを利用する
# エラー内容
SourceTreeを使ってGithubにpush使用とすると、下記のようなエラーメッセージが出ました:
> remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.Personal access tokenを使って認証していないのが原因のようです。
# 解決法
1. SourceTreeのウィンドウ左上、歯車の形の「設定」をクリック
2. リモートリポジトリパスのを選んで編集
3. パスを次のように設定する
Personal token が 123456 だとして、GithubのURLが https://github.com/hogehoge/hoge だとすると、
“`
https://123456@github.com/hogehoge/hoge.git
“`
Personal tokenの取得については、https://codesapuri.com/articles/31
はじめてのGit
“`
___________ __
\_ _____/ | | _______ ____
| __)_ ______ | |/ /\__ \ / \
| \ /_____/ | < / __ \| | \ /_______ / |__|_ \(____ /___| / \/ \/ \/ \/ ``` こんにちは。E-kan株式会社の畠山です。 今更かもしれませんが最近`Git`を使うようになったのでよく使う言葉やコマンドなどを備忘録です。 `gitbash`でのコマンドラインの操作での気になった部分を軽くまとめているので雰囲気を伝えるメモレベルです。 # リモートリポジトリーとローカルリポジトリー **リモートリポジトリー**:みんなのリポジトリー、push時緊張。 **ローカルリポジトリー**:自分だけのローカルのリポジトリー、結構好きに出来る。戻すのも
gitインストール方法
# gitインストール方法
1. 以下のURLにアクセスする。
– http://git-scm.com/download/win
2. `Click here to download ` を押下する。
3. ダウンロードが完了後、フォルダを開く。
4. `Git-2.35.1-64-bit.exe` を起動する。(ダブルクリック)
– 前提条件(コンフリクトを発生させる条件)1.hogeファイルを所持するmainブランチの作成
hogeファイルの中身
“`
あいさつの種類
①おはようございます。
“`2.mainブランチから派生したAブランチの作成
hogeファイルの中身
“`
あいさつの種類
①おはようございます。
②こんにちは。
“`3.mainブ
git pullとgit fetchの差異
git pullとgit fetchの差異
pullとfetchが似た機能をするコマンドのようだが違いは以下の通りである。
なるべくfetch後、pullをしながら2つを適切に使用することが良いという。
1. git fetch
ローカルファイルには触れず、襟の変更内訳だけを確認する場合、使用
ローカルディレクトリに変更された内訳を持ってこない
2. git pullローカルファイル+羽根変更内訳の確認
ローカルディレクトリに変更された内訳を取得(変更された内容を併合)
変更された内訳と同じファイルに触れた場合、衝突発生
Git flowについて
배달의 민족(우아한 형제들) 開発ブログの内容を参考に作成しました。
1.定義
プロジェクトを進めるにあたって、ブランチ管理を有効にするブランチ別の役割を区分しておいた概念を適用させたものである。
2.図式化の画像(ネット検索)
3.BRANCHの役割
1)develop
developブランチは、名前からも分かるように開発に対するブランチである。 開発の進行はdevelopブランチで行われ、全般的なすべての開発がここで行われる。
2)feature
フィーチャーブランチはdevelopブランチから派生するブランチである。 フィーチャーブランチは、developの小単位開発だと考えればいいが、特定機能/関数などで大きさはユーザによって異なる特定機能を開発するためのブランチだと考えればよい。
おすすめgit alias: git tree
新卒の頃からお世話になっている、最も多用しているgit aliasを少しカスタマイズしたのでついでに共有。
## alias
“`
[alias]
tree = log –graph –format=\”%C(auto)%h %C(blue)%an %C(auto)%d %s\”
# treeの短縮
t = log –graph –format=\”%C(auto)%h %C(blue)%an %C(auto)%d %s\”
# カレントブランチのコミットのみ
tf = log –graph –format=\”%C(auto)%h %C(blue)%an %C(auto)%d %s\” –first-parent
# 全てのブランチ
ta = log –graph –format=\”%C(auto)%h %C(blue)%an %C(auto)%d %s\” –all
“`## 出力
の続きです
– 前回の記事ではあまり触れていなかった、VSCode拡張機能の`GitLens`についての使い方解説です—
### 対象
– VSCode上でラクにGit操作をしたい方
—
### 前提
– Gitの基本的な使い方が分かること
– Git、VSCodeがインストール済であること—
### VSCodeデフォルトの場合

![2022-06-18-15-20-31.png](https://qiita