ローカルで作成したフォルダを後からGitおよびGithubに登録する(Windows)
- 既にPC内に存在しているフォルダを、既に存在している中央リポジトリ(githubサーバー)を、SourceTreeで紐づける場合の手順です
- 【注意】かなり独自のやり方で無理矢理感があるので正しい公式なやり方ではないと思う
手順
【1】 SourceTreeを起動します
【2】 画面上部の「ファイル」メニューの「新規/クローンを作成する」を選択

【4】「Create a repository」の画面で以下の内容を入力して、「作成」ボタンをクリックします
- 保存先のパス:既にPC内に存在しているフォルダを選択
- 名前:↑を入力すると自動で入ります
- プルダウンはGitを選択
- 次のアカウントでリポジトリを作成はチェックを入れない

【6】 未コミットのファイルやフォルダがある場合はここでPushはせずにコミットだけしておく。するとmasterにコミットされた状態となる
【9】 次に表示されたモーダル画面の左下の「追加」ボタンを押下します

【10】 次に表示されたリモートの詳細設定画面で以下の内容を入力して、「OK」ボタンをクリックします

- 必要な情報
- リモート名:origin
- デフォルトリモートのチェックをON
- URL/パス:既に存在している中央リポジトリ(githubサーバー)のURL(.gitまでのパス)
- 外部サービスとの拡張統合オプション
- Remote Account
- Generic Accountを選択
- Legacy Account Settings
- ホストタイプ:Github
- ルートURL:そのままでOK
- ユーザ名:自分のGithubユーザ名
- Remote Account
【11】 元のリポジトリ設定のモーダル画面も、「OK」ボタンを押下して閉じます

【12】 左ペインのリモート>originを右クリックして、「originからフェッチ」を選択

【13】 左ペインのリモート>origin>mainを右クリックして、「origin/mainをチェックアウト」を選択

【14】 チェックアウトのモーダル画面で、以下の入力値を確認(基本デフォルトのままでいいはず)してOKを選択する

- チェックアウトするリモートブランチ:
- 既に存在している中央リポジトリ(githubサーバー)側のチェックアウトしたいブランチを選択
- mainとか、masterとか、develop
- 既に存在している中央リポジトリ(githubサーバー)側のチェックアウトしたいブランチを選択
- 新ブランチ名
- ローカル側のブランチ名
- 原則リモートと同じでOK
- ローカル側のブランチ名
- ローカルブランチでリモートブランチを追跡するのチェックはON
【15】カレントをmainブランチ(リモートから落としてきたブランチ)にした状態で、右上のターミナルを開く。

【16】 以下のコマンドを手動で実行
実行前に3wayマージできるツールを「ツール>オプション>Diffタブ」で設定しておくとよい
例:masterブランチを現在のブランチにマージする場合
git merge master --allow-unrelated-histories
あるいは、リモートのmasterをpullする場合
git pull origin master --allow-unrelated-histories
ここで以下のように競合する場合は、その後はGUI上でマージ操作をする
$ git merge master --allow-unrelated-histories
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
正しくマージされると以下のように、親の違うツリーが1つにマージされる
$ git merge master --allow-unrelated-histories
Merge made by the 'recursive' strategy.
sample.txt | 1 +
1 file changed, 1 insertion(+)
create mode 100644 sample.txt
【17】 あとは普通に使うだけ




