- 投稿日:2021-08-15T23:34:17+09:00
SourcetreeのGitHub パスワードをパーソナルアクセストークンに変更する方法
現象 Githubにpushできない 以下、エラー内容 Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: unable to access 'https://github.com/<ユーザ名>/<リポジトリ名>.git/': The requested URL returned error: 403 エラー原因については以下の記事を参照 解決策 1.GitHub で Settings → Developer settings → Personal access tokens → Generate new token を開く 2.必要な権限にチェックを入れ、 Generate token をクリック(迷ったらすべてチェックしてOK) ※ 再確認できないためtokenはメモ必須 3.コントロール パネル → ユーザー アカウント → 資格情報マネージャー → Windows資格情報 を開く 4.汎用資格情報の github.com または Sourcetree が付いてるものを削除 5.C:\Users\ユーザ名\AppData\Local\Atlassian\SourceTree 内の下記ファイルを削除 bookmarks.xml opentabs.xml passwd userhosts 6.C:\Users\ryome\AppData\Local\Atlassian\SourceTree.exe<ランダム文字列>/<version>/ 内の下記ファイルを削除 user.config 7.Sourcetree を起動し、 Add からローカルリポジトリを選択する 8.プッシュ時に ユーザー名 と 2で取得したtoken を入力する 9.プッシュが成功すれば解決
- 投稿日:2021-08-15T18:01:13+09:00
Gitって何!?(初心者向け)
はじめに これからプログラミング関連の知識を簡潔にまとめた記事をどんどん投稿していこうと思いますが、もし誤っている部分があればすぐに修正しますので、ご指摘方よろしくお願いいたします。 早速ですが、本題に入っていきましょう。 Git とは 簡単に言うと・・・ ソースコードやファイルの変更履歴を分散して管理することができるシステム です。 もう少し詳しく説明すると、 Gitでは、ファイルの変更履歴、つまりファイルのバージョンを「コミット」という単位で管理することができます。 また、共有サーバー上にある大元のフォルダのコピーを手元(各自のPC上)に置いて自由に編集することができます。 これによりどのようなメリットがあるかというと... ①古いバージョンに戻すことができる 不具合が発生したときや、やっぱり前のファイルに戻したいなってときに、簡単に古いバージョンに戻すことができます。 ②チーム開発をより効率的に行うことができる コミットの履歴をたどれば、いつ誰がどこに変更を加えたのかがチーム内の誰でも分かるので、チーム内での情報共有がしやすくなります。 また、分散して管理することができるので、複数人が同時進行で別の機能を実装していくことができます。 万が一、2人が同時に同じファイルを編集してしまった場合でも、競合が発生していると教えてくれ、先に編集した人の内容が消えてしまうというような事態を防ぐこともできます。 まとめ プログラム言語の勉強はもちろん大事ですが、Gitもしっかりおさえておきましょう。
- 投稿日:2021-08-15T11:30:41+09:00
WindowsでSourcetreeを使ったGitHubの認証方法でパスワード認証からトークンベース認証への移行方法
はじめに 2021年8月13日から、GitHub.comでのGit操作の認証時にアカウントのパスワードを受け付けなくなるような仕様に変更されました。 https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ これにより、今後はパスワード認証ではなく、トークンベース認証を使用しなければ、GitHubを操作することができなくなります。私はWindowsマシンでSourcetreeを使って、パスワード認証でGitHubを操作していたので、この仕様変更で使えなくなりました。今回は、この状態からGitHubを操作できる状態までの手順を記事にしようと思います。 この記事では、WindowsでSourcetreeを使ったGitHubの認証方法でパスワード認証からトークンベース認証への移行方法を記載します。トークンベース認証に関しては、個人用アクセストークン、OAuthトークン、GitHub Appインストールトークンなどありますが、ここでは個人用アクセストークンを用いた認証方法を使います。 よろしくお願いします。 手順 手順1:個人用アクセストークンの発行 まずは、個人用アクセストークンの発行をします。(以下、公式の手順) https://docs.github.com/ja/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token これは、GitHub上で作業します。手順は以下の通りです。 1. 自分のアカウントでログイン。 2. Settingsページへ移動。 3. Developer settings > Personal access tokens > Generate new tokenの順番で移動し、発行準備。 4. Note、Expiration、Select scopesを設定して、トークンを発行する。 5. 発行されたトークンは一度しか表示されないので、必ずローカルなどへ保存し、控えておいてください。 以上で、個人用アクセストークンの発行は終了です。 手順2:Sourcetreeのpasswdファイルの削除 次に、ローカルにある、Sourcetreeのpasswordファイルを削除します。 これをすることで、今まで適用されていたパスワードを削除することができます。 以下の場所に置いてあるので、このpasswdファイルを削除します。 C:\Users\{USERNAME}\AppData\Local\Atlassian\SourceTree\passwd 削除したら、Sourcetreeを再起動します。 以上で、Sourcetreeのpasswdファイルの削除の終了です。 手順3:Sourcetreeで個人用アクセストークンを使って、再認証する 最後に、Sourcetreeで個人用アクセストークンを使って、再認証します。 これは、Sourcetree上で作業します。手順は以下の通りです。 Sourcetreeを起動したら、ツール > オプション > 認証 > アカウント > 編集 を選択します。 認証がBasicに選択されている状態で、パスワードを再読み込みします。 パスワードに、先ほど発行した個人用アクセストークンを入力します。 以上で、Sourcetreeで個人用アクセストークンを使って、再認証は終了です。 おわりに これで無事に、WindowsでSourcetreeからGitHubを操作することができるようになったと思います。 ここまで読んでいただき、ありがとうございました。
- 投稿日:2021-08-15T09:53:41+09:00
git push "Support for password authentication was removed. Please use a personal access token instead." for windows
パスワード認証の有効期限が2021年8月23日までらしく、アクセストークンを利用したログイン方法に変更する必要があるとのこと。 エラー内容 PS C:\XXXXXXXX/XXXXXXXX/XXXXXXXX/XXXXXXXX.git/> git push Logon failed, use ctrl+c to cancel basic credential prompt. remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: unable to access 'https://github.com/XXXXXXXX/XXXXXXXX.git/': The requested URL returned error: 403 結果 以下を実施することで、いつも通りに利用できるようになりました。 githubで二段階認証のを設定。 githubでアクセストークン(repo権限)を発行。 Windows資格情報のパスワードをアクセストークンに変更。 実施内容の詳細 二段階認証の有効化 エラーログのURLを確認し、二段階認証を有効化しました。 →github blog スマホの認証アプリはgoogle 認証システムを利用しました。 Go to setting from github => Account security => Two-factor authentication => Enable アクセストークンの発行 有効期限は無期限も設定できるようです。 Go to setting from github => Developer settings => Personal access tokens => Generate new token アクセストークンはこちら windows認証情報の修正 Go to Credential Manager from Control Panel => Windows Credentials => find git:https://github.com => Edit => On Password replace with with your Github Personal Access Taken => You are Done パスワードにgithubで発行したアクセストークンを設定する。 以上です。
- 投稿日:2021-08-15T09:49:40+09:00
SourceTreeで403が出た時の対処法
環境 OS : macOS Big Sur ver11.4 SourceTree : 4.1.2 Git : 2.30.1 発生した事象 SourceTreeでプッシュしようとすると以下のエラーが発生しました。 git --no-optional-locks -c color.branch=false -c color.diff=false -c color.status=false -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/master:refs/heads/master Pushing to https://github.com/aaa/bbb.git remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: unable to access 'https://github.com/aaa/bbb.git/': The requested URL returned error: 403 Completed with errors, see above パスワード認証のサポートは2021年8月13日に削除されました。代わりに個人アクセストークンを使用してください。 とあります。 念の為に 再認証したら行るかなっと思って以下を試してみました。 (案の定ダメでしたが。。) 再認証する ①丸に囲まれた「・・・」マークを押下し、アカウントを選択 ②「アカウント」タブで「追加」ボタンを押下 ③ホストには「GitHub」を選択し、認証タイプは「Basic」とします。 ④ユーザー名とパスワード項目が表示されるので、認証情報を入力します。 ⑤プロトコルは「HTTPS」を使用しています。 ⑤「保存」ボタンを押下 結果、うまく行かなかったので 認証タイプを「OAuth」に変更し、ブラウザ上で認証して再チャレンジ・・・ 認証は通るけど、結局プッシュは出来ず。 キーチェーンアクセスからgithubを削除 MacのFinderで「アプリケーション」→「ユーティリティ」→「キーチェーンアクセス」と開いていき、「github.com」となってるものを削除します。 ※ログイン、ローカル項目の両方から削除します。 こちらも、解決しませんでした。 エラーメッセージをよく見る こちらのページを見るようにと促しがあることに気が付きました。 内容を確認すると「githubの設定に二段階認証があるから有効にしなさい」とのこと 二段階認証を有効化 GitHub Docsのページを参考に以下の手順で二段階認証を有効にします。 ① githubページのトップページでアカウントメニューの「setting」を押下 ② アカウント設定の画面に遷移するので、「Account security」を押下 ③ 「Enabled Two-factor authentication」を押下 ④ [Set up using an app] をクリックすると、リカバリーコードが表示されるのでダウンロード等して保管します ⑤ リカバリコードを保存したら、Nextをクリック ⑥ 1タイムパスワードの案内が出てくるのでmicrosoft authenticator等を使って認証する 以上の手順で二段階認証が有効になります。 プッシュを再度試す SourceTreeでプッシュ出来るようになったか試してみます。 しかし、まだエラーが発生している状態でした。 ただ、エラー内容は代わり、以下の通りになりました。 git --no-optional-locks -c color.branch=false -c color.diff=false -c color.status=false -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree push -v --tags origin refs/heads/master:refs/heads/master Pushing to https://github.com/aaa/qiita.git remote: Repository not found. fatal: repository 'https://github.com/aaa/qiita.git/' not found Completed with errors, see above その他、見直す 色々なサイトを参考に試行錯誤した結果、以下の手順で解決出来ました。 ① githubページのトップページでアカウントメニューの「setting」を押下 ② アカウント設定の画面に遷移するので、「Developer settings」を押下 ③ メニューから「Personal access tokens」を選択 ④ 「Generate new token」ボタンを押下 ⑤ 「Note」に任意の名称を入力、「Select scopes」欄にはrepo、userをチェック ⑥ ⑤の続きで「Generate new token」ボタンを押下するとパスワードが発行されます ⑤ 上記、再認証の手順でパスワードを④で発行したもので認証する ※こちらのページが画像つきで参考になりました。 参考文献
- 投稿日:2021-08-15T07:31:40+09:00
git configするときにユーザー名/パスワード入れてアクセスする方法
git config submodule名 "https://user名:パスワード@gitのURL" ユーザー名や、パスワードに@などが入っている場合は、URLエスケープする必要がある。 参考:TECHNICAL MANUAL 例えば、user名にメアドが入ってたりしたら(user@hogex.co.jp) git config submodule名 "https://user%40hogex.co.jp:パスワード@gitのURL" みたいな感じ。
- 投稿日:2021-08-15T05:17:16+09:00
LaTeX文書置き場としてのGit/GitHub最速チュートリアル
概要 LaTeX文書1置き場としてはGoogle DriveやDropboxよりもGitHubがおすすめ 以前の記事ではGitHubの使い方にはあまり触れなかった ブランチやプルリク等の機能は無視した単なる物置としてのGit/GitHubの運用法を紹介 対象読者 LaTeXについてはよく知っているがGit/GitHubについてはあまり知らない LaTeX文書を書き,それをソースごと公開しようと思っている CUIにさほど抵抗はない(具体的にはPowerShellやWSLを使えと言われたら使える程度) GitをCUIで使用できる環境を整えることができる(あまり古くないバージョンのWindows10ならOK) 多少は英語が読める(サイトが英語でも文句を言わない程度) 本記事に書いてあること 単なる物置としてのGit/GitHubの使い方 .gitignoreの使い方 本記事に書いていないこと LaTeX文書の書き方 WSLの導入法 ターミナルまわりのいろいろ(例えばこのへんを読んでおくとよいかもしれない) Git/GitHubの詳細な解説 Git/GitHubが有するスバラシイ機能 GUIベースでのGit/GitHubの使用方法2 VSCode等のテキストエディタからの操作 Windows10以外のOSでの運用 説明なしで登場する(した)用語の意味 背景と導入 以前このような記事を投稿し.LaTeX文書はGitHubに置いてソースごと公開せよという主張を述べた. しかし,そこではGit/GitHubの使い方に関してはほとんど触れず, たとえソースを公開しようと思っても何をどうしたらよいのかははっきりと伝わってはいなかった. しかも,「単なる物置としてGitHubを使う」という運用はGitHubの運用としては相当異端であり,調べても必要な情報を見つけるのは容易ではない. そこで,本記事ではLaTeX文書置き場として,学習コストが比較的高いブランチやプルリク等の機能はすべて無視したGitHubの運用法を紹介する. 知識の整理 筆者個人としては,使うツールや行う操作が一体どういうものなのかということを, 難しくなりすぎない範囲で理解すべきであると考えている. しかし,「最速チュートリアル」ということを考えれば,この部分は余計だろうと考える人もいるかもしれない. そのような人は,この項は読み飛ばし,環境構築から読み始めてほしい. ライセンス ライセンスとその意義 著作物の利用は,無断で行ってよいことが法律等で規定された場合を除き,著作者の許可が必要である. しかし,著作者が「このくらいは別にいいだろう」と考えてるものに対していちいち許可を取るのは不合理である. そのような場合,あらかじめその著作物にその旨を明記しておくと都合がよい.これをライセンスという. 本記事で扱う文脈では,主にソースコードの再利用に関して問題になることが多いだろう. ライセンスがなくては,そもそもコピーしてよいかとかバグを修正したり機能を追加したりしたうえで 再配布してもよいかなどといったことも いちいち許可を取らなくてはならない.「バグ修正や機能追加なら大歓迎だから勝手にやってくれよ」と思うのであれば, その旨を明記しておくことで利用者が安心して行えるのである. ライセンスの選択 ここで重要なのは,自分が公開するソースコードのライセンスはどうするか,ということである. 今までライセンスなどということを考えたことはない人の中には「とりあえず好きに使ってくれていいや」と思う人も多いであろう. そのような人はMITライセンスを選択することを推奨する. MITライセンスに関しては,例えば のような解説がある.MITライセンスで公開されているものの利用に関しては,例えば といった解説がある. ライセンスの選択で重要なのは,よく知られているものをそのまま使うということである. 特段の理由がない限り,改変したライセンスやオリジナルのライセンス等は用いるべきではない. 何をやっていいのかが不明瞭になる上に,そもそもライセンス本文は改変が許可されていない場合もあるからである. WSL Windows Subsystem for Linux(WSL)は,Windows上でLinuxを動かすための互換レイヤーである. 現在WSL2が最新であり,特に理由がない場合にはWSL2を導入することが推奨される. ここでは,GitをCUIで動かすためのWindows上の実用的な環境であるという理由で導入する. Git Gitは,ソースコード等のテキストベースのファイルの変更履歴を追跡するための分散型バージョン管理システムである. テキストベースのファイルのみを管理するのが望ましいが,PDFのようなバイナリファイルも管理できないわけではない. ここでは,ファイルをいい感じに管理してくれるツール程度に思っておけばよい. ファイル名に日付をつけたり,ファイル名末尾に「最終版」とか「提出版」等の識別子をつけて管理していたのを自動で行ってくれるものと考えると理解しやすいであろう. Gitによるファイル管理の仕組み リポジトリとワークツリー Gitがファイル(やディレクトリ)の状態を記録しておく場所をリポジトリという. リポジトリには,ローカルマシン上に存在するローカルリポジトリと外部サーバー上に存在するリモートリポジトリの2種類がある. さらに,リモートリポジトリには誰でも閲覧できるパブリックリポジトリと自分だけ(あるいはチームのメンバーだけ)が閲覧できるプライベートリポジトリが存在する.なお,リモートリポジトリに対する操作はパブリック・プライベート関係なく自分が所有するリポジトリに対してのみ行える. Gitがローカルマシン上のファイルを管理している状況を考えよう. あるディレクトリをGitの管理対象にすると,そのディレクトリに.gitというディレクトリが作成される. これがGitリポジトリである.そして,実際に作業しているディレクトリをワークツリーと呼ぶ. 例を挙げよう.いま,Gitの管理対象となっているディレクトリが以下のような構造であったとする. . ├── .git ├── README.md ├── llmk.toml └── test.tex 1 directory, 3 files この.gitディレクトリが「Gitリポジトリ」と呼ばれるものであり,それを除いた残りの部分がワークツリーである. ステージング・エリア 上記の状態でワークツリー内のファイルに変更が生じたとしても,それはすぐにはリポジトリには反映されない. 反映させるためには,ステージング・エリア(インデックス)と呼ばれる領域にその情報を登録する必要がある. ステージング・エリアに情報を登録することをステージングといい, ステージング・エリアに登録された情報をリポジトリに反映させる操作をコミットと呼ぶ. このような二段階の工程を踏むことにより,いくつかの変更をまとめてコミットしたり,特定のファイルのみをコミットしたりできる. また,ある特定のファイルはGitに管理させたくない,という場合,そのファイルの名前を.gitignoreというファイルに記述しておくと, Gitはそれを無視してくれる..gitignoreに記述するファイル名には「*.log」のような書式も有効で,この場合「.logで終わるファイルすべて」という意味になる.auxファイルやlogファイルは管理させても仕方ないので,.gitignoreに記述しておくべきである. GitHub 作成したローカルリポジトリをインターネット上のリモートリポジトリに反映させるためには, そのためのプラットフォームが存在していると都合がよい. そのようなプラットフォームはいくつか存在している3が,GitHubというプラットフォームが定番である. 数あるプラットフォームの中からGitHubを選択する理由としては,定評があるというのはもちろんであるが, もっと重要な理由として,ライセンスと.gitignoreを自動生成してくれるという点が挙げられる. プラットフォーム上で作成したリモートリポジトリは,公開されているものは自由にローカルマシン上に複製できる. その行為をクローンと呼ぶ.クローンによって作成されたローカルリポジトリは 取得元のリモートリポジトリと紐づいており,リモートリポジトリに変更があった場合, 新しくクローンし直すことなく更新を反映させることができる.この更新の反映はプルという. 自身が所有するリモートリポジトリの場合, ローカルマシン上のローカルリポジトリの内容をそのリモートリポジトリ上に反映させることができる. その行為をプッシュと呼ぶ.この場合,当然ローカルリポジトリとリモートリポジトリは紐づいていなければならない. ローカルリポジトリとリモートリポジトリを独立に作成した場合,その紐づけ作業をしなければならないが, リモートリポジトリをクローンして作成されたリモートリポジトリの場合はその作業は不要である. 従って,特に理由がなければ,先にリモートリポジトリを作成した上でそれをクローンすることが推奨される. 最低限のワークフロー 以上のことを踏まえれば,Gitでファイルを管理してそれをGitHub上のリモートリポジトリと連携させたい場合, 最低限のワークフローは以下のようになる. GitHub上でリモートリポジトリを作成する. リモートリポジトリをクローンし,ローカルマシン上にそのリモートリポジトリと紐づいたローカルリポジトリを作成する. ワークツリー上で作業する. 作業したファイルをステージング・エリアに登録する. ステージング・エリアの情報をもとにローカルリポジトリにコミットする. ローカルリポジトリの内容をリモートリポジトリにプッシュする. 環境構築 ここでは,WSLで導入するディストリビューションはUbuntuであることを想定している. それ以外のディストリビューションを導入したい場合は, 導入後に実行するコマンドをそのディストリビューションに応じたものに置き換えよ. WSL 詳細な方法は調べればいくらでも出てくるので省略.例えば以下. なお,これ以降の操作はすべて導入したLinuxディストリビューション上での操作である. 「ターミナル上」は導入したLinuxディストリビューションを起動すると表示されるコンソール上のことであると読み替えてよい. Git インストール ターミナル上で以下のコマンドを実行する4: $ sudo apt install git 実行した場合にはパスワードが要求されるが,そのパスワードはLinuxディストリビューションを導入したときに設定したものを入力する. 初期設定 リモートリポジトリをcloneするだけなら不要であるが, コミットすることも考えるとユーザー名とメールアドレスをここで設定しておくべきである. コミットにはこの設定が必須だからである. 設定には~/.gitconfigファイルを編集してもよいが,ターミナル上からも行える.次のコマンドを実行すればよい(名前とメールアドレスの部分は各自置き換え): $ git config --global user.name "Your Name" $ git config --global user.email "YourEmail@gmail.com" GitHub アカウントの作成 GitHubにアクセスし,「Sign Up」からアカウントを作成する. ここで設定するユーザー名やメールアドレスは,Gitで設定したものと異なっていてもよい(両者はまったく独立である). パーソナルアクセストークンの作成 プライベートリポジトリをクローンしたり,リモートリポジトリにプッシュしたりする場面において,認証が求められる場合が多々ある. 認証にはユーザー名とパスワードの入力が求められるので,アカウント作成時のユーザー名とパスワードを入力すればよいものと考えて入力すると,認証に失敗してしまう.実はパスワードによる認証は2021/08/13に終了しており,失敗するのはそれが原因である. ここでは,パスワードではなくパーソナルアクセストークンによる認証方法を紹介する. SSHキーによる認証方法は,例えば を参照せよ.手順は以下のようになる: GitHubの右上に表示されているユーザーのアイコンをクリックする. 表示されているメニューの中から「Settings」をクリックする. ページ左のメニューから「Developer settings」をクリックする. ページ左のメニューから「Personal access tokens」をクリックする. 「Generate new token」ボタンをクリックする. 「Note」欄に何かしらの説明を書く(省略不可). 「Expiration」のところでトークンの有効期限を設定する. 「Select scopes」以下の欄にこのトークンを使った場合に許可したい操作にチェックを入れる.一番上の「repo」にチェックを入れておけばたいていは事足りると思われる5. 一番下にある緑色の「Generate token」をクリックする. 画面上に作成されたトークンが表示されるので,記録する. Gitが関係するコマンドで入力が要求される「パスワード」には,GitHubアカウントを作成した際のパスワードではなくここで作成したパーソナルアクセストークンを入力することになる. 運用 いよいよ具体的な運用法を述べる. リモートリポジトリの作成 GitHub上で緑色の「New」ボタンをクリックし,新しいリモートリポジトリを作成する.この「New」ボタンはトップ画面やリポジトリ一覧画面等にある. リポジトリ名を記入する.リポジトリ名には日本語は使用不可である(ハイフンに置換されてしまう). リポジトリをパブリック・プライベートのどちらにするかを決める(無論途中で変更できるので,とりあえずで決めて構わない). リポジトリ作成時にREADMEを追加する場合,「Add README file」にチェックを入れる(後でローカルリポジトリ上で作成してプッシュしてもよい). 「Add .gitignore」にチェックを入れる. 「.gitignore template: None ▼」というボタンが表示されるので,それをクリックして「TeX」を選択する. 「Choose a license」にチェックを入れる. 「License: None ▼」というボタンが表示されるので,それをクリックして適切なライセンスを選択する.筆者個人としてはMITがオススメである. 緑色の「Create repository」ボタンをクリックする.これでリモートリポジトリが作成される. なお,ここでプライベートリポジトリを作成した場合,クローンやプッシュには認証が要求される場合がある. 詳しくはパーソナルアクセストークンの作成の項を参照せよ. リモートリポジトリのクローン まずはターミナル上でリモートリポジトリをクローンしたい場所に移動する.ここでは,「git」というディレクトリを新しく作成し,そこにクローンすることとする. まず,以下のコマンドを実行し,ディレクトリ「git」を作成する: $ mkdir git 次に,以下のコマンドを実行し,作成したディレクトリ「git」に移動する: $ cd git この状態で,以下のコマンドを実行する: $ git clone https://github.com/<UserName>/<RepositoryName> 後半のURLは作成したリポジトリのURLを入力する. LaTeX文書の作成 ワークツリー上で思うがままに執筆する.なお,WindowsのエクスプローラーからLinux側のファイルにアクセスするためには, エクスプローラー上で「\\wsl$」を開けばよい(開いているファイルが表示されている部分のアイコンをクリックして入力). この作業は頻繁に行うので,そもそもLinux上で執筆できるようになっていることが望ましい. 使い慣れたエディタを使えばよいが,これといったものがないならVSCodeがオススメである. 環境構築は などを参照せよ.この場合,TeX環境もWSL側に用意されているべきである.インストール方法はLinuxにインストールする方法とまったく同じである. ステージングとコミット 適当な切れ目でローカルリポジトリにファイルの変更をコミットしておこう. まず,以下のコマンドを実行してステージングを行う: $ git add . 後ろにくっついているドットはタイポではない.このドットは「カレントディレクトリのファイルすべて」という意味である. ファイル名を明示的に指定することでそのファイルのみをステージングすることもできるが,そのような状況はあまり多くはないであろう. なお,ドットを記述しても.gitignoreに記述されたファイルは無視される. PDFファイルを無視させたくない場合,.gitignoreを開いて「*.pdf」をコメントアウトするか削除すればよい. 文書が完成し,公開に移る段階で行うことが多いだろう. 次に,以下のコマンドを実行してステージング・エリアの情報をローカルリポジトリに反映させる(「some comment」の部分は各自書き換え): $ git commit -m "some comment" -m以降はコミットに付随するコメントを表す.コミットにはコメントが必須であり,-m以降を省略して git commitとした場合はコメントを入力する画面が立ち上がり,入力が求められる. コメントの内容は,「誤植の修正」とか「証明の追加」等コミットの内容を一言で言い表したものが望ましい. 真面目に開発を行う場合はコミットの粒度やコメントの内容はよく検討すべきであるが, 本記事で想定しているような物置としての運用であれば雑でもよいだろう. リモートリポジトリへのプッシュ ここまで上に述べた手順通りに進めた場合,ローカルリポジトリとリモートリポジトリの紐づけはすでに完了している. 従って,プッシュには以下のコマンドを実行するだけでよい: $ git push コマンドを実行すると,SSHキーで認証していない場合には 認証のためにGitHubのユーザー名とパスワードの入力が求められる. ここで入力するパスワードは,作成したパーソナルアクセストークンである(パーソナルアクセストークンを作成を参照せよ). プッシュが成功すると,GitHub上のリポジトリの情報も更新されているはずである. パブリック・プライベートの切り替え 「文書作成途中はプライベートで,完成した段階でパブリックに」という運用をすることも考えられる. あるいは,「文書に重大な間違いが見つかったので,修正するまで一時的に非公開としておく」といったこともあるだろう. その場合,次のようにして切り替える: GItHub上でそのリポジトリを開く. ページ上部のメニューから歯車アイコンとともにある「Settings」を選択する. 「Options」メニュー下部にある「Change visiblity」ボタンをクリックする. 「Make public」か「Make private」のうち適切な方を選択する. 確認のため,「ユーザー名/リポジトリ名」を入力する. 「I understand, change repository visiblity」ボタンをクリックする. ローカルリポジトリを独立して作成する場合の運用 ここでは,リモートリポジトリをクローンせず,ローカルリポジトリを独立して作成する場合の運用を述べる. ローカルリポジトリの作成 まず,Gitに管理させたいディレクトリに移動する.そして,そのディレクトリ上で以下のコマンドを実行する: $ git init git initコマンドはリポジトリの新規作成を行うコマンドであり,これによってステージング・エリアやローカルリポジトリが作成される. リモートリポジトリと関係ないgit addやgit commitはこの時点でも上で述べたものと同様にできる. リモートリポジトリの作成 これは上と同様である.ただし,.gitignoreとライセンスは作成しない.ファイルが1つも存在しない空のリポジトリを作成する. リポジトリの紐づけ 作成したローカルリポジトリとリモートリポジトリを紐づけする. 紐づけしたいローカルリポジトリがあるディレクトリに移動し以下のコマンドを実行する(URLは紐づけしたいリモートリポジトリのものを入力): $ git remote add origin https://github.com/<UserName>/<RepositoryName> ここに書かれている「origin」は,リモートリポジトリに対してGitがデフォルトでつけている名前を表す. つまり,このコマンドはローカルリポジトリが想定するリモートリポジトリに作成したリモートリポジトリを 加える操作を表すことになる. mainブランチの作成 次にmainブランチというブランチを作成する6. $ git branch -M main GitHub上でのファイルの追加 このやり方では.gitignoreやライセンスは自動生成できないのではないか,などと心配する必要はない. 次の手順で途中からでも自動生成できる: GitHub上でそのリモートリポジトリを開く. 「Add file」ボタンをクリックし,「Create new file」を選択する. 作成するファイル名に「.gitignore」もしくは「LICENSE」を入力する. 右側の「Cancel changes」ボタンの隣に「Choose .gitignore ▼」もしくは「Choose a license template」ボタンが現れるのでそれをクリックする. 適切なものを選ぶ. 下部の「Commit directly to the main branch.」にチェックが入っていることを確認(入っていなければチェックを入れる)し,緑色の「Commit new file」をクリックする. リモートリポジトリ更新の反映 上記手順で行われたリモートリポジトリの変更は,ローカルリポジトリには反映されていない.以下のコマンドを実行することで反映させることができる: git pull プッシュ 以下のコマンドを実行する: $ git push -u origin main -u origin mainなるものがくっついているが,これはoriginという名前がついたリモートリポジトリのmainブランチにpushするという意味で,-uオプションはこれを(上流ブランチとして)設定するという意味である. 細かい意味はともかく,このオプションにより次回以降のプッシュではこの部分は省略してgit pushのみでプッシュできるようになる. ここでは,LaTeXで作成されたPDFとそのソースをまとめて「LaTeX文書」と呼ぶこととする. ↩ GUIベースでやるならそもそもWSLを導入する必要もない.しかし,個人的にはCUIベースの方が使いやすいであろうと思うのでGUIベースでの運用法は紹介しない. ↩ 各プラットフォームにはそれぞれ特色がある.本記事では紹介しないが,目的によっては違うプラットフォームを利用するのが適切である場合もある. ↩ なお,ここの「$」はコンソール上の入力を表す記号であり,実際に入力するわけではない. ↩ 基本的に,与える権限は必要最小限にしておくべきである.「とりあえずこの辺りをまとめて許可しておけばいいか」という運用は実は望ましくない. ↩ ブランチについては本記事では省略する.ここではおまじないと思ってよい. ↩
- 投稿日:2021-08-15T04:48:55+09:00
2021年githubにHTTPSアクセスで拒否される場合
何が起こったか どうやらgithubのログインID/PWでのアクセスをセキュリティが低いとして無効化されてしまったようです。 その際のメッセージがこちら remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: unable to access 'https://github.com/repo': The requested URL returned error: 403 対応 対応方法は書いてあるとおり、https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ にアクセスして設定したトークンを取得するだけです。 詳細はこちら 一応転記しておきます。 まだ検証していない場合はメールアドレスを検証します。 任意のページの右上で、プロフィール画像をクリックし、続いてSettings(設定)をクリックしてください。 ユーザバーの [Settings(設定)] アイコン 左サイドバーで [Developer settings] をクリックします。 開発者設定 左のサイドバーでPersonal access tokens(個人アクセストークン)をクリックしてください。 個人アクセストークン [Generate new token] をクリックします。 [Generate new token] ボタン トークンにわかりやすい名前を付けます。 トークンの説明フィールド このトークンに付与するスコープ、すなわち権限を選択します。 トークンを使用してコマンドラインからリポジトリにアクセスするには、[repo] を選択します。 トークンスコープの選択 [Generate token] をクリックします。 [Generate token] ボタン をクリックしてトークンをクリップボードにコピーします。 セキュリティ上の理由から、ページから移動した後は、トークンを再度表示することはできません。 新しく作成されたトークン 警告: トークンはパスワードのように扱い、秘密にしてください。 API を操作する場合は、トークンをプログラムにハードコーディングするのではなく、環境変数として使用してください。 SAML SSO を使用する Organization への認証にトークンを使用するには、Organization への SAML シングルサインオンに使用できるようトークンを認証します。 そして通常通りgit cloneをHTTPSで行いパスワードのフェーズでトークンを入力するだけです。 毎回、入力が必要になるのが嫌だ!と思う人もいると思うのでそういう人は git https credential helper でググると幸せになれると思います。
- 投稿日:2021-08-15T04:48:55+09:00
[2021年]githubにHTTPSアクセスで拒否される場合
何が起こったか どうやらgithubのログインID/PWでのアクセスをセキュリティが低いとして無効化されてしまったようです。 その際のメッセージがこちら remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information. fatal: unable to access 'https://github.com/repo': The requested URL returned error: 403 対応 対応方法は書いてあるとおり、https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ にアクセスして設定したトークンを取得するだけです。 詳細はこちら 一応転記しておきます。 まだ検証していない場合はメールアドレスを検証します。 任意のページの右上で、プロフィール画像をクリックし、続いてSettings(設定)をクリックしてください。 ユーザバーの [Settings(設定)] アイコン 左サイドバーで [Developer settings] をクリックします。 開発者設定 左のサイドバーでPersonal access tokens(個人アクセストークン)をクリックしてください。 個人アクセストークン [Generate new token] をクリックします。 [Generate new token] ボタン トークンにわかりやすい名前を付けます。 トークンの説明フィールド このトークンに付与するスコープ、すなわち権限を選択します。 トークンを使用してコマンドラインからリポジトリにアクセスするには、[repo] を選択します。 トークンスコープの選択 [Generate token] をクリックします。 [Generate token] ボタン をクリックしてトークンをクリップボードにコピーします。 セキュリティ上の理由から、ページから移動した後は、トークンを再度表示することはできません。 新しく作成されたトークン 警告: トークンはパスワードのように扱い、秘密にしてください。 API を操作する場合は、トークンをプログラムにハードコーディングするのではなく、環境変数として使用してください。 SAML SSO を使用する Organization への認証にトークンを使用するには、Organization への SAML シングルサインオンに使用できるようトークンを認証します。 そして通常通りgit cloneをHTTPSで行いパスワードのフェーズでトークンを入力するだけです。 毎回、入力が必要になるのが嫌だ!と思う人もいると思うのでそういう人は git https credential helper でググると幸せになれると思います。 まぁぶっちゃけ git config --global credential.helper store とか打っておけば大概なんとかなりますがセキュリティとか気になる人は自分で調べてください。