「 👆 shogi-server の .gitリポジトリって どうやってクローンすんだぜ?」
URL git://git.osdn.net/gitroot/shogi-server/shogi-server.git
「 👆 なんとか .git ファイルのURLが書いてくれてあるだろ」
$ git clone git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git
「 👆 なんで山岡さん 古いとこから ブランチ切ってるんだぜ。
よく分からんが わたしもブランチ切ってみたろ」
「 👆 まず ローカルPC に適当なフォルダーを作っておくぜ」
「 👆 Visual Studio Code でカレント・ディレクトリを移動」
「 👆 Git はもうインストールしてあるんで、さっきのコマンドを打鍵」
code .
「 👆 code .
と打鍵すれば カレント・ディレクトリで Visual Studio Code を開くんで」
「 それ どうやって Git Hub へリポジトリをアップロードすんだぜ?」
「 👆 GitHub Desktop から Add local repository する」
「 👆 じゃあ Create a new repository する」
「 GitHub にレポジトリを作ってから、ローカル・レポジトリを作るべきなのでは?」
「 👆 じゃあ さっき作ったローカル リポジトリはリネーム」
「 👆 Git Hub の方から GitHub Desktop を呼び出すぜ」
「 👆 Git Hub のレポジトリを、ローカルPCにクローンするぜ」
「 👆 ローカルPCに、 Git Hub のレポジトリのクローンができたぜ」
「 👆 しかし、ローカルのレポジトリに、別のレポジトリを クローンできるのか 疑問だぜ」
「 👆 shogi-server の中に shogi-server ができてる。意味ない」
「 1つ上のディレクトリで git clone
したら どうなるの?」
「 👆 空じゃないディレクトリーには クローンできないんだって」
「 じゃあ shogi-server をローカルにクローンしたレポジトリを GitHub にアップロードしろだぜ」
「 👆 GitHub に shogi-server
という名前で リポジトリを作ると、 山岡さんのリポジトリをフォークしたものだと認知されてしまう
呪いにかかったぜ」
「 キャッシュかどこかに 記憶されてしまったのかも 知れないわねえ」
「 じゃあリポジトリを shogi-server-k
という名前にしろだぜ。 k は Kifuwarabe の頭文字だぜ」
「 kanouさんが言うには リモートリポジトリは 変えれるそうよ?」
「 👆 再びクローン。 C:\shogi-server\shogi-server
みたいに 親子フォルダーを作ってしまわないように注意だぜ」
「 👆 カレント・ディレクトリを ローカル・リポジトリに合わせて git remote
コマンドを打鍵したら origin
と出てきたが、
なんのことだか 分からないぜ」
「 👆 git remote -v
コマンドを打鍵したら GitHub じゃなくて sourceforge の方を向いているのが分かったぜ」
git remote add <shortname> <url>
「 👆 上記のコマンドで、 リモート・リポジトリを追加できるそうだぜ」
Input:
git remote add shogi-server-k https://github.com/muzudho/shogi-server-k
Output:
origin git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git (fetch)
origin git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git (push)
shogi-server-k https://github.com/muzudho/shogi-server-k (fetch)
shogi-server-k https://github.com/muzudho/shogi-server-k (push)
「 👆 shogi-server
はリダイレクトされてしまう呪いにかかっているので、 存在しない shogi-server-k
に向けてみるぜ」
# いままでのまとめ
cd C:\GitHub
git clone git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git
cd shogi-server
git remote
git remote -v
git remote add shogi-server-k https://github.com/muzudho/shogi-server-k
Input:
git remote show origin
Output:
* remote origin
Fetch URL: git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git
Push URL: git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git
HEAD branch: master
Remote branches:
201312-usiToCsa tracked
201512-timeclock tracked
201604-Fischer tracked
copy tracked
master tracked
wdoor-stable tracked
Local branch configured for 'git pull':
master merges with remote master
Local ref configured for 'git push':
master pushes to master (up to date)
Input:
C:\GitHub\shogi-server>git remote show shogi-server-k
Output:
Logon failed, use ctrl+c to cancel basic credential prompt.
「 👆 はて、 GitHubへのログイン・パスワードを求められたから キャンセルしたぜ。
さきに リモート・リポジトリを作っておいた方がいいのかだぜ?」
Input:
C:\GitHub\shogi-server>git remote show shogi-server-k
Output:
* remote shogi-server-k
Fetch URL: https://github.com/muzudho/shogi-server-k
Push URL: https://github.com/muzudho/shogi-server-k
HEAD branch: main
Remote branch:
main new (next fetch will store in remotes/shogi-server-k)
「 👆 さきに リモート・リポジトリを作っておくと、何かメッセージが出てきたぜ」
「 👆 Add repositiory すると、ローカルPCの shogi-server
フィルダーを、 リモート・リポジトリ扱い できるのかだぜ?」
「 お父んは TadaoYamaoka/shogi-server をフォークするのを止めたらどうだぜ?」
「 これで リダイレクトの 呪い は払われたんじゃないの?」
C:\GitHub\shogi-server>git remote remove shogi-server-k
C:\GitHub\shogi-server>git remote -v
origin git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git (fetch)
origin git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git (push)
upstream https://github.com/TadaoYamaoka/shogi-server.git (fetch)
upstream https://github.com/TadaoYamaoka/shogi-server.git (push)
「 なぜか TadaoYamaoka/shogi-server.git
がアップストリーム(頭の上)に居るぜ」
# いちから やりなおし
cd C:\GitHub
git clone git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git
cd shogi-server
git remote
git remote -v
git remote add shogi-server-k https://github.com/muzudho/shogi-server-k
「 GitHub上に それをアップロードできないのかだぜ?」
「 GitHub上に リポジトリを作っておくのが先じゃないか?」
「 あれっ? Import repositiory
というメニューがあるぜ?」
「 URL入れる欄があるぜ? ダイゴ モリワキさんの shogi-server の git のURL入れたら どうなんの?」
git remote add shogi-server https://github.com/muzudho/shogi-server
「 👆 ローカルPCのレポジトリに リモート・レポジトリ を追加登録したろ」
Input:
git remote -v
Output:
origin git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git (fetch)
origin git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git (push)
shogi-server https://github.com/muzudho/shogi-server (fetch)
shogi-server https://github.com/muzudho/shogi-server (push)
「 👆 これを gitの更新履歴付きで GitHub にアップロードする方法が分からないのだった」
「 👆 おっ、 Add repository ボタンが効くぜ!」
「 GitHub Desktop に残っていた shogi-server-from-TadaoYamaokaレポジトリを右クリックして remove。
もう一度最初からやるぜ」
「 ローカルPCの C:\GitHub\shogi-server
の方をリネームしろだぜ」
「 👆 ローカルには、 shogi-server
と、 shogi-server-SOURCEFORGE
の2つができたぜ」
「 👆 特に master - slave はヨーロッパ・アメリカの歴史上の問題で 言葉遣いが変更されているぜ」
「 これ、 GitHub 固有の問題なのか、 Git 全般の問題なのか 分かんないんだよな」
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/muzudho/shogi-server.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main
「 👆 shogi-serverの自作発言すれば 乗っとれるが、これでは プルリクできない」
「 👆 New branch ボタンとか使う必要はあるかだぜ?」
「 👆 main ブランチは Sourceforge なんで パブリッシュ先にはなれないだろ」
「 ダイゴ モリワキさんに プルリクできないだろ。 細胞分裂してしまうぜ」
「 あっちにも shogi-server、 こっちにも shogi-server、 そっちにも shogi-server、 銀行のシステムみたいに権利者が濫立して
調整しない人たちが増えるぜ」
「 じゃあ 一本化できないんだったら shogi-server-k
にするかな」
「 👆 GitHub には、最初は shogi-server-k
リポジトリは 無いぜ」
「 👆 ローカルPCにも、 shogi-server
フォルダーも、 shogi-server-k
フォルダーも 無いぜ」
Input:
cd C:\GitHub
git clone git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git
Output:
Cloning into 'shogi-server'...
remote: Counting objects: 2584, done.
remote: Compressing objects: 100% (753/753), done.R
Receiving objects: 99% (2559/2584),sed 2584 (delta 1779)Receiving objects: 98% (2533/2584), 364.00 KiB | 622.00 KiB/s
Receiving objects: 100% (2584/2584), 572.86 KiB | 823.00 KiB/s, done.
Resolving deltas: 100% (1779/1779), done.
Input:
cd shogi-server
git remote
Output:
origin
Input:
git remote -v
Output:
origin git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git (fetch)
origin git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git (push)
「 👆 ここまでは Visual Studio Code でもできるんだが、ここから先が分からない」
「 👆 C:\GitHub\shogi-server\.git\logs\refs\heads
フォルダーにある master ファイルを、 main にリネームしろだぜ」
「 👆 C:\GitHub\shogi-server\.git\refs\heads
フォルダーにある master ファイルを、 main にリネームしろだぜ」
「 👆 C:\GitHub\shogi-server\.git\config
ファイルを開いて」
「 👆 2か所ある master
を main
に変えろだぜ」
「 👆 この状態で GitHub Desktop を開いても、 Publish branch
ボタンがグレーアウトしていて アップロードできないぜ」
「 👆 じゃあ 試しに kifuwarabe ブランチ作ってみようぜ?」
「 👆 そんなブランチ無いから 現在のブランチの名前を変えただけの新しいブランチを作るぞ、
みたいなことが書いてるぜ」
git://git.osdn.net/gitroot/shogi-server/shogi-server.git
C:\GitHub\shogi-server\.git\config
:
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main
「 👆 あれ? git://git.osdn.net/
じゃなくて git://git.sourceforge.jp/
になってる、何でだぜ?」
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/muzudho/shogi-server.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main
「 👆 まだ存在しない shogi-server のURLを指定したろ」
「 👆 main ブランチを乗っ取って publish branch したろ」
「 👆 パブリッシュするまえに、お前の新しくないから 最新版をフェッチしろだって。
存在しないURLに なんの最新版があるのか」
「 👆 525 のコミットをアップロードする前に 16 のアップデートを取り入れろ、と書いてあるが、
わたしは いったい 何とやりとりしているのか?」
「 きふわらべブランチを作ったのが敗着では? いちから やり直せだぜ」
「 👆 C:\GitHub\shogi-server\.git\HEAD
の中にも master
があったから main
に変えろだぜ」
「 👆 C:\GitHub\shogi-server\.git\packed-refs
の中にも master
があったから main
に変えろだぜ」
「 👆 C:\GitHub\shogi-server\.git\refs\remotes\origin\HEAD
の中にも master
があったから main
に変えろだぜ」
「 👆 C:\GitHub\shogi-server\.git\hooks\pre-rebase.sample
の中にも master
があったから main
に変えろだぜ」
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = git://git.sourceforge.jp/gitroot/shogi-server/shogi-server.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main
[remote "kifuwarabe"]
url = https://github.com/muzudho/shogi-server.git
fetch = +refs/heads/*:refs/remotes/kifuwarabe/*
[branch "kifuwarabe"]
remote = kifuwarabe
merge = refs/heads/kifuwarabe
「 👆 認証を求められるぜ。
そして なぜか この認証を通れないぜ」
「 👆 今度は study-shogi-server
と混線してるぜ」
「 👆 16 commit ってのは こいつのことではあるな」
「 じゃあ study-shogi-server
レポジトリも削除したろ」
「 👆 GitHub にレポジトリ先に作ると .gitignoreファイルとか 更新されてて 降りてくるぜ!」
「 👆 何も commit しないように初期設定で 作ったろ」
Input:
git remote add shogi-server https://github.com/muzudho/shogi-server
git remote -v
Output:
origin https://github.com/muzudho/shogi-server.git (fetch)
origin https://github.com/muzudho/shogi-server.git (push)
shogi-server https://github.com/muzudho/shogi-server (fetch)
shogi-server https://github.com/muzudho/shogi-server (push)
「 👆 そういうえば リモート リポジトリの登録が消えていたぜ」
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://github.com/muzudho/shogi-server.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "main"]
remote = origin
merge = refs/heads/main
[remote "shogi-server"]
url = https://github.com/muzudho/shogi-server
fetch = +refs/heads/*:refs/remotes/shogi-server/*
「 👆 そのあと ガチャガチャ していたら とりあえず できた」
「 Git Hub に、コミット数 0 の shogi-server
リポジトリを先に作っておくことは必要だぜ。
kifuwarabe ブランチは作らなかった。
origin の URL は https://github.com/muzudho/shogi-server.git
とかに変えろだぜ。
master というファイルが2個あるので main にリネームしろだぜ。
テキストファイルのなかに master がいくつかあるが、何も考えず grep で全文置換しろだぜ」
Crieitは個人で開発中です。
興味がある方は是非記事の投稿をお願いします! どんな軽い内容でも嬉しいです。
なぜCrieitを作ろうと思ったか
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください!