20200526のGitに関する記事は9件です。

【Rails】ローカルのファイルをリモートロポジトリに上げない為のコマンド

環境

Mac OS
Rails5.2.4

ローカルで使用しているファイルをリモートリポジトリ(例:Github等)に上げない様にする方法

terminal
touch .gitignore

.gitignoreという名前のファイルをtouchコマンドで作成。

作成場所は一番先頭のディレクトリー(Gemfileが置いてあるディレクトリ)にする。
このファイルに、リモートリポジトリには上げたくないファイルのパスを記載。
(画像を保存しているフォルダやパスワード等個人情報が記載されているファイルなどが対象となるかと
思います。)

すでにリモートリポジトリにpushしてしまったファイルをリモートリポジトリから削除・取り消したい場合

terminal
git rm -r --cached 【削除したいファイル名】

これで指定したファイルが、リモートから消えているはずです!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[rails]過去にフォークしたレポジトリを最新にしたい

具体的な方法は下記漫画を参考にしました。

https://next.rikunabi.com/journal/20180322_t12_iq/

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[rails]共同開発で苦労した点

苦労した点のメモ書き。

margeができない

プルリクエストも作成できており、削除もできるのに
margeボタンだけなかった。

【原因】
共有するための「collaborators」が、うまくできていなかった。

参考:
Githubのプロジェクト(オリジナル・リポジトリ)を複数人で共有する(Collaborators権限)

コンフリクトに戸惑う

一番初めは何をどうすればいいのかわからない。
開発が進むと、コンフリクトは起きているのにボタンが押せない、、、

対応策は下記に記載(ローカルでマスターを取り込む事で解決)
https://qiita.com/ki-ku/items/1416795cdaac7b7545ae

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[rails]共同開発で苦労した点:github編

苦労した点のメモ書き。

margeができない

プルリクエストも作成できており、削除もできるのに
margeボタンだけなかった。

【原因】
共有するための「collaborators」が、うまくできていなかった。

参考:
Githubのプロジェクト(オリジナル・リポジトリ)を複数人で共有する(Collaborators権限)

コンフリクトに戸惑う

一番初めは何をどうすればいいのかわからない。
開発が進むと、コンフリクトは起きているのにボタンが押せない、、、

対応策は下記に記載(ローカルでマスターを取り込む事で解決)
https://qiita.com/ki-ku/items/1416795cdaac7b7545ae

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【自分用学習メモ・備忘録】Git

基本用語

共同開発の流れ
コード変更→共有する準備→共有

  • git init /initialize(初期化)Gitを使うとき初めに実行する
  • git add 変更のあるファイル名 /共有するファイル選択
  • git commit -m "コミットメッセージ" /メッセージ付きで記録→どんな内容かわかるように
  • git remote add リモート名(大体origin) URL /リモート(共有場所)を登録
  • git push リモート名 master /リモートにファイルをアップロード→プッシュという!
  • git pull リモート名 master /リモートからファイルをダウンロード→プルという!


  • git status /自分が変更したファイルのファイル名を表示 (addされたものは緑色、されてないものは赤色の文字色

  • git diff /変更内容を見る (変更前は赤色、変更後は緑色の文字色

  • git log /自分や他人のコミットを確認できる

  • git log -p /自分や他人の変更内容がみれる

その他

  • git log -pを実行した際、表示内容が多いときは上下キーで表示範囲変更、Qキーで終了
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

開発準備 git

GitHub 接続

commit して push するまで

  1. GitHub 登録
  2. SSH 公開鍵 作成
  3. GitHub 公開鍵 登録
  4. gitリポジトリ 登録
  5. .gitconfig 設定
  6. git 初期化
  7. (merge &) commit & push

1. GitHub 登録

いわずもがな、省略。

2. SSH 公開鍵 作成

https://qiita.com/shizuma/items/2b2f873a0034839e47ce を参考に作業
(引用)

$cd ~/.ssh
$ssh-keygen -t rsa

問いかけられるけど3回Enterを押してスルーすると鍵を生成完了

3. GitHubに公開鍵を登録

接続確認!

$ ssh -T git@github.com
Hi YKHSJP! You've successfully authenticated, but GitHub does not provide shell access.

OK!

4. gitリポジトリ 登録

リポジトリのディレクトリに移動して

$ git remote set-url origin git@github.com:YKHSJP/study.git

と登録(:YKHSJP/study.git は自身の値)

config を確認する

$ git config remote.origin.url
git@github.com:YKHSJP/study.git // OK

5. .gitconfig 設定

cd ~/

.gitconfig

[user]
    name = {last name} {family name}
    email = {email}

6. git 初期化

ディレクトリに移動して

$ git init
Initialized empty Git repository in C:{path}.git

7. (merge &) commit & push

とても詰まった所。
push ができない問題。
解決してくれたのはやはり他Qiitaページでした。本当感謝。
https://qiita.com/takanatsu/items/fc89de9bd11148da1438

$ git merge --allow-unrelated-histories origin/master
Not committing merge; use 'git commit' to complete the merge.
$ git commit -m "first commit"
[master c16f5ca] first commit
$ git push origin master

やっと push 完了!?

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

よく使うgitコマンド

gitコマンド

branch関係

git checkout -b ブランチ名
新規ブランチを作成

git checkout ブランチ名
指定ブランチに切り替え

git branch -D ブランチ名
指定ブランチ削除

git branch -m ブランチ名旧 ブランチ名新
ブランチ名の変更

git reset --hard HEAD
現ブランチの編集履歴削除

git checkout .
現ブランチを優先

git rebase ブランチ名
処理を作り直す
既存のコミットへ影響を与える

add関係

git add -u
既存ファイルのみadd+上位ディレクトリにも対応する

commit関係

git commit -u
既存ファイルのみコミット+上位ディレクトリにも対応する

merge関係

git merge --no-ff ブランチ名
差分をマージ
fast-forwardしないのでマージコミットされて分岐の履歴が残る

git reset --hard HEAD
merge取り消し
指定されたコミットの時点に戻り、それ以降の変更を全て破棄

git fetch
リモート・リポジトリなど他のリポジトリのデータを取得するもの
サーバーとの同期

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Herokuにデプロイするための高速チートシート(RubyOnRails)

概要

gitを使ってHerokuにデプロイする方法を簡潔にまとめました。
主にチートシートとしてのご利用をオススメします。

・デプロイ(*新規)
・デプロイ(二回目以降)

*ここでいう新規とは、新しくアプリケーションを作った場合のことを指します。

実行環境

筆者の実行環境は以下の通りです。
・Cloud9
・Rails version: 6.0.3.1
・Ruby version: ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-linux]

デプロイ(新規)

下準備

$ rails new sample_app : 'アプリを作る'
$ cd sample_app       : 'ディレクトリの移動'

gitによるレポジトリ作成

$ git init    : '「.git」ファイルの作成'
$ git add -A    : '全てのファイルをaddする'
$ git commit -m "メッセージ"   : 'commitする

Gemファイルの変更

herokuを利用するにあたり、使うデータベースを変更する必要があります。
sqlite3 → PostgreSQL

変更前
########################
########################
gem 'sqlite3', '~> 1.4'
########################
########################
変更後
############################
############################
group :development, :test do
  ##########################
  gem 'sqlite3', '~> 1.4'
end
############################
############################
group :production do
  gem 'pg', '>=1.1.4'
end

レポジトリをHerokuにデプロイする

$ source <(curl -sL https://cdn.learnenough.com/heroku_install) : 'herokuのインストール'
$ heroku login --interactive   : 'ターミナル上でHerokuログイン'
$ heroku create          : 'Herokuに新しいアプリケーションを作る'
$ git push heroku master    : 'Herokuにデプロイする'
$ heroku run rails db:migrate  : 'Heroku上でデータベースマイグレーションを実行する(必要があれば)'

デプロイ(二回目以降)

gitにcommitする

$ git add -A    : '全てのファイルをaddする'
$ git commit -m "メッセージ"   : 'commitする

herokuにデプロイする

$ git push heroku
$ heroku run rails db:migrate  : 'Heroku上でデータベースマイグレーションを実行する(必要があれば)'

参考文献

railsチュートリアル6.0(第1章)

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

gitでssh接続する際にBad configuration option: usekeychainやterminating, 1 bad configuration optionsとエラーが出たときの解決方法

前提

・sshの公開鍵、秘密鍵を取得済み

使用する秘密鍵をconfigファイルに書く

### vimを立ち上げて~/.ssh/configを編集する。
$ vi ~/.ssh/config
-> configファイル内に下記内容を追記する。
#-------------------
Host github
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  User git
#-------------------
-> 追加後はescキー押したあとに:wqで保存します。

接続確認

こちらのコマンドで接続できているか確認できます。
$ ssh -T git@github.com

エラーの原因

私の場合は下記内容があるためにエラーになっていました。
同じ様にエラーになる場合は削除してから上記の内容を記載すると問題なく動作するかと思います。

Host *
    AddKeysToAgent yes
    UseKeychain yes

-> エラー
/home/vagrant/.ssh/config: line 3: Bad configuration option: usekeychain
/home/vagrant/.ssh/config: terminating, 1 bad configuration options

[※補足]AddKeysToAgentとUseKeychainとは何か

私の場合は削除してしまいましたが、あっても動くこともあるようなので、何をしているのか一応調べました。

AddKeysToAgentをyesにすることで、-Kオプションをつけなくてもssh-addの時やsshの時に強制的にパスフレーズがMacOSに保存されます。
また、UseKeychainをつけることで、ssh-agentを利用していなくても、MacOSに保存されたパスフレーズで自動的に~/.ssh/id_rsaなどを複合化してくれるようです。

参考

https://qiita.com/GakuNaitou/items/81dbbd3ea6211af71648
https://qiita.com/onokatio/items/397a5899a0ec16c7e60a

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む