LoginSignup
2
3

More than 1 year has passed since last update.

【Xcode】XcodeでGit,GitHubの操作や連携で困ったら見る

Last updated at Posted at 2023-03-15

はじめに

XcodeでのGitHub連携(commitだったりPushだったり)で、困ったときに見るメモ

Git & GitHubとは

Gitでローカルリポジトリを管理
Git Hubでリモートリポジトリを管理

Git で使うコマンド

  • Gitで管理したいディレクトリに移動する。
  cd ~
  • ディレクトリ上にGitリポジトリを作成。(プロジェクト作るときに連携出来ているなら不要)
    ls -a でfinder上では見えなくても、ターミナル上ではgitリポジトリが作成されていることが分かる。
  git init
  • ステージングエリアにあるファイルを確認できる。
    (Gitレポジトリにコミットするファイルを置いておくためのエリア)
  git status
  • ステージングエリアに~を追加。(コミットできるようになる)
    (git add . でこのカレントディレクトリ内の全てを指定すればまとめてステージングエリアに追加できる。)
  git add ~ 
  • ステージングエリアにあるファイルをコミット(追加、変更をGitに登録)できる。
  git commit 
  git commit -m " コメント" で、どう変更したかわかるようにするとよい。
  • 誰がいつ、どのようなコミットをしたかを確認できる。(ハッシュもある。)
  git log 
  • ファイル名 git にコミットされているファイルと現在のコミット前のファイルとの比較を確認できる。
  git diff 
  • コミットを戻せる。どこまで戻すか、直前のコミットの場合はHEAD^を使用。
  git reset --soft 
  • 特定のコミットを取り消す
  git revert <commit>
  • git revert で初期commitを消してしまった場合
    まずは過去のコミット一覧を見る
    git reflog

そこからコミットを選択して復元する

    git reset --hard <コミット>
    例)git reset --hard HEAD@{2}

メモ

  • git 内のファイルが更新されている状態でまだコミットしていない場合、
    git status コマンドでまだコミットされていない、またはステージングエリアに追加されていないことを確認できる。

  • git diff ファイル名 で、git にコミットされているファイルと現在のコミット前のファイルとの比較を確認できる。
    ー がコミット済、
    + が現在のコミット前

GitHub操作

  • GitHub ホーム画面で右上の+矢印をクリックし、New repository を選択

    Repository name と Description を入力

    リポジトリを公開するか選択。(基本は公開でよい)

    Create で作成

  • ローカルの git リポジトリにインターネット上のどこかのリモートリポジトリを作成

    git remote add origin URL (origin はリモートの名前で理論上は何でもよい。)
  • ローカルリポジトリをリモートリポジトリにプッシュ(リモートとローカルリポジトリをリンク)
    Git Hub のアカウント名、Git Hub のトークンが必要。
    git push -u origin main   
  • InsightsのNetworkでリポジトリの進行状況を確認できる。

  • 現在のディレクトリ内の全てをステージングエリアから削除する。(r 再帰的に)

  git rm --cached -r .
  • https://github.com/github/gitignore

    GitHubチームが所有するリポジトリで、特定の言語でGitHubやその他のリモートリポジトリにアップロードしたくないようなファイルのテンプレートがあらかじめ組み込まれている。
    全て事前に作成されているので、全てコピーし、.gitignoreファイルに入れるだけでいい。

GitHub にある他の人が作ったアプリをクローン

GitHub 上にある他のプロジェクトをクローンできる

  git clone URL

clone で追加したものは Simulator 上で動作するが、実機でも操作したい場合以下を変更する

  • バンドル識別子
  • Teamの追加

Git でCLI操作からリモートリポジトリにプッシュ

ブランチ...1つのプロジェクトから分岐させることにより、プロジェクト本体に影響を与えずに開発を行える機能。

新しいブランチを作る。

git branch 新しいブランチ名

今あるブランチを確認する。

git branch

-が現在いるブランチ

ブランチを切り替えれる

git checkout ブランチ名 

ブランチをマージする。

git merge ブランチ名

リモートリポジトリにプッシュ

git remote add [追加するリモートリポジトリ名] [追加したいリポジトリ]

例:
git remote add origin http://xxxxxx.xxx/xxxx

分岐ブランチに行った変更をmainブランチに統合

git push -u origin main

リモートリポジトリを一覧表示

git remote -v

Git Hub でバージョンをコントロール

ローカルリポジトリでのCLI操作でのcommitは、Git Hub操作だけでも完結できる。

  • Git Hub で New repository を開く
  • repository 名を入れ、Add a README file にチェックを入れて作成。
  • repositoryができたら、Add file の Cleate new file でファイルを作成。
  • ファイル名、内容を記載したら下の Commit new file で main ブランチに直接コミットする。
  • Switch branches/tags で新しいブランチに名前を付ける。
  • Switch branches/tagsから直接ブランチを移動できる。
  • ファイル名を選択し、鉛筆マークからファイルを編集できる。
  • 編集後、Commit changes でファイルを更新できる。必ずcommit先を確認する。

Compare & pull request から2つのブランチをマージするプルリクストを作成する。

プルリクエストとは、自分の変更したコードをリポジトリに取り込んでもらえるよう依頼する機能のこと。

マージ…複数のものを1つにする。分岐したブランチを統合。

Xcodeでバージョンをコントロール

Create Git repository on my Mac にチェックを入れてプロジェクトを作成
左側タブのソースコントロールナビゲーターでcommitの場所を見ることができる。
最初のcommitが表示される。

最新の変更をcommit

  • 上にあるタブのソースコントロールからcommitを押すか、optionコマンドを使用すればいい。
  • 前回から変更されているところを比較できる。
  • 下の空白にcommitメッセージを入力できる。
  • commit ~ Filesでcommit できる。
  • masterブランチにcommitが追加されている。

上にあるタブのソースコントロールから Discard All Changes をすれば最後のcommitから全ての変更を破棄できる。

ブランチの追加

  • 作りたいタイミングのブランチを main ブランチのcommit で右クリックし、Branch from を選択するだけで、新しいブランチを作成できる。

ブランチの切り替え

  • 左側タブのソースコントロールナビゲーターで、切り替えたいブランチを右クリック。
  • Switch...(Checkout) でブランチを切り替えれる。

過去の変更を見たい場合

  • 見たい過去のcommitを右クリックし、Switch...(Checkout)を選択。
    以前のcommitをチェックアウトする際に、その違いを比較するために使用する。

Xcodeで作成したプロジェクトを Git Hub のリモートにプッシュする方法

  • XcodeのSettingsを開く
  • Accountsに移動し、Git Hub のアカウントを選択
  • Settingsから戻り、左側タブのソースコントロールナビゲーターで、mainにSwitch
  • メインリポジトリを右クリックし、New "プロジェクト名" remote... を選択
  • リポジトリ名と説明を入力。RemoteNameはoriginのままを推奨
  • create
  • リモートフォルダの中にoriginが作成される
  • originにはmainブランチがプッシュされている

XcodeでGit Hubにプッシュ後、コードに変更を加える場合

  • commit時に左下のPush to remote にチェックを入れ、どのリモートリポジトリにするか選択する
  • Pushせずにcommitする場合は、SourceControlタブのPushを使用する

Add a README でリモートリポジトリにローカルリポジトリにはないファイル(README)を追加できる。

ローカルリポジトリに変更を反映させるたり、リモートリポジトリと最新の状態を合わせるためには、Pullを使用する。

  • まずは、ローカルリポジトリの変更分をローカル内でcommitしておく。
  • その後に、sourceControllタブでPullを使用する。
  • リモートリポジトリ上で変更を加えた点が反映される。
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3