- 投稿日:2021-06-15T11:06:26+09:00
Github CLIを使って既存のリポジトリをGithubにコピーする
課題 社内サーバーのGitBucketに格納されているリポジトリをGithubに移行したかったが、 数が膨大で手作業でやるのは大変だった 解決方法 社内サーバーから、GithubのCLIを使用することで対応した 前提 GithubのCLIをインストールし、認証を済ましていること https://github.com/cli/cli 手順 Githubのリモートリポジトリを作成 repo_nameという名前のプライベートリポジトリを作成 gh repo create repo_name -h --private 既存のリポジトリのremoteリポジトリに先程作成したGithubを追加 git remote add torikomi_saki https://github.com/repo_name.git 全てのブランチを取り込み先(github)にプッシュ git push --all torikomi_saki
- 投稿日:2021-06-15T10:48:55+09:00
Gitの設定編(一) git configの概要と使い方
環境と前提条件 【動作環境】 OS: Windows 10 Git: git version 2.30.1.windows.1 コマンドLineツール: GitBash mintty 3.4.4 【前提条件】 Gitが既にシステムにインストール済 Gitのインストール先: C:\Program Files\Git\ Windowsのユーザフォルダ: C:\Users\hayashi.hirohumi\ ローカル作業フォルダ: C:\gittest-repo\ 概要 【最初のGitの構成】 Gitがシステムにインストールした直後、まずはgit configで初期設定を行う。該当作業はしなくても使えるかもしれないが、Gitをもっと上手に使いこなすため、ちょっとカスタマイズしたほうがよいでしょう。該当作業は一度だけ行えばずっと有効である。すなわち、面倒な作業はただ1回だけ行えば、その後のGit人生は楽になる。更に、Gitをアップグレードしても設定は引き継がれるので、再設定は不要である。 Gitの設定を表示・変更する 【書式1】Gitの設定一覧を表示します。 $ git config [--system|--global|--local|-f <config_file> ] [--show-origin] -l 【Optionの詳細】 最初のオプション[--system | --global | --local | -f ]は、システム(OS)、ユーザ、あるいはリポジトリの単位で設定の有効範囲を指定します。 # ユーザ範囲の設定一覧を表示する。 # -lは--listの省略形 $ git config --global -l # 実行結果 http.sslverify=false user.name=hayashi.hirohumi user.email=hayashi.hirohumi@xxxx.com core.autocrlf=false credential.helper=manager-core option 有効範囲 デフォルト格納場所 --system システムを使用するすべてのユーザに有効な設定。 C:/Program Files/Git/etc/gitconfig --global OSユーザ固有の設定。 C:/Users/hayashi.hirohumi/.gitconfig --local リポジトリ固有の設定。( デフォルト)。 .git/config ※リポジトリのフォルダ直下に隠しフォルダ.gitが存在している [--show-origin]はどの設定がどのファイルで行われているのか表示する。 # 作業フォルダ「C:\gittest-repo\」の直下に、下記のコマンドを実行すると、 # すべて有効範囲の設定一覧が表示されます。 $ git config --show-origin -l # 実行結果 file:C:/Program Files/Git/etc/gitconfig diff.astextplain.textconv=astextplain #...省略(※systemの設定一覧) file:C:/Users/hayashi.hirohumi/.gitconfig http.sslverify=false file:C:/Users/hayashi.hirohumi/.gitconfig user.name=hayashi.hirohumi #...省略(※globalの設定一覧) file:.git/config core.repositoryformatversion=0 file:.git/config submodule.active=. #...省略(※localの設定一覧) 【書式2】Gitの設定を追加編集します。 $ git config [--system|--global|--local|-f <config_file> ] <name> <value> 【Optionの詳細】 option 説明 < name > 設定名を指定する。 < value > 設定値を指定する。設定値がspaceを含む場合は「"」で囲んで指定する。 # 設定を追加する例 # ユーザemailの設定が存在してない場合、下記のコマンドで、 # カレントユーザの設定にユーザのemailを追加する。 # 既に存在する場合、更新となります。 $ git config --global user.email hayashi.hirohumi@xxxx.com # 追加完了後、--listオプションで確認する $ git config --global --list # 実行結果 #...省略 user.email=hayashi.hirohumi@xxxx.com #...省略 【書式3】Gitの設定を削除します。 $ git config [--system|--global|--local|-f <config_file>] [--unset|--unset-all|--remove-section] <name>[<value>] 【Optionの詳細】 option 説明 --unset 設定値を1つだけ削除する際に使用する。※設定名に対して複数の設定値がある場合は、value引数と組み合わせて指定する。 --unset-all 設定名に対して複数の設定値がある場合に、まとめて削除する。 --remove-section セクションごと削除する。例:userセクションuser.name=hayashi.hirohumiuser.email=hayashi.hirohumi@xxx.com # 設定を削除する例 # カレントユーザの設定にユーザのemailを削除する。 $ git config --global --unset user.email # カレントユーザの設定にuserセクションを削除する。 $ git config --global --remove-section user 【書式4】Gitの設定をエディターで編集します。 # インストール時、設定されているデフォルトエディターで設定ファイルを開く。 $ git config [--system|--global] [-f <config_file>] -e(--edit) 使い方 有効範囲 前述にもざっくり説明したが、Gitの設定には3つの有効範囲が存在します。 同じ設定名が複数の有効範囲に存在する場合は、下記の順で最後に設定されている値が使用されます。 --system OS範囲内有効となる。言い換えると、OSのすべてのユーザに有効な設定である。 --global 現在ログインしているユーザ固有の設定である。 --local リポジトリ固有の設定である。リポジトリ内のディレクトリで--systemおよび--globalのいずれも指定しない場合に設定される。 なお、Gitの設定はローカルのみ有効であるので、リモートリポジトリには同期されることはない。 設定名 Git configコマンドは設定名と設定値を指定することが必要である。設定名は、セクションとキーで構成されている。 それぞれを「.」で結合した文字列が設定名となる。 下記の例で説明します。 # nameとemailはキーで、両方ともuserセクションに所属している。 $ git config user.name "hayashi.hirohumi" $ git config user.email "hayashi.hirohumi@xxx.com" # 上記の【書式3】によるとセクション毎に削除できる $ git config --remove-section user 終わりに 今回 git config コマンドについての概要を説明しましたが、次回の「Gitの設定編(二) git configでの高頻度設定」でよく使う設定を詳しく説明しようと思います。