友人と共同開発するためGitをゼロから学びなう。
注意: Git学び中なので間違っている点や用語の使い方がおかしいかもです。
1. 友人のGithubから目的のgitをローカルリポジトリにcloneする。
cloneを作成したい任意のディレクトリにcdし
$ git clone [URL]
コマンドを実行する。
cloneが終わったらlsコマンドで目的のディレクトリが作成されているか確認する。
例: KeigoTakahashiのケース
$ pwd //あらかじめcdコマンドで目的のディレクトリに移動しておく
/Users/keigotakahashi/Desktop/Xcode/Practice
$ ls //ディレクトリ内のディレクトリを確認
MyCalc //元からあるプロジェクト
$ git clone https://github.com/tt556/SwiftMousouLINE.git //このセクションのテーマ
Cloning into 'SwiftMousouLINE'...
remote: Enumerating objects: 31, done.
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 31 (delta 2), reused 31 (delta 2), pack-reused 0
Unpacking objects: 100% (31/31), done. //clone完了
$ ls //cloneコマンドによりgitファイルが作られたことを確認
MyCalc SwiftMousouLINE //SwiftMousouLineが今回の目的のgit
2. 自分で編集を加えてコミットする。
ここに関しては、下記参照。
https://qiita.com/doge_kun55/items/f269b89b73f23e6b0cb6
3. コミットしてgitファイルが作成されたか確認する。
クローンを作成したディレクトで
$ git remote -v
コマンドを実行する。私の場合
$ origin https://github.com/tt556/SwiftMousouLINE.git (fetch)
$ origin https://github.com/tt556/SwiftMousouLINE.git (push)
となっていました。予想通りです。
Xcodeで編集し目的のファイルをcommitするまでは
$ git remote -v
コマンドを実行しても何も表示されませんでした。予想外です。てっきりcloneしたやつが表示されると思っていましたが、自分で一度commitしないといけないみたいです。
4. commitしたgitをpushする。
commit(編集)したgitをpushする。
$ git push [remote-name] [branch-name]
このコマンドでpushできます。
例: KeigoTakahashiのケース
[remote-name]と[branch-name]はよくわかりませんが、とりあえず適当にやってみました。
$ git push origin master
remote: Permission to tt556/SwiftMousouLINE.git denied to TKeigo.
fatal: unable to access 'https://github.com/tt556/SwiftMousouLINE.git/': The requested URL returned error: 403
権限ないからpush拒否されました。で友人は寝てるから自分のリモートリポジトリにpushすることにしました。
5. リモートリポジトリを追加(自分のGithubにpush)する方法
セクション4と同じくcommitしたgitをpushします。リモートレポジトリの情報をローカルに追加します。少し考察。
私は友人のリモートレポジトリからgitをcloneしてきました。cloneした段階で[remote-name]と[branch-name]は自動的に作られます。友人のリモートリポジトリからcloneしてきたgitをcommitして自分のリモートリポジトリにpushします。ここでは[remote-name]を弄ることによってそれが可能になります。
$git remote
とだけ打つと現在の[remote-name]の一覧が表示されます。私の場合は友人のGithubの[remote-name]であるoriginだけが表示されました。先ほども言ったように[remote-name]はcloneした時勝手に作られます。[remote-name]であるoriginが持つ情報はoriginという名前情報とどこからcloneされたのかのURL情報が格納されていると考えられます。※あくまでも予想です。
今度は[remote-name]を新たに作成することで、自分のGithubのURL情報とそれに対応する名前情報を持った[remote-name]が作られると仮定しました。やってみたのが下記です。
$ git remote add keigo https://github.com/TKeigo/mysite.git
これでkeigoという名前にTKeigoのGithubのURL情報が紐づけられました。
あとはセクション4と同じくcommitしたgitをpushします。
$ git push keigo master
Username for 'https://github.com':
Password for 'https://TKeigo@github.com':
Counting objects: 36, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (34/34), done.
Writing objects: 100% (36/36), 1.28 MiB | 1015.00 KiB/s, done.
Total 36 (delta 7), reused 0 (delta 0)
remote: Resolving deltas: 100% (7/7), done.
remote:
remote: Create a pull request for 'master' on GitHub by visiting:
remote: https://github.com/TKeigo/mysite/pull/new/master
remote:
To https://github.com/TKeigo/mysite.git
- [new branch] master -> master
これで完了です。