- 投稿日:2019-07-01T22:56:11+09:00
GitHub リポジトリの作成方法
新規作成したアプリのリポジトリをGitHub上で作る
まずは、アプリの作成(今回はデータベースにポスグレを使用)
$ rails new (アプリ名) -d postgresqlGitHubにアクセス
①new repositoryボタンを押す。
②リポジトリ名を決めて、Create repositoryボタンを押す。
GitHubとローカルをSSH接続
SSHという認証技術を使用して、GitHubとローカルをSSH接続する。
⇨セキュリティの脆弱性の観点から、一般的には公開鍵認証方式を使用。
(ここで、公開鍵と秘密鍵という概念が出てくるが、ここでは説明は割愛)SSH keyの作成
$ ssh-keygen -t rsa -C "GitHubに登録した自分のメールアドレス"Overwrite (y/n)?の箇所で、yを入力しEnterを押すと、秘密鍵と公開鍵が作成される。
id_rsaというファイルが秘密鍵で、id_rsa.pubが公開鍵。公開鍵の登録とGitHubとの接続確認
公開鍵をGitHubに登録する。
catコマンドを使用するとファイルの中身が確認できるので…$ cat ~/.ssh/id_rsa.pub上記コマンドを実行すると、ssh-rsaから始まり、自分のメールアドレスで終わる長い文字の羅列が表示される。「ssh-rsa」からメールアドレスの末尾までをすべてコピー。
GitHub上に公開鍵を置く
①ヘッダ右上の自分の画像をクリックして、settingをクリック。
②SSH and GPG keysをクリックし、さらにNew SSH Keyをクリック。
③keyのところにコピーした公開鍵の中身を貼り付ける。
GitHubとの接続が正常にできているか確認
# 接続確認コマンド $ ssh -T git@github.com# 接続結果 Hi (GitHubの登録名)! You've successfully authenticated, but GitHub does not provide shell access.このように表示されたら、基本的には接続成功!!!
GitHubのリポジトリにソースコードを送信する
GitHubリポジトリの送り先SSHプロトコルURLを取得
ローカル上で、送り先のSSHプロトコルURLをGitHubからコピー。
(SSHプロトコルURLは、git@から始まる。
httpsから始まるURLは、パスワード認証方式でアクセスすることになる。)GitHubのリポジトリを登録する
ローカル上で、GitHubリポジトリの送り先SSHを登録する。
⇨git remote addコマンドを使用。$ git remote add origin(=省略名) (コピーしたSSHプロトコルURL)$ git remote -v # 送り先SSHの確認例 origin git@github.com:〜 (fetch) origin git@github.com:〜 (push)git pushコマンドの利用
登録したリモートリポジトリ(GitHubリポジトリ)に、ソースコードを送信する。
$ git push origin(=省略名) ブランチ名⬇︎こうするとmasterブランチへコードが送信される。
$ git push origin master…以上が、ローカル環境下で書いたソースコードを、作成したリポジトリに送信する流れ
- 投稿日:2019-07-01T19:39:17+09:00
【Git】リベース(rebase) でコンフリクトした時の対処法
- 投稿日:2019-07-01T18:19:07+09:00
Macを手に入れてからgit completion bashとgit promptを使えるようになるまで
概要
Macを購入したら待ち受けている数多くの初期設定。
GUIツール以外にも、CLIで使う系のものは骨が折れますよね。そんな中で、毎回git completion bashとgit promptに関しては調べてやっていたのでメモ書きとして。
各ツールの概要
git completion bashとは
Gitコマンドの補完を効かせてくれるやつです。
途中まで入力したブランチ名とかをTABキーで保管してくれたりします。git promptとは
シェル上でのgit情報をわかりやすく見せてくれるやつです。
こういうの↓
ブランチ名とか出てきて良い感じになります。
インストールしていく
Homebrewインストール
まずは、公式サイトからHomebrewを入れましょう。
Gitインストール
デフォルトでは、Xcodeのcommand line toolsが使えるようになっています。
しかし管理のしやすさなどから、Homebrewを使って今回は入れていきます。brew install gitその後に、
~/.bashrc
を作成して下記を追加します。
gitのパスをインストールしたものに置き換えます。~/.bashrcexport PATH="/usr/local/Cellar/git/2.5.0/bin:$PATH"上記の2.5.0はインストールされたgitのバージョンが入るので、各バージョンによって書き換えましょう。
bash completionを入れる
各種コマンドの保管を行ってくれるやつです。
~/.bashrc
に下記を追加します。~/.bashrcif [ -f $(brew --prefix)/etc/bash_completion ]; then source $(brew --prefix)/etc/bash_completion figit completion bashを入れる
こちらも
~/.bashrc
に追加します。~/.bashrcsource /usr/local/etc/bash_completion.d/git-prompt.sh source /usr/local/etc/bash_completion.d/git-completion.bash GIT_PS1_SHOWDIRTYSTATE=true export PS1='\[\033[37m\][\[\033[36m\]\u\[\033[37m\]@\h \[\033[32m\]\W\[\033[37m\]]\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '.bashrcにパスを通す
初期状態は
~/.bash_profile
がなく、今回作成した~/.bashrc
にパスが通っていません。
そのため、~/.bash_profile
から、~/.bashrc
にパスを通しましょう。~/.bash_profileif [ -f ~/.bashrc ]; then . ~/.bashrc fiこれでシェルを立ち上げ直せば、git completion bashとgit promptが使えるようになります!
参考記事
- 投稿日:2019-07-01T16:43:59+09:00
gitのoriginとupstreamを変更するときのまとめ
背景と目的
最近、友人からフォルダをもらってそれをGitで管理しようと思ったら.gitがすでにあった。
どういう状況かというともらったフォルダに移動して以下のコマンド
$ git remote -v origin https://gitlab.com/TOMODACHI/TOMODACHIrepo.git (fetch) origin https://gitlab.com/TOMODACHI/TOMODACHIrepo.git (push)つまり、originが友人のrepositoryになっている。何が問題かというとこれを俺のrepoにしたい、つまり
$ git remote -v origin https://gitlab.com/ORENO/ORENOrepo.git (fetch) origin https://gitlab.com/ORENO/ORENOrepo.git (push) upstream https://gitlab.com/TOMODACHI/TOMODACHIrepo.git (fetch) upstream https://gitlab.com/TOMODACHI/TOMODACHIrepo.git (push)この例だとgitlabだけどgithubも同様の操作だと思う。
仮定
- gitlab
- 俺のアカウント名
ORENO
- 友達のアカウント名
TOMODACHI
やり方
$ git remote set-url origin git@gitlab.com:ORENO/ORENOrepo.git
これでoriginが俺のになった、次に友人のものをupstreamにしたいので
$ git remote add upstream https://gitlab.com/TOMODACHI/TOMODACHIrepo.git
- 投稿日:2019-07-01T09:00:41+09:00
Gitコマンド 整理用メモ
目的
GitコマンドとUIツールを共存してうまく活用していく
前提
まずは、Gitをインストールしてきましょう
あって損しないもの(追記で入れましょう)
TortoiseGit
SourceTreeGithub等で、gitリポジトリ作る
Windows に沿って説明します
コマンドプロンプト起動してhogeなディレクトリ作ってそこへ移動
↓
git init または git clone ... /.git
↓
ソースのほげほげ対応!!
↓
git add file ...
↓
git status
↓
git commit -m "ほげほげしました"
↓
git push origin master
(チームでやってるときは本当にmasterにプッシュしても大丈夫か要確認!)
オプション(-f)をつけることにより、強制的にプッシュできる。git pull
リモートにある最新を取得してマージ
git fetch
リモートにある最新を取得のみ
git merge
fetchした内容を自分のブランチへマージさせる
コンフリクト起きてgit pullできん時
ひとことでまとめようとすると難しい
自分のソースをバックアップとることを前提に、
git fetch で状態だけ確認、コンフリクト起きたところをIDE等で見て修正。そして、git mergeでマージよい方法の例としては
TortoiseGitの場合、右クリックすると『変更取り消し』機能があるので、事前にバックアップはするのは前提とし、その機能を活用したあと、バックアップと差分確認し、自分の修正取り込んだり、修正を捨てる
TortoiseGit入れなてないときも同様に、バックアップ取ってプルまたは、クローンし直して、修正差分を取り込む。
差分確認ツールとして
WinMergeが有名である。または、gitの差分コマンドや、TortoiseGitの差分機能も検討してみてください
結論
ひとことでいうと、コンフリクト起きたときは、自分のファイルをリネームしてプルし差分取り込む、またはローカルブランチ切るか、UI使ってバックアップを視覚化して分かりやすく取ることが大切
- 投稿日:2019-07-01T00:40:45+09:00
Windows10にGitをインストールして初期設定する
新しいPCのセットアップするついでに手順メモを記録しておきます。
私のPC
- Windows10 Pro
- Ver 1803 Build 17134.829
インストールファイルをダウンロード
ダウンロードサイトのWindowsをクリックしインストール用exeファイルをダウンロードします。
私はGit-2.22.0-64-bit.exeがダウンロードされましたがPCによっては32bit版など指定してダウンロードが必要かと思います。
Git for Windowsインストール
exeファイルを実行するとInformation画面が起動しますので[Next]をクリック
インストール先を指定します。私はデフォルトのままにしました。
コンポーネント選択画面でインストールする機能を選択します。私はデフォルトのままこのままで[Next]をクリックしました。
スタートメニューにショートカットを登録します。私はこのままで[Next]クリックしました。
デフォルトエディターを選択します。VSCodeにしたかったんだけどなぜか変更できなかったのでとりあえずデフォルトのVimにしました。あとからでもこの手順で変更できます…
コマンドラインでGitをどう使うかのPATH環境設定をします。
私はデフォルトのままで[Next]をクリックしました。
- Use Git Bash only
- Git BashからだけGitが使えるようにする。環境変数に影響なく使える。
- Git from the Command line and also from 3rd-party software
- サードパーティのコマンドラインからもGitが使用できるようにする。デフォルトがこれ。
- Use Git and included Unix tools from the Command Prompt
- gitだけでなく、lsとかUnix系のコマンドもコマンドプロントで使用可能にする
SSLライブラリ設定をします。これもデフォルトのままで[Next]をクリック。
改行コード設定。デフォルトは一番上だけどここの記事から真ん中を選択して[Next]
GitBash使うときのエミュレーター設定。私はwinpty?ってもの使ってないので[Use Windows' default console window]を選択して[Next]をクリック
その他設定をします。ここの記事からシンボリックリンクは有効にしておいた方がよさそうなので全部チェックして[Next]をクリック
ん?なんか実験的な機能らしい。有効にしてみよう。選択して[Install]をクリック。
コマンドプロンプトで
git --version
を実行してバージョンが出力されたらOKです。
念のためPCをリブートします。
Git初期設定
Gitのユーザー名とアカウント名を設定して設定されたかを確認します。
GitBash$ git config --global user.name "takeda" $ git config --global user.email "hogehoge@email.com" $ git config --list core.symlinks=true core.autocrlf=input core.fscache=true color.diff=auto color.status=auto color.branch=auto color.interactive=true help.format=html rebase.autosquash=true http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt http.sslbackend=openssl diff.astextplain.textconv=astextplain filter.lfs.clean=git-lfs clean -- %f filter.lfs.smudge=git-lfs smudge -- %f filter.lfs.process=git-lfs filter-process filter.lfs.required=true credential.helper=manager add.interactive.usebuiltin=true user.name=takeda user.email=hogehoge@email.com