- 1. Git: clone時に忘れたサブモジュールを後からpullする方法
- 2. 【Git】リポジトリ名を取得する方法
- 3. 「お前が最近書いたコードを印刷しろ」って言われたら使うコマンド
- 4. git clone時に、CA certificate key too weakと言われた時の対処
- 5. git備忘録
- 6. gitについて
- 7. Gitでの「戻る」操作
- 8. 「この機能追加をフィーチャーブランチ切って対応してプルリク出しておいて」と言われたら、やること
- 9. DockerでDevOps環境を整える
- 10. VSCodeとDockerで開発環境構築 (Python + PostgreSQL + Git)
- 11. 【Git】リポジトリ名を変更する方法
- 12. 【MacOS Ventura】OSアップデート後VSCodeで「ソース管理プロバイダーが登録されていません」と表示される
- 13. mainブランチでgit pull出来ない時の簡単な解決法
- 14. 【写真有】完全初心者によるGit・GitHubの攻略①
- 15. git for windowsの設定の記録
- 16. docker環境でgithubへの接続ができなくなった
- 17. Gitで誤って異なるユーザで初回プッシュしてしまった時の対処方法
- 18. はじめてのチーム開発でのGit (clone~pushまでの備忘録)
- 19. 【Git】git-diffにフィルターをかける方法
- 20. git addする前のファイルの変更を元に戻すコマンド
Git: clone時に忘れたサブモジュールを後からpullする方法
git clone時に`–recurisve`をつけ忘れてサブモジュールがついてこなかったときに、サブモジュールをpullする方法です。
“`shell
git submodule update –init –recursive
“`
【Git】リポジトリ名を取得する方法
## 取得方法
以下のコマンドを実行することでリポジトリ名を取得できます。
“`terminal
$ basename -s .git `git remote get-url origin`
sample-repo
“`– `git remote get-url origin`
リポジトリのURLを取得する。
`https://github.com/UserName/repo-name.git`のように取得できる。– `basename`
`git remote get-url origin`の実行結果から`repo-name.git`部分のみ取得する。– `-s .git`
`repo-name.git`から`.git`を除外する。
「お前が最近書いたコードを印刷しろ」って言われたら使うコマンド
筆者がそういう状況になったことはないです。
ただ、「誰かが書いたコードを一気に調べたい」みたいな状況はたまに起きるのでメモしておきます。“`bash
find . -type f -exec git blame –since=4.weeks –show-name {} \; | grep “My Name” > mycode.txt
“`詳細は https://git-scm.com/docs/git-blame 読んでください。
chromeで開いて印刷するなり、 https://pandoc.org/ とか使えばtxtからpdfも変換可能だと思います。この方法だと読みにくいので、もっとカラフルにとか、他にいい方法あったら教えてください。
また、これだと誰か別の人に上書きされたコードは無視されてしまうので、それも印刷したければ git log を使う必要がありそうです。
git clone時に、CA certificate key too weakと言われた時の対処
# 前提
* AlmaLinux9
* git clone時に「CA certificate key too weak」と言われた。# 手順
* 現在の暗号化ポリシーの設定を確認する。
“`
update-crypto-policies –show
“`
* FUTUREとなっていたため暗号化レベルをDEFAULTに下げる。
“`
update-crypto-policies –set DEFAULT
“`
* rebootする。
* 以上# 問題点
この問題はOSハードニングにより、暗号強度を高めていたために発生した。
暗号化強度を落とすことで解消可能ではあるが、逆にセキュリティ強度を下げてしまうことになる。
セキュリティ強度を維持したまま解消する方法を探る必要がある。
git備忘録
# ローカルからリモート
## 1番目
“`
git push する前にリモートとの変更点を見る
上記のコマンドは、こんな感じで逆にもできます。git diff リモート名/ブランチ名..HEAD
.. の右側が時系列的に最新とみなされるので、この場合は git commit した後にリモートリポジトリとそのこれから push したい箇所を表示したい場合に使えます。“`
## 2番目
“`
git addコマンドで、インデックスにコミットしたいファイルを登録する。
“`## 3ばんめ
““
git commitコマンドで、インデックスにあるファイルを更新する。
““## 4ばんめ
~~~
git pushコマンドで、ローカルリポジトリの内容をリモートリポジトリに送信する
~~~sannsyou
[git addとcommit、pushの関係をわかりやすく説明する【Gitコマンド解説①】]{https://qiita.com/atsushi101011/items/96054ebbd876e378cac4}push no error ni
gitについて
git Revert について:
一度「init dev03」Revertされた作業ブランチをpc01ブランチへmerge後、他に「init dev03」含めるブランチをpc01へmergeの時、作業ブランチに対するRevert処理が不要。
Gitでの「戻る」操作
## はじめに
Gitでの取り消し操作をまとめてみました。コマンド別ではなく、目的別で分類しています。## 取り消しのパターン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2004724/72c39a40-eab0-94a6-016c-f6464a265701.png)
③のコミットIDがc2317fc31fb6f5e5…とする。#### ①→⓪に戻す
“`bash
# checkoutを使った方法
git checkout test.txt # 戻したいファイルを指定
git checkout . # すべてのファイルを戻す# restoreを使った方法
git restore test.txt
git restore .
“`#### ②→①に戻す
“`bash
git reset –mixed HEAD
“`#### ②→⓪に戻す
“`bash
git reset –hard HEAD
“`
「この機能追加をフィーチャーブランチ切って対応してプルリク出しておいて」と言われたら、やること
こんにちは :relaxed:
経験値低めな自分は通っぽい(?)言い方されると :thinking: ってなります。
「新規ブランチを作成して」だとわかるけれど、「ブランチ切って」だとわからないことない??
「ヘッドから生やして」ってもっとわからなくない??
なので、この指示はこういう意味だよーというのを書きました。
大前提として、不安なら経験値ある人に意味を聞いたほうが良い、とは思いますが、
自分で当たりをつけてから質問するほうが気が楽だと思うので参考までに :relaxed:### 「フィーチャーブランチ切って」-意味:新規ブランチを作成すること。
#### 準備:事前にベースとなるブランチはどれか確認する
属しているチームがGitHub-flow or git-flowのどちらで運用しているか知っているならとても優秀 :relaxed:
git-flowの場合はdevelopブランチを、GitHub-flowの場合は、mainブランチをベースにする。
そういう説明がなくて、かつ、誰も教えてくれなさそうな雰囲気がある場合は、gitHubで他の人が出したプルリクを見る
DockerでDevOps環境を整える
# DockerでDevOpsな環境を整える
ここ数年、炎上してる案件にアサインされてる。。
傾向として、svnでブランチがいっぱい作ってマージでデグレしたり、
Excelでバグ表を管理したり、ガントチャートを手作業で管理したり、
結合テストの段階までプログラムを動かしたテストをしてない、
テストが自動化されていないと惨憺たる状況が見られる。。。正直、付き合ってられない?
~~チンパンジーを相手にしてる気分、~~ということで、`docker-compose`を使って、進捗/バグ管理にRedmine
ソース管理と自動テストのためにgitlab,gitlab-runnerの環境を整えてみました。ソースコードやバグの管理、テストの自動化などに使っていただければ幸いです。
## docker-compose.ymlファイル
“`yaml:docker-compose.yml
version: “3”volumes:
# gitlab関連Volume
gitlab-config:
name: gitlab-config
gitlab-logs:
VSCodeとDockerで開発環境構築 (Python + PostgreSQL + Git)
# はじめに
Python(Django)とPostgreSQLが動作するDocker コンテナを構築し、
VSCodeを使ってコンテナ上のソースコードを修正するまでの手順を説明します。
※ 本投稿は、Mac OSを前提としています。
投稿時点のバージョン:macOS Monterey 12.4
|No.|項目|説明|
|:—|:—|:—|
|1|VSCode|コードエディタです。本投稿のメインとなります。
コンテナ上で開発が行えるようになります。|
|2|Docker Compose|複数のDocker コンテナを一元管理するツールです。
本投稿では、Python、PostgreSQLのコンテナを構築します。|
|3|Django|PythonのWebフレームワークです。|
|4|PostgreSQL|DBサーバです。
Webアプリケーションで利用するデータを保持します。|
|5|Git|ソースをGitHubで管理します。|[開発環境のイメージ]
VScodeのRemote Containersプラグインによって、
VSCode
【Git】リポジトリ名を変更する方法
## リモート側の作業
リポジトリの設定画面からリポジトリ名を変更します。
![スクリーンショット 2022-11-12 22.32.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342443/c3625029-995e-fc81-afba-d060380803e2.png)
## ローカル側の作業
以下のコマンドを実行してローカルの設定を変更します。
“`zsh
$ git config remote.origin.url
変更前のリポジトリ名$ git remote set-url origin https://github.com/新ユーザー名/新リポジトリ名.git
$ git config remote.origin.url
新リポジトリ名
“`
【MacOS Ventura】OSアップデート後VSCodeで「ソース管理プロバイダーが登録されていません」と表示される
MacOS Venturaにアップデート後、VSCodeで”No source control provides registered(ソース管理プロバイダーが登録されていません )”と表示されていた。その解決方法に関するメモを記す。
※2022/11/12 Sat 時点### 【環境】
– MacBook Pro(Apple M1)
– macOS Ventura バージョン 13.0.1
– VSCode Version: 1.73.1 (Universal)### 【事象】
– VSCodeのソース管理(Source Controle)で、Gitが認識されず、以下のメッセージが表示される
– “No source control provides registered”
– ターミナルからGitのコミットやプルはできるが、VSCodeのソース管理のところからは操作ができない状態### 【解決までに試したこと】
– Homebrewで brew doctorを実行して、表示された以下を実行“`
Warning: No developer tools
mainブランチでgit pull出来ない時の簡単な解決法
以前、mainブランチでgit pullをするとYour configuration specifies to merge with the ref “ブランチ名” from the remote, but no such ref was fetched.と出てしまい最新コミットを取得できない問題が起きました。
このエラー自体初めて遭遇したのでよく見てみると別ブランチがmainのリモートブランチになっていました。
ブランチの変更の際に切り替わっていない段階で変にコミットやらプッシュやらをしてしまったことが原因だと思いますが、そこまで大変な思いをせずに解消できましたので、お困りの方は参考にしてみてください。
## 解決法
めちゃくちゃ簡単です。
以下の手順でgitを操作していきましょう。### 1. 最新のコミットを取得する
git fetch
最後にgit pullをして最新コミットを取得しますが、ここでは念のためです。
### 2. mainブランチのリモートブランチを解除する
git branch –unset-upstream
ココが重要です。おそ
【写真有】完全初心者によるGit・GitHubの攻略①
# 00.最初に
こんにちは。駆け出しエンジニアのNoobです?
今回は、”初心者の” “初心者による” “初心者のための” **Git・GitHub攻略**を目的に、私が学習したことをなるべく体系的に記載してアウトプットの要領で投稿します?
また、「攻略①」として銘打ったのは、自分自身が成長した時にGit・GitHubの内容を更に深掘りした内容を出す(出したい)ということを目標にしているためです。笑この記事執筆時点で、既にWEBエンジニアとして1ヶ月が経過してしまいました。。
:::note warn
**⚠️読み進める前にご確認ください⚠️**=============================①本記事のレベル的な対象としては、`”Git・GitHubの学習を最近始めたレベル”`となります。既に実務等で使っている方からすると内容としては物足りなく感じられる可能性がございます。
②本記事の抜本的な目的は、Git・GitHubの基礎的な理解となります。
詳細すぎる内容に関しましては省略しておりますため、ご了承くださいますようお願い申し上げます。
※まず深すぎる内容に
git for windowsの設定の記録
1git for windowsの設定はどこにあって、どのファイルか。
どうやら設定にも範囲のレベルがあってlocal>global>systemで設定が優先される。だからlocalとglobalで設定の祖語があればlocalの設定が使われる。
2gitの設定をするには以下のコマンドを使う
git config –system hoge
git config –global hoge
git config –local hoge
gitの設定の確認するには以下のコマンドを使う
3現在有効になっている設定を確認する
git config -l
4各レベルで有効になっている設定を確認する
git config -l –system
git config -l –global
git config -l –lobal
5gitの設定ファイルの場所はどこか?
system
C:\Program Files\Git\mingw64\etc\gitconfig
global
C:\Users\<ユーザ名>\.gitconfig
local
クローンしたフォルダ直下の .git/conf
docker環境でgithubへの接続ができなくなった
# docker環境でgithubへの接続ができなくなった
wsl2 / Ubuntu上のdocker container からgit push しようとすると以下のエラーに遭遇
“`
Could not resolve hostname github.com: Temporary failure in name resolution
“`github.comの名前解決ができない模様。。。
container内の`/etc/resolv.conf`に以下を追記すると解決。
“`/etc/resolv.conf
nameserver 8.8.8.8
“`DNS 8.8.8.8はGoogleが運営するパブリックDNSサービスらしい。
https://www.school.ctc-g.co.jp/sse/columns/ozawa2/ozawa201.htmlにしても急にエラーが発生するようになったので根本的な解決ではない可能性あり??
現状container再起動すると追記内容が消えていしまうためlocalからマウントして対応中。
もっとスマートな解決方法があるはず
Gitで誤って異なるユーザで初回プッシュしてしまった時の対処方法
## 課題
### 1
Gitで異なるユーザで初回プッシュしてしまったので、正しいユーザでプッシュし直したい### 2
ググってみると`git push -f origin HEAD^`を実行しろ、とあるのでやってみるとエラーとなる。
“`bash
$ git push -f origin HEAD^:main
error: src refspec HEAD^ does not match any
error: failed to push some refs to ‘github.com:hoge.git’
“`## 対処法
以下コマンドを実行する
“`bash
$ git update-ref -d HEAD
“`git logをするとログがなくなっている状態となる
“`bash
git log
fatal: your current branch ‘main’ does not have any commits yet
“`ユーザ設定変更する
“`bash
git config user.name “hoge”
git config
はじめてのチーム開発でのGit (clone~pushまでの備忘録)
エンジニアとして1ヶ月が経ち本格的にGitを使い始めるので、自分への備忘録として残しておく。
リモートリポジトリのclone〜リモートリポジトリへのpushまでをまとめてみました。
(覚えてる範囲で…思い出したらまた書き足す。)## リモートリポジトリのクローン
まずは、VSCodeのこの”リポジトリのクローン”をクリック!
![スクリーンショット 2021-11-01 23.23.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2239673/f50010fb-2532-ef02-38df-df532c2c87bc.png)
入力項目に、欲しいリモートリポジトリ(Git-HubやGitLab)のURLをコピペ!
![スクリーンショット 2021-11-01 23.26.40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2239673/77954121-67e7-56f2-43fb-850ed8c60ed
【Git】git-diffにフィルターをかける方法
## はじめに
`git diff`の実行結果にフィルターをかけ削除したファイルリストなどを取得する方法について記載します。
## 方法
以下のように実行することで`git diff`にフィルターをかけられます。
“`zsh
git diff –diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]
“``–diff-filter`に設定できるフィルタリング文字の意味は以下のとおりです。
| 文字 | 意味 |
| :—: | :—————————————————————– |
| A | 追加 |
| C | コピー
git addする前のファイルの変更を元に戻すコマンド
“`
git checkout .
“`