- 投稿日:2021-01-27T23:51:33+09:00
きっとgit使えないとbad④
はじめに
git使っていて「コマンドなんだっけ?」ってなったら、
結局これ。help
% git --help usage: git [--version] [--help] [-C <path>] [-c <name>=<value>] [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path] [-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare] [--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>] <command> [<args>] These are common Git commands used in various situations: start a working area (see also: git help tutorial) clone Clone a repository into a new directory init Create an empty Git repository or reinitialize an existing one work on the current change (see also: git help everyday) add Add file contents to the index mv Move or rename a file, a directory, or a symlink restore Restore working tree files rm Remove files from the working tree and from the index examine the history and state (see also: git help revisions) bisect Use binary search to find the commit that introduced a bug diff Show changes between commits, commit and working tree, etc grep Print lines matching a pattern log Show commit logs show Show various types of objects status Show the working tree status grow, mark and tweak your common history branch List, create, or delete branches commit Record changes to the repository merge Join two or more development histories together rebase Reapply commits on top of another base tip reset Reset current HEAD to the specified state switch Switch branches tag Create, list, delete or verify a tag object signed with GPG collaborate (see also: git help workflows) fetch Download objects and refs from another repository pull Fetch from and integrate with another repository or a local branch push Update remote refs along with associated objects 'git help -a' and 'git help -g' list available subcommands and some concept guides. See 'git help <command>' or 'git help <concept>' to read about a specific subcommand or concept. See 'git help git' for an overview of the system.や
% git add --helpなど
最後に
ただ、説明が全て英語なので、その解読に時間が掛かってしょうがない…
- 投稿日:2021-01-27T23:36:41+09:00
プロキシが影響してGoの環境構築で発生するエラーの対処
プロキシを経由している自社ネットワークで使用している開発マシンにて、VSCodeで実行できる以下コマンドでGoの開発環境を構築しようとした。
Go: Install/Update Toolsところが以下のようなメッセージが出てインストールが失敗してしまうという状況です。
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
いろいろ調べたので、共有します。
前提条件
VSCode、Gitはインストール済み
対応まとめ
GitHubの設定ファイルにプロキシ設定を追加する
先にこれを実行しましたが、事象は解消されませんでした。
git config --global http.proxy http://proxy-address:proxy-port git config --global https.proxy http://proxy-address:proxy-port git config --global http.sslVerify falseVSCodeのsettings.jsonにプロキシの設定を追加する
この対応で「Go: Install/Update Tools」が失敗する事象は改善できました。
先ほど記載したgitのプロキシ設定も依存しているのかは不明です。{ "http.proxy": "http://proxy-address:proxy-port" }感想
実はまだgo getができない状態なので、引き続き調査を進めていきます。
A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
このエラーで悩んでいる方に届いてほしいです。
- 投稿日:2021-01-27T23:22:21+09:00
Git初心者のメモ その6:リモートからブランチを持ってくる
まず
git fetchでリモート追跡ブランチを作る。
git fetch <リモート名> <ブランチ名>そして
git checkout -tでブランチを作ってその作ったブランチに切り替える。
git checkout -t <リモート追跡ブランチ>例:
y_ito@note MINGW64 /c/work/lo_rep (master) $ git branch * master y_ito@note MINGW64 /c/work/lo_rep (master) $ git branch -r origin/master y_ito@note MINGW64 /c/work/lo_rep (master) $ git fetch origin develop remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0) Unpacking objects: 100% (3/3), done. From file:///c/work/pub_rep/uchinaaguchi * branch develop -> FETCH_HEAD * [new branch] develop -> origin/develop y_ito@note MINGW64 /c/work/lo_rep (master) $ git checkout -t origin/develop Switched to a new branch 'develop' Branch 'develop' set up to track remote branch 'develop' from 'origin'. y_ito@note MINGW64 /c/work/lo_rep (develop) $ git branch * develop master y_ito@note MINGW64 /c/work/lo_rep (develop) $ git branch -r origin/develop origin/master
- 投稿日:2021-01-27T22:29:27+09:00
docker版Giteaのアップデート
https://qiita.com/k8uwall/items/63c6424a976012122d18
あれから2年、そろそろアップデートしてみる。
docker-compose.ymlversion: '3' services: web: #image: gitea/gitea:1.7 image: gitea/gitea:1.13.1 volumes: - ./gitea-data:/data ports: - "3000:3000" - "10022:10022" environment: - TZ=Japan - SSH_PORT=10022 restart: alwaysSTART_SSH_SERVERの行をコメントアウトする
$ vi gitea-data/gitea/conf/app.ini ;START_SSH_SERVER = true$ docker-compose pull $ docker-compose upクライアント側から参照するサーバー側のkeyが変わるらしいので
クライアント側のknowns_hosts行を削除する。$ vi ~/.ssh/known_hosts [192.168.1.100]:10022 ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx ←削除他
ログに以下の行がssh接続するたびにエラーが記録されてしまうが、動きは問題ないらしい。
ssh logs about missing host certificates · Issue #13724 · go-gitea/giteaweb_1 | Could not load host certificate "/data/ssh/ssh_host_ed25519_cert": No such file or directory web_1 | Could not load host certificate "/data/ssh/ssh_host_rsa_cert": No such file or directory web_1 | Could not load host certificate "/data/ssh/ssh_host_ecdsa_cert": No such file or directory web_1 | Could not load host certificate "/data/ssh/ssh_host_dsa_cert": No such file or directory
- 投稿日:2021-01-27T21:44:15+09:00
よく使うgitコマンド
変更したファイルの一覧を見る
git status差分を見る
git diffステージに追加
git add -Aコミット
git commit -mカレントディレクトリをリモートにプッシュ(originを指定でブランチ名を指定しなくてよい)
git push origin HEADコミットを一つにまとめる
git rebase -igit stash
git reset
コミットが発生したときの対応マージと同時にissueをcloseできる?
- 投稿日:2021-01-27T19:16:17+09:00
保守性の高いコミットメッセージを書こう
はじめに
みなさんこんにちは。突然ですが、コミットメッセージを適当な気持ちで書いていませんか?
2,3週間後に過去のコミットのログを見直したときに、何についての変更なのかがわかりづらくて昔の自分を殴りたくなった経験はありませんか?そんなあなたにとっておきのプラグインを紹介いたします。
概要
結論から申し上げますと、commitizenを使うだけです。
Commitizenとは?
CLIを使って対話的にコミットメッセージを作ることができるコマンドラインツールです。導入手順
以下の記事を参考に導入して参ります。
Commitizenを使ってもうコミットメッセージに迷わない
個人開発者のためのコマンドラインGit使いこなし術
①グローバルにインストール
(ローカルにインストールすることもできますが、今回はグローバルにインストールします。)
以下のコマンド$ npm install commitizen -g $ npm install -g cz-conventional-changelog②グローバルのルート直下に.czrcファイルを作成
$ touch .czrc $ vim .czrc.czrc{ "path": "cz-conventional-changelog" }以上です。gitでaddした後に
$ git cz
を入力するとcommitizenがスタートし、以下のような対話形式でメッセージを入力する流れとなります。コミット後に
$ git log --graph
を入力すると以下のようにメッセージを含んだlogが表示されます。
参考記事
非常にわかりやすかったです。ありがとうございました。
【今日からできる】コミットメッセージに 「プレフィックス」 をつけるだけで、開発効率が上がった話
僕が考える最強のコミットメッセージの書き方
[Question] SyntaxError: Parsing JSON at <path> for commitizen config failed:に対するエラーは以下のissueで議論されていました。
[Question] SyntaxError: Parsing JSON at for commitizen config failed:
- 投稿日:2021-01-27T11:59:17+09:00
【Git】Gitチートシート
- 投稿日:2021-01-27T08:45:01+09:00
【Gitの前に知っておかないといけないこと(小学生でも分かる解説)】
Git とは
「Git」(ギット)という単語を使うだけで、エンジニアっぽくなる。(気がする)
じゃあ、Gitって何?
結論から、
Gitとは、
「作ったプログラムの履歴を残したり、そこに戻ったりするやつ」CLI(=CUI)、GUI とは
そのGitの前に知っておくべき、いや、知っておかなければ進めないものがある。
それが、CLI(CUIとも言われる)とGUI。
英語3文字攻撃だけど、たいしたことじゃない。・CLI(コマンドラインインターフェイス):裏
・GUI(グラフィカルユーザインターフェイス):表以上。いや、例くらい出しておく。
・CLI(コマンドラインインターフェイス):黒い画面(ターミナル)に呪文を打ち込む
・GUI(グラフィカルユーザインターフェイス):(たぶん今やってる)マウスやタッチパッドで画面を動かしたり、タッチしたりするへー。で?
で、非常に大変残念ながら、
「Git」は「CLI」の方ですよ。という話。Gitはどう使う?
それじゃあ、Gitは実際にどうやって使うのか。
上のCLIのとこで出てきた「ターミナル」というやつを使う。(Mac)
せめて日本語1文字くらい入れてくれ!と思うよね。。
この画面だけで拒否反応が出そうだけど、大丈夫。
まず、こんな英語をいろいろと入力できない!と勘違いしがち。実は、自分が入力した部分は、「%」の右部分だけ。
これで見ると、「pwd」と「ls」の合計5文字だけ!
あとは全部、Enter押したら勝手に出てくる。だいぶハードル下がったんじゃない?
その「%」の右側に自分で入れるのを「コマンド」っていう。
コマンドっていうのは、こうしてくれという命令。
「パンを買ってこい」と命令して、Enter押したら、「はい/いいえ」と返事が返ってくる感じ。ディレクトリ と パス
ディレクトリ。なんでわざわざ難しいような名前にするのか。。
結局は、ディレクトリってこれ↓ディレクトリ = フォルダ
ここでは、フォルダを「
カバン?」」と考えてみて欲しい。コンピュータのデータはいろんなカバンの中に入っている。
こんなこともよくある。
カバンを開けたら、またカバンが入っていて、さらにそのカバンの中にもカバンが入っていて。。。用語の説明をしておく。
・ルートディレクトリ:一番上のフォルダ(一番大きいカバン)
・カレントディレクトリ:今いる/作業しているフォルダ(今開いているカバン)・絶対パス:ルートディレクトリからの経路(一番大きいカバンからのスタート)
・相対パス:今のフォルダからの経路(今開いているカバンからのスタート)パスっていうのは経路、つまり、道。
カバンで言うと、
・どのカバンからスタートするのか
・そこから何個か開くか、何個かしまい直す
みたいな感じ。、、、分かりづらいので、例↓
フォルダ1(1番大きいカバン)
フォルダ2(その中の2番目のカバン)←これを開いている
フォルダ3(さらにその中の3番目のカバン)
この3つのフォルダ(カバン)があったとする。
・ルートディレクトリは、フォルダ1の1番大きいカバン
・カレントディレクトリは、今開いているフォルダ2のカバンフォルダ3までのパスを考えると、
・絶対パスなら、「/フォルダ2/フォルダ3」(カバン1がスタートで、その中のカバン2の中のカバン3)
・相対パスなら、「/フォルダ3」(カバン2がスタートで、その中のカバン3)「/」は「その中の」みたいな意味。
なんとなくわかったかな?
大事なこと
この黒い画面の操作で、最も大切だと感じたのは、
今、自分がどこにいるのか(どのカバンを開いているのか)を意識すること
これはまず間違いないので、最後にもう一回言う。
今、どのカバンを開いているのかを常に意識すること
【次回】黒い画面(ターミナル)でよく使うコマンド
- 投稿日:2021-01-27T02:45:19+09:00
【git】コンフリクト解消時に使うコマンド(fetch, --prune, merge)についてのまとめ
私は現在、オンラインプログラミングスクール「やんばるエキスパート」で、4人チームで共同開発を行っています。
開発現状
ブランチは開発用のdevelopブランチをメインとしており、自分で作業する時は、developブランチから新しい作業ブランチを切って作業しています(ここでは仮に
feature/hoge_fugaとします)。そして、コンフリクトの発生時にスクールの教材では、git branch で作業ブランチにいることを確認後 git fetch --prune git merge origin/developを行うように記載されており、「fetchってなに?」「--pruneってなに?」「merge origin/developって何で行うの?」と疑問になったので、自分で調べてまとめてみました。
git fetch --pruneとは?
git fetchが、リモートリポジトリから最新情報を取ってくるコマンドで、
--pruneオプションをつけることで、自動的にリモートリポジトリで消されたリポジトリを削除してから、ローカルリポジトリにも反映させてくれます。ローカルリポジトリの作業ブランチにorigin/develop(開発用)ブランチをmergeする
現状、ローカルリポジトリには作業ブランチである
feature/hoge_fugaとorigin/developが存在しています。そして、origin/developはリモートリポジトリと結びついています。`git fetch --pruneで
origin/developが最新情報になってますのでここで、git merge origin/developコマンドを使う事によって、ローカル環境の
feature/hoge_fugaが最新の状態に更新されるということになります。まとめ
スクールの教材などを行っていると、良い方向に誘導してくれますが、それだけではいけないと思ってます。自分の頭で考え、「これってどういうこと?」というのは今後も深堀りしていきたいと思います。もし今回のまとめが「ここ違うよ!」って点がありましたら教えていただけると嬉しいです。最後までお読みいただきありがとうございました。
参考文献
- 投稿日:2021-01-27T02:45:19+09:00
【git】開発ブランチのマージ時に使うコマンド(fetch, --prune, merge)についてのまとめ
私は現在、オンラインプログラミングスクール「やんばるエキスパート」で、4人チームで共同開発を行っています。
開発現状
ブランチは開発用のdevelopブランチをメインとしており、自分で作業する時は、developブランチから新しい作業ブランチを切って作業しています(ここでは仮に
feature/hoge_fugaとします)。そして、コンフリクトの解消時の注意点として、現在の開発ブランチにマージする手順をスクールの教材では、git branch で作業ブランチにいることを確認後 git fetch --prune git merge origin/developを行うように記載されており、「fetchってなに?」「--pruneってなに?」「merge origin/developって何で行うの?」と疑問になったので、自分で調べてまとめてみました。
git fetch --pruneとは?
git fetchが、リモートリポジトリから最新情報を取ってくるコマンドで、
--pruneオプションをつけることで、自動的にリモートリポジトリで消されたリポジトリを削除してから、ローカルリポジトリにも反映させてくれます。ローカルリポジトリの作業ブランチにorigin/develop(開発用)ブランチをmergeする
現状、ローカルリポジトリには作業ブランチである
feature/hoge_fugaとorigin/developが存在しています。そして、origin/developはリモートリポジトリと結びついています。`git fetch --pruneで
origin/developが最新情報になってますのでここで、git merge origin/developコマンドを使う事によって、ローカル環境の
feature/hoge_fugaが最新の状態に更新されるということになります。まとめ
スクールの教材などを行っていると、良い方向に誘導してくれますが、それだけではいけないと思ってます。自分の頭で考え、「これってどういうこと?」というのは今後も深堀りしていきたいと思います。もし今回のまとめが「ここ違うよ!」って点がありましたら教えていただけると嬉しいです。最後までお読みいただきありがとうございました。
参考文献
- 投稿日:2021-01-27T02:45:19+09:00
【git】コンフリクト時に使うコマンド(fetch, --prune, merge)についてのまとめ
私は現在、オンラインプログラミングスクール「やんばるエキスパート」で、4人チームで共同開発を行っています。
開発現状
ブランチは開発用のdevelopブランチをメインとしており、自分で作業する時は、developブランチから新しい作業ブランチを切って作業しています(ここでは仮に
feature/hoge_fugaとします)。そして、コンフリクトの発生時にスクールの教材では、git branch で作業ブランチにいることを確認後 git fetch --prune git merge origin/developを行うように記載されており、「fetchってなに?」「--pruneってなに?」「merge origin/developって何で行うの?」と疑問になったので、自分で調べてまとめてみました。
git fetch --pruneとは?
git fetchが、リモートリポジトリから最新情報を取ってくるコマンドで、
--pruneオプションをつけることで、自動的にリモートリポジトリで消されたリポジトリを削除してから、ローカルリポジトリにも反映させてくれます。ローカルリポジトリの作業ブランチにorigin/develop(開発用)ブランチをmergeする
現状、ローカルリポジトリには作業ブランチである
feature/hoge_fugaとorigin/developが存在しています。そして、origin/developはリモートリポジトリと結びついています。`git fetch --pruneで
origin/developが最新情報になってますのでここで、git merge origin/developコマンドを使う事によって、ローカル環境の
feature/hoge_fugaが最新の状態に更新されるということになります。まとめ
スクールの教材などを行っていると、良い方向に誘導してくれますが、それだけではいけないと思ってます。自分の頭で考え、「これってどういうこと?」というのは今後も深堀りしていきたいと思います。もし今回のまとめが「ここ違うよ!」って点がありましたら教えていただけると嬉しいです。最後までお読みいただきありがとうございました。
参考文献


