- 投稿日:2021-08-27T22:10:48+09:00
Gitでよく使うコマンドまとめ
はじめに このページでは、Gitを始める際のrepositoryの作成や使用していく上で便利なコマンドを備忘録的に記録しています。なお、編集者の環境はmacOS Mojaveです。 Gitのセットアップ githubで新しいrepositoryを作ってからローカルにクローンしてプッシュするまで。 optionalと書いてある箇所はしなくてもOK repositoryの作成 1.右上のプラスマークをクリックし、"New repository"を選択 2.Ownerを確認し、Repository nameを入力する 3.(optional)Descriptionを記入 4.visibilityを選択 Public:誰でもこのrepository内のcodeを読むことが可能 Private:誰がこのrepositoryを見れるかを指定可能。 5.(optional)必要なファイル(READMEなど)があれば選択 6."Create repository"をクリック SSHの設定をする 次のステップでローカルにrepositoryをcloneしますが、そのために必要な準備。以前はパスワード認証で簡単だったんですが、2021/8/13からPersonal access tokenなるものが必要になったらしいです。参考にした記事→GitHubでhttpsのパスワード認証が廃止された。Please use a personal access token instead.ここでは、以前から使用されているSSH接続を行うための設定を行います。 1.ローカルの環境で、以下のコマンドを実行し、SSH keyがあるかを確認する ls -al ~/.ssh 以前作ったものを使用したい場合はそのファイル名をコピー。大抵の場合はid_rsa.pubのように後ろにpubとついている。ただし、その鍵を作った際のパスワードを覚えておく必要がある。 2.SSH keyがない場合、または新規に作成する場合はこちらの記事を参考にして作成してください。 SSH接続の手順 作成したファイルのファイル名とパスワードを記録 3.以下のコマンドでファイル内の鍵をクリップボードにコピー pbcopy < ~/.ssh/XXX.pub #XXXはファイル名 4.gitのweb pageに戻り、アカウントのロゴ(右上)をクリックし、"Settings"を選択 5.左のメニューリストから"SSH and GPG keys"を選択 6.SSH keys の項目に"New SSH key"というボタンを押し、TitleとKeyを入力 TitleはMac Bookなど自身がわかるような名前を設定する Keyの欄には3でコピーしたものを貼り付ける 7."Add SSH key"を押して完了 cloneする 1.cloneしたいrepositoryのgitのページにいき、"Code ▽"をクリックし、Cloneの項目にあるSSHを選択。そこに表示されるgit@から始まる文字列をコピーする 2.ローカルのターミナルで作業directoryに移動し、以下を実行し、設定したパスワードを入力 git clone XXX #XXXは1でコピーしてきた、git@ から始まる文字列 参考文献 GitHub でリポジトリを作成・削除する方法 Connecting to GitHub with SSG Git tag tagとは特定のcommitに対してつけることができ、バージョン管理はもちろんだが、branchを操作することなく、過去のバージョンから編集することが可能になる。 tagの作成 tagはcommitに対してつけられるものなので、事前にcommitしておくと良い。しない場合は最後のcommitに対してtagがつけられる。 git tag -a <versionName> -m "<comment>" tagの確認 git tag 以前のタグに戻す git checkout /refs/tags/<tag name> 参考文献 git tagの使い方まとめ branch ローカルブランチ名を変更する 以下のコマンドを変更したいブランチにcheckoutした後で行う。 git branch -m <new branch name> ローカルブランチの削除 #すでにmergeしたブランチを消す場合 git branch -d <branch name> #mergeは完了してないが、不必要なので消したい場合 git branch -D <branch name> diffを取る 基本的な使い方は以下に示すように にcommit番号やbranch名を入れる。 git diff <before> <after> mergeする codeの修正が終わったものは分岐元のbranchにmergeする。 参考文献 git mergeを使ってブランチをマージする方法 ブランチ切って更新してマージするまでの流れ
- 投稿日:2021-08-27T21:06:27+09:00
Visual Studio CodeでGit Push時の認証ができなくなった
VC Codeでgit push時に認証できなくなった VC Codeでアカウントを切り替えて、git pushをしようと思い下記の画面でパスワードを入れると 下記のエラーが出て困りました Support for password authentication was removed on August 13, 2021. Please use a personal access token instead. どうやら、ブラウザのGitHubのページからトークンを生成しなければならないようです こちらの真ん中あたり 備忘録のため手順をまとめました GitHubのページをブラウザで開いて、settingsを選択 Developer settingsを選択 トークンを設定する 任意のトーク名を入力 トークンの有効期限を選択 下記にチェックを入れる repo admin:repo_hock delete_repo Generate Tokenボタンを押下 次の画面でトークンが発行されるのでコピーする VS Codeのパスワード入力で、トークンを貼り付けて認証する
- 投稿日:2021-08-27T17:58:46+09:00
giboを使用して.gitignoreを作成したのに反映されなかった話
結論 PowerShell gibo dump <使用している言語やプラットフォーム> | Out-File .gitignore -Encoding UTF8 .gitignoreの文字コードをUTF-8にすることで解決。 やったこと PyCharmでPythonを弄っているのでpythonとJetBrainsを指定している。 giboで.gitignoreを作成 Terminal gibo dump python JetBrains >> .gitignore git git status --ignored --略 Ignored files: (use "git add -f <file>..." to include in what will be committed) .idea/workspace.xml 無視するファイルが足りてない。1 キャッシュの削除2 Terminal git rm -r --cached . fatal: pathspec '.' did not match any files 対象のファイルが存在しないと怒られる。git addしてないので当然対象となるようなファイルは無い。 キャッシュが存在すると.gitignoreでは無視しなくなるが今回は当てはまらなかった。 ワイルドカードの指定がうまくできていなかったのかとしばらくrm -r --cachedを試す。 .config\git\ignoreを設定 Terminal gibo dump python JetBrains >> ignore git git status --ignored --略 Ignored files: (use "git add -f <file>..." to include in what will be committed) .idea/workspace.xml __pycache__/ venv/ リポジトリ全体で共有されるgitignoreを設定したらとりあえず出来た。なんか気に食わないので削除して検索を続ける。 文字コードによって認識されないらしい どうやらPowerShellでリダイレクトして作成したテキストファイルは文字コードがUnicode(UTF-16LE)になるらしく、gitが認識してくれなかった模様。3 Terminal git git status --ignored --略 Ignored files: (use "git add -f <file>..." to include in what will be committed) .idea/workspace.xml __pycache__/ venv/ 文字コードをUTF-8にしたところ認識された。 いっぺんに済ませたい gibo dump python JetBrains >> .gitignoreって入力してからテキストエディタ開いてUTF-8に変更してって作業になる。つらい。 IDEなら文字コードを変換できることに今更気が付いた。もっとつらい。 Terminal gibo dump python JetBrains | Out-File .gitignore -Encoding UTF8 git git status --ignored --略 Ignored files: (use "git add -f <file>..." to include in what will be committed) .idea/workspace.xml __pycache__/ venv/ Out-Fileコマンドを使用して文字コードをUTF-8に指定する。 giboの使い方 コードを落としてpath通せばいいというざっくりとした認識。 無視されているのはIDEが初期設定で指定しているもの。__pycache__やvenvディレクトリも無視されるはずだった。 ↩ https://qiita.com/fuwamaki/items/3ed021163e50beab7154 ↩ https://qiita.com/ogsoon/items/a2325f44f558c4c4aceb ここを見ればこの記事なんていらない。先にこっちを見つけていればこの記事を書くこともなかった。 ↩
- 投稿日:2021-08-27T16:39:28+09:00
Git/GitHub入門(2): 基本コマンド
この記事ではGitで使用される基本のコマンドを紹介します。 本稿は以下の書籍を参考にしています。 https://www.amazon.co.jp/dp/429500524X/ 参考までに書籍内で使用されている実行環境をここに挙げておきます。 OS : Windows, macOS CUI : Git Bash Git : version 2.19.0 Gitの基本コマンド リポジトリの作成 git init ローカルリポジトリを作成する コミットの作成 git add ステージングエリアに変更を登録する git commit コミットを作成する git rm Git管理下のファイルやディレクトリを削除する ブランチの作成 git branch ブランチを作成する クローンの作成 git clone クローンを作成する 状態の復元 git checkout ワークツリーの変更を取り消す git reset ステージングエリアに追加した変更をワークツリーへ戻す 状態の確認 git status ローカルリポジトリの状態を確認する git diff 各エリアの差分を確認する git log コミットの履歴を確認する git remote リモートリポジトリの状態を確認する git config Gitの設定を確認する その他のコマンド pwd カレントディレクトリを確認する mkdir カレントディレクトリに新規ディレクトリを追加する cd カレントディレクトリを移動させる おわり 今回はこれで以上です。これからも学習内容を順次投稿していきます。
- 投稿日:2021-08-27T15:23:34+09:00
学習メモ(2021/8/27)
コマンドライン ファイルとディレクトリ削除 確認なしで削除可能 rm -rf ディレクトリ名 Git フォーク 他人のリポジトリを自分のアカウントにコピーする時に用いる ブランチを作成して移動する git checkout -b ブランチ名 ブランチをリモートにpush HEADとすることでブランチ名を打たなくて良くなる git push orgin HEAD originとは git push origin masterのoriginって何なの?って思っていましたが、ローカルでのリモートリポジトリの呼び方とのこと。デフォルトでoriginという名前になっているけど、repoAみたいに自由に舐めをつけることも可能。
- 投稿日:2021-08-27T15:21:26+09:00
Git/GitHub入門(1):Gitの基本的な概念と仕組み
この記事は以下の書籍を参考にしています。 Gitとは何か Gitとは2005年にLinuxカーネルのソースコード管理システムとして開発されました。 ユーザーはGitが持つ「バージョン管理システム」を利用することでスムーズな共同作業を実現することができます。 バージョン管理システム ファイルを共同で管理・編集する際、同じファイル名が誤って作成されてしまったり、編集者がうっかり削除や上書きをしてしまう危険性があります。 そのようなミスを防ぐために、バージョン管理システムは一貫したルールに基づいてファイルの最新情報や変更履歴を分かりやすく保つ助けをしてくれます。 Gitの基本用語 次はGitにおいて使用される基本的な用語とその概要を紹介していきます。 コミット Gitユーザーが管理対象となっている全ファイルの記録を任意のタイミングで保存することを「コミット」といい、また、当の記録物もコミットと呼びます。 ローカルリポジトリ、リモートリポジトリ コミットをためていく場所を「リポジトリ」と呼びます。 すでにGitで管理されているプロジェクトに参加する場合はリポジトリをコピ(または「クローン」)しますが、新規でプロジェクトを立ち上げる場合は新しくリポジトリを作成します。 自分のPC内にあるものを「ローカルリポジトリ」、ネットワーク上にあるものを「リモートリポジトリ」といいます。 ワークツリー、ステージングエリア、Gitディレクトリ ローカルリポジトリにおける操作は「ワークツリー」、「ステージングエリア」、「Gitディレクトリ」の三つの場所で行われます。 ワークツリー内で編集を行い、コミットしたいファイルを一度ステージングエリアに登録します。コミットされるとGitディレクトリに格納され、それ以降は変更不可能な記録として残ります。 また、ファイルの変更されていない状態を「unmodified」といい、フォルダの場合は「untracked」といいます。変更されたファイルは「modified」となります。ステージングエリアに移動したファイルは「staged」となり、そこからGitディレクトリに格納された場合は再び「unmodified」となります。 ブランチ Gitには共同作業を進めやすくするための「ブランチ」という機能があります。 ここでは詳細を省きますが、ブランチ機能によってユーザーはデータを内容ごとに分けて管理したり、テストをする際に本番環境とは別にテスト環境で別々のバージョンを使うことができるようになります。 枝分かれさせたブランチは後で統合(「マージ」)することもできます。 コンフリクト(競合) 複数人が同時に作業を進めていると、誰かが作ったファイルが別の誰かによって上書きされてしまうということが起こりえます。「コンフリクト」機能はこうした衝突を検知してユーザーに報告します。 終わりに 今回は以上です。 これからもこのようにGitの基礎知識について記事を投稿していきます。
- 投稿日:2021-08-27T15:00:27+09:00
GitリポジトリをGitHubに移行する手順(Gitコマンド編)
1.移行元のリポジトリURLをコピーする 移行元リポジトリにある.gitで終わるURLをコピーします。 コピーしたURLはSOURCE_REPOSITORY_URLと呼びます。 2.移行先のリポジトリURLをコピーする 移行先のGitHubリポジトリを作成します。 .gitで終わるURLをコピーしておきます。コピーしたURLはDESTINATION_REPOSITORY_URLと呼びます。 3.複製元リポジトリのベアクローンを作成する Gitコマンドで複製元のリポジトリをクローンします。 このローカルリポジトリは移行後に削除するので、保存場所を気にする必要はありません。 git clone --bare <SOURCE_REPOSITORY_URL> --bareオプションを付けると、ソースコードがなく、更新履歴やブランチ状態などを保持しているリポジトリを作成できるようです(--mirrorでもほぼ同じ?)。 新規ターミナルで実行すると、ルートディレクトリ(~)に<user-name>/<SOURCE_REPOSITORY_URL>が作成されます。 XXX@XXX.git.backlog.jp:/project-name/old-repository.gitならold-repository.gitのように作成されます。 Resolving deltas: 100% (10000/10000), done.のようになれば完了です。 このようなファイル構成になっています。 old-repository.git/ ├── HEAD ├── config ├── description ├── hooks/ ├── info/ ├── objects/ ├── packed-refs └── refs/ 4.ミラーリポジトリに移動する cd <REPOSITORY> <REPOSITORY>はgit clone --bareで作成される.gitフォルダです。 git clone --mirror XXX@XXX.git.backlog.jp:/project-name/old-repository.git とした場合は、cd old-repository.gitとなります。 5.複製元リポジトリを複製先のリポジトリにミラープッシュする 複製先のURL(<DESTINATION_REPOSITORY_URL>)にローカルリポジトリをプッシュします。 git push --mirror <DESTINATION_REPOSITORY_URL> remote: Resolving deltas: 100% (0000/10000), done.のようになれば完了です。 コミット履歴やブランチ・タグ情報も複製できているのが確認できると思います。 注意点としては、複製元リポジトリがmasterブランチを使っていると、複製先でデフォルトブランチがmasterにならない現状が起きました(アルファベット順で最初のブランチ名が初期設定されている?)。 移行後にGitHubで、Settings→Branchesと進んで「Default branch」をmasterに変更して解消できました。 6.一時ローカルリポジトリを削除する リポジトリは複製できたので、一時的にクローンしたリポジトリを削除します。 cd .. rm -rf <REPOSITORY> お疲れ様でした。これで移行は完了です! 参考情報 リポジトリを複製する - GitHub Docs Gitリポジトリを別のGitサーバーに移行する - Qiita