20190507のGitに関する記事は7件です。

Bitbucket(サーバー版)への接続に、GitKrakenを試してみた

Bitbucket(サーバー版、以降Bitbucketと記述)に、GitKrakenから接続する方法の手順メモ
※GitKrakenは複数OSに対応してるので、Windowsでもほぼ同じ手順です

前置き

gitのGUIクライアントで、以前はSourceTreeを使っていた。
これに慣れていたので、Bitbucketの導入時もSourceTreeを利用しようとした。
・・・が、どうやってもBitbucketに接続できず。
httpsもダメ、SSHもダメ、@を%40に置換してもダメだった。

どうやら、Bitbucketのアカウントを@を含む状態で作成(例:メールアドレス)すると
SoruceTreeからの接続はできないようだった。

SourceTree並みに見やすくて使い勝手のよいGitアプリがないかと探した結果、
GitKrakenというアプリがよさそう&アカウントの@問題を回避できた

前提

  • Bitbucketのユーザー登録が済んでいる
  • CentOS7.6
  • GitKraken 5.0.4

進め方

  1. GitKrakenのインストール
  2. GitKrakenのアカウント登録
  3. クローン実行(その1・パスワード認証)
  4. クローン実行(その2・SSH接続)
  5. 完了

3と4はお好きなほうをどうぞ。
SSH接続のほうが都度PW入力が不要なので便利です

1. GitKrakenのインストール

rpmパッケージ取得→インストール→起動

1-1 rpmパッケージを入手

公式サイトからパッケージを入手

terminal
$ wget https://release.gitkraken.com/linux/gitkraken-amd64.rpm

下記のようにSSLエラーが出た場合は、--no-check-certificateをつけて実行すれば回避可能

SSLエラーが出る場合の表示
$ wget https://release.gitkraken.com/linux/gitkraken-amd64.rpm
--2019-04-26 14:31:16--  https://release.gitkraken.com/linux/gitkraken-amd64.rpm
release.gitkraken.com (release.gitkraken.com) をDNSに問いあわせています... 18.235.209.28
release.gitkraken.com (release.gitkraken.com)|18.235.209.28|:443 に接続しています... 接続しました。
エラー: release.gitkraken.com の証明書(発行者: `/C=US/ST=Texas/L=Austin/O=Forcepoint LLC/CN=Forcepoint Cloud Web Enforcer CA')の検証に失敗しました:
  発行者の権限を検証できませんでした。
release.gitkraken.com に安全の確認をしないで接続するには、`--no-check-certificate' を使ってください。

1-2 yumでインストール

terminal
$ sudo yum -y install gitkraken-amd64.rpm

1-3 起動

&を付けないとGitKrakenを閉じるまでそのターミナルが占有される

terminal
$ gitkraken &

2. GitKrakenのアカウント登録

アカウント登録→メール認証→プロファイル設定

2-1 GitKrakenのアカウントを登録する

Create a GitKraken Account をクリック
image.png

2-2 氏名、メールアドレス、パスワードを入力

チェックボックスにチェックを入れ、Create a GitKraken Account をクリック
image.png

2-3 メール認証

2-2の後、下記画面が表示されれば、登録したメールアドレスに認証メールが届く
image.png
認証依頼メールの、「Veryfi my email」をクリックすれば認証完了
image.png

2-4 プロファイル登録

まずはログイン。
ログイン画面に戻り、GitKrakenに登録したEメールとパスワードを入力
image.png

ログイン後、プロファイルを登録。
デフォルトプロファイル、アイコン、名前、メールアドレスを登録する
名前とメールアドレスはBitbucketに登録した内容を入力。
image.png

3. クローン実行(その1・パスワード認証)

まずはパスワード認証の場合に手順

3-1 レポジトリのクローンを実行

Clone a Repo をクリック
image.png
①クリック、②クリック、③クリック、④入力、⑤クリックの順で進めてください
ここでは汎用性があるURL指定をしています。
image.png

URLとアカウントに間違いがなければ、クローン作業が始まります。
接続先のパスワードを入力、必要に応じてRememberMeにチェックを入れ、ログインを押下。
問題なければクローン作業が完了します。
image.png

4. クローン実行(その2・SSH接続)

続いて、SSH接続の場合です
GitKrakenには、SSHキーの発行機能がついているので新規作成時はラクができます。

4-1 SSHキーの設定画面へ

File → Preferences
image.png

Authenticationをクリック、Use local SSH agent のチェックを外す
image.png

4-2 既存のSSHキーを利用する場合

↓の赤枠内のBorwseボタンをクリックし、既存のSSHキーを選択、登録してください
パブリックキーも登録が必要です
image.png

4-3 SSHキーを新規作成する場合

赤枠内のGenerateをクリック
表示される画面で、保存場所と鍵の名称を聞かれるので指定する
image.png

SSHキーの作成完了後、Success!と表示される
image.png

パブリックキーをBitbucketに登録する。
下記の赤丸画像をクリックし、パブリックキーをコピーする。
Bitbucketへのパブリックキー登録方法はこちらの記事を参照
image.png

SSHキーの登録が終わったので、リポジトリのクローンを作成。
Clone a Repo をクリック
image.png
①クリック、②クリック、③クリック、④入力、⑤クリックの順で進めてください
④はSSH接続用のURLを入力してください
URL、アカウント、SSHキーに間違いがなければ、クローン作業が始まります。
image.png

5. 完了

クローンが完了すると、画面上にリポジトリが表示されます
GitKraken、とても使いやすくてよいです。
image.png

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

質問箱をOSS(オープンソース)にしてみた

peing-質問箱-のクローン(OSS)

ソースコードはこちら
https://github.com/seiyatakahashi/peing-questionbox-clone

クローン質問箱の現状はこんな感じです。
質問箱

質問箱とは

みなさんpeing-質問箱-をご存知ですか?twitterで2017年ごろから流行っている匿名で質問ができるwebサービスのことです。このサービスは個人開発をしているせせり氏が開発したサービスで公開1ヶ月で1億アクセスに達したそうです。

匿名で質問できるという機能はとても面白いと思いました。なのでこれをオープンソース化して、もっといろんな機能をつけていきたいと考えています。


デプロイ deploy

誰でもカンタンにデプロイできるようにしましたので是非みなさんもお使いください。
まずはgitからファイルをダウンロードしてください。

git clone git@github.com:seiyatakahashi/peing-questionbox-clone.git

ダウンロードができたらダウンロードしてきたフォルダに移動する

cd peing-questionbox-clone

herokuにログインをする

heroku login

heorku でプロジェクトを作成する

heroku create 作りたいアプリ名

heorku にアップロード

git add .

git commit -m "all"

git push heroku master

アップロードしてら、データベースにマイグレード

heroku run rails db:migrate

環境変数の設定

heroku config:set APP_NAME="アプリの名前"
heroku config:set APP_NAME_EN="アプリの英語の表記名"
heroku config:set API_KEY="ツイッターのAPI KEY"
heroku config:set API_SECRET="ツイッターのAPI シークレット"
heroku config:set TOKEN="ツイッターのAccess token"
heroku config:set SECRET="ツイッターのaccess token secret"
heroku config:set CURRENT="自分ののツイッターのID"
heroku config:set DESCRIPTION="サイトの情報"
heroku config:set KEYWORDS="サイトのキーワード"
heroku config:set GOOGLE_ANALYTICS="Google アナリティクスのID"


今後つけたい機能

決済機能

質問したい人がお金を払って質問された人がお金をもらえる機能。

複数のSNSログイン

現在twitterでのログインしかできなのでfacebookやlineなどを加えたいです。

ネイティブアプリ化

railsをapi化させて、iosやandroidのようなネイティブなアプリケーションを作りたいです。

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

質問箱をOSS(オープンソースにしてみた)

peing-質問箱-のクローン(OSS)

ソースコードはこちら
https://github.com/seiyatakahashi/peing-questionbox-clone

クローン質問箱の現状はこんな感じです。
質問箱

質問箱とは

みなさんpeing-質問箱-をご存知ですか?twitterで2017年ごろから流行っている匿名で質問ができるwebサービスのことです。このサービスは個人開発をしているせせり氏が開発したサービスで公開1ヶ月で1億アクセスに達したそうです。

匿名で質問できるという機能はとても面白いと思いました。なのでこれをオープンソース化して、もっといろんな機能をつけていきたいと考えています。


デプロイ deploy

誰でもカンタンにデプロイできるようにしましたので是非みなさんもお使いください。
まずはgitからファイルをダウンロードしてください。

git clone git@github.com:seiyatakahashi/peing-questionbox-clone.git

ダウンロードができたらダウンロードしてきたフォルダに移動する

cd peing-questionbox-clone

herokuにログインをする

heroku login

heorku でプロジェクトを作成する

heroku create 作りたいアプリ名

heorku にアップロード

git add .

git commit -m "all"

git push heroku master

アップロードしてら、データベースにマイグレード

heroku run rails db:migrate

環境変数の設定

heroku config:set APP_NAME="アプリの名前"
heroku config:set APP_NAME_EN="アプリの英語の表記名"
heroku config:set API_KEY="ツイッターのAPI KEY"
heroku config:set API_SECRET="ツイッターのAPI シークレット"
heroku config:set TOKEN="ツイッターのAccess token"
heroku config:set SECRET="ツイッターのaccess token secret"
heroku config:set CURRENT="自分ののツイッターのID"
heroku config:set DESCRIPTION="サイトの情報"
heroku config:set KEYWORDS="サイトのキーワード"
heroku config:set GOOGLE_ANALYTICS="Google アナリティクスのID"


今後つけたい機能

決済機能

質問したい人がお金を払って質問された人がお金をもらえる機能。

複数のSNSログイン

現在twitterでのログインしかできなのでfacebookやlineなどを加えたいです。

ネイティブアプリ化

railsをapi化させて、iosやandroidのようなネイティブなアプリケーションを作りたいです。

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

【git編】いい感じのbashrcファイルができたから見てほしい!

gitを使うという面で地味に使いやすくなるbashrcファイルができました。

bashrcは、bashの設定ファイルです。
これをいじれば生産性がやや上がります!

みてほしい!

# 日本語対応
export LANG='ja_JP.UTF-8'

# lsの結果を色付きで表示してくれる
alias ls="ls --color=auto"
# ○○するときに、本当に○○していいか聞いてくれる系のエイリアス
alias rm='rm -i'
alias mv='mv -i'
alias cp='cp -i'


# .. だけで親ディレクトリにいける!
alias ..='cd ..'

# laで隠しファイルも含めて全部表示してくれる
alias la="ls -a"

# git系のエイリアス
alias gb="git branch"
alias gco='git checkout'
alias gcm='git checkout master'
alias gl='git pull'
alias gc='git commit'
alias gp='git push'
alias gst='git status'
alias ga='git add'

# 新しいブランチをあけてpushするときに「--set-stream」みたいなのが面倒だったので、gp2でgit pushできるようにした
alias gp2=gp_set

function gp_set(){
    branch_name=$(git symbolic-ref --short HEAD)
    git push --set-upstream origin $branch_name

}


# 仕事頑張れるエイリアス
alias nemui="echo 'うぇ~~~~い'"
alias tukareta="echo 'ほんまそれな~~'"
alias gbz="echo 'がんばるぞ~~!!!'" # gbzはがんばるぞの略

特におすすめした地味にうれしいエイリアス

# 新しいブランチをあけてpushするときに「--set-stream」みたいなのが面倒だったので、gp2でgit pushできるようにした
alias gp2=gp_set

function gp_set(){
    branch_name=$(git symbolic-ref --short HEAD)
    git push --set-upstream origin $branch_name

}

gp2って名前適当すぎるけど、それはまあよしとして、いつ使うかを説明したい!!

新しいブランチを開けて、そこでpushしようとするとこうなりますよね。

$ git push
fatal: The current branch test3 has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin test3

まじかーって思いながらgit push --set-upstream origin test3をコピーして、貼り付けて、Enterを押すんですけど、ちょっと面倒くさい。

というわけで、

$ gp2
Counting objects: 100% (3/3), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 224 bytes | 224.00 KiB/s, done.
Total 2 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), completed with 1 local object.
remote:
remote: Create a pull request for 'test3' on GitHub by visiting:
remote:      https://github.com/*******/********/pull/new/test3
remote:
To github.com:*********/git-study.git
 * [new branch]      test3 -> test3
Branch 'test3' set up to track remote branch 'test3' from 'origin'.

はい!完璧!
自動でブランチ名を取得して、コマンドを実行してくれます。

というわけで地味に便利なgitのエイリアスでした。

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

【Xcode】GitHubにpushした瞬間にTabの幅が変わってしまう

先輩エンジニアにコードレビューで
「インデントの乱れは心の乱れ!!!! :anger:
と叱られて
「あれっ!?!?Xcode上だと何もおかしくないのに!?!?」
と混乱してしまったそこのあなたのためにこの記事を残します。

tl;dr

tabの幅がおかしい時は XCode -> Preferences... -> Text Editing -> Indentationの設定を弄れ

症状

Xcode上では何も違和感なかった(むしろ control+iコマンドでインデント調整をしている)コードをGitHubリモート上にpushした途端インデント幅が変わる
(macOS Mojave: 10.14.4, XCode: 10.2.1)

  • ローカル(Xcode)上
    スクリーンショット 2019-05-07 17.24.44.png
    (よしよし、インデント調整もしたしpushしよう)

  • リモート(GitHub)上
    スクリーンショット 2019-05-07 17.25.24.png
    (? :thinking: )
    (リモートだとTab幅が2文字分深くなってしまいました)

解決法

XCode -> Preferences... -> Text Editing -> Indentation内の
Prefer indent using
Tabs-> Spacesに変更。これだけ。
スクリーンショット 2019-05-07 17.36.45.png
TabsによるインデントだとXcode上の見た目が何文字でも6文字に固定されてしまう?ことを知りませんでした
もちろん、シンプルに Tab widthIndent widthが想定のものと違っている可能性もあるので要確認です

まとめ

設定できる項目と設定の影響範囲はちゃんと覚えようね

おまけ

人のコードを見る時にインデント幅を変えたい場合はURLに ?ts=4とかしてあげましょう
Source: https://github.com/tiimgreen/github-cheat-sheet#adjust-tab-space

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

[Github]merge前に別のタスクを間違えてcommitしてしまった!ときの対処法

(備忘録)
間違えてコミットしてしまった…
でもファイルの変更内容は残しておきたい…
というときに見てください

状況

  • プログラミングスクールの課題に取り組む中で起きた
  • 課題Aを終えてcommit(1~5)→push→pullrequest「A」を送りLGTMをもらった(のにmergeしてなかった)
  • 課題Bを終えてcommit(6~10)→pushしたら、「あ、課題Aのcommitをmergeしてなかった」となり、pullrequest「A」の中にcommit(1~5)も(6~10)も混在してしまった

問題発生時のイメージ

(githubのpullrequest「A」の画面)

commit(1)
commit(2)
commit(3)
commit(4)
commit(5)
コメント「LGTM」
commit(6)
commit(7)
commit(8)
commit(9)
commit(10)
(merge pullrequest)ボタン

対処法

$ git reset --sort HEAD~4
(直前の5つ(4+1)のコミットをコミットする前に戻す)

これでローカルリポジトリでは6~10番のファイルの中身は残ったまま、
commitする前の状態になりました
でもリモートリポジトリは何も変わっていません。
 

$ git push -f origin exam
(ローカルリポジトリの「exam」ブランチを
リモートリポジトリの同名(「exam」ブランチ)にpushする) 

これでリモートリポジトリもローカルリポジトリと同じ状態となり

commit(1)
commit(2)
commit(3)
commit(4)
commit(5)
コメント「LGTM」
(merge pullrequest)ボタン

望んでいた状態でのmergeが可能になりました。

 

参考URL

http://www-creators.com/archives/2020
http://www-creators.com/archives/1472
http://d.hatena.ne.jp/mrgoofy33/20100910/1284069468 

まとめ

ちゃんとタスクを細分化してpull requestを出す癖をつけましょう!

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

初心者必見!これだけGIT10選!

プログラマ歴1ヶ月の新米エンジニアが、これだけは覚えとけ!なGITコマンド10こを厳選しているページです。なお、『このコマンド入らないのは謎だろ!!!』とか『そもそも、これ認識ちょい違いますよ〜』等々ツッコミ大歓迎です?‍♂️

むしろ先輩方からのアドバイス有難い。。。

では早速参りましょう。

※なお基本編はこの順に行えばgit push、自分の環境に最新のorigin情報を持ってくるところまで行えるようになってます。活用いただけたら幸いです!

⭐️基本編
①git branch
まず新たに作業を始める際にはブランチ(枝)を立てましょう。

②git checkout

上記git branchをしているとブランチが複数存在することもあります。というかそのいった状況の方が多いと思います。ブランチ間を行き来する際にこのgit branch 枝の名前 を行います。

③git add

自分のブランチでの変更内容
をgit add -A

④git commit -m""

⑤git push

⑥git fetch

⑦git merge origin
git pull

⑧git diff
git status

上記まででgit pullまで行えるのですが、随時現状を把握することは非常に重要です。これは⑧に記述しましたが、各工程で気になる際にはしつこいくらいに行いましょう。

⭐️+α編

ここからは超基本からほんの少しレベルを上げた内容です。とはいっても通常業務で使用する機会も多いと思いますので、併せて覚えちゃいましょう〜

⑨git log -p

⑩git stash

⭐️最後に

己の無力さに打ちひしがれることもあると思いますが、こけた分だけ学びがあると思います。恐れず共に前に進みましょう?

⭐️おまけの用語集

リポジトリ

ソースコードなどのコンテンツすべてのバージョンを保持する場所、いわゆるデータベースです。
開発者の各PCにあるデータベースを「ローカルリポジトリ」、サーバーにあるデータベースを「リモートリポジトリ」といいます。

参考URL(先輩たちの知恵が詰まってます、チェックされたし?)
https://qiita.com/kyoyyy/items/161b6905f45bee2efe21

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