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

Gitを使い始める時のHTTPSでの認証情報の設定

この記事を読むとわかること

HTTPSでGitHubリポジトリをクローンする場合、MacOSXにおいて、バージョン1.7.10以降のGitではosxkeychain資格情報ヘルパーが使える。これを使うと、OSのキーチェーンにOSのユーザーアカウントの認証情報がキャッシュされ、有効期限切れもない。これで資格情報を変更しない限り、接続のたびに認証情報の入力が不要になる。
ちなみにHomebrewを使用してGitをインストールした場合、osxkeychainヘルパーはすでにインストールされている。

前提条件

OSバージョン: macOS Mojave Version 10.14.6
homebrewがインストール済みであること
gitバージョン: 2.27.0

手順

1. Gitの認証情報ヘルパーがすでにインストール済みかを確認する

$ git credential-osxkeychain
usage: git credential-osxkeychain <get|store|erase>

上記のように出力されればインストール済み。
上記のような表示と違う場合はGitのマニュアルのこのページの手順2を実行して認証情報ヘルパーをインストールする。

2. グローバルcredential.helper構成を使用してosxkeychainヘルパーを使用するようGitに指示する

$ git config --global credential.helper osxkeychain
$

終わり。

参考情報

Cloning with HTTPS URLs (recommended) (docs.github.com)

Caching your GitHub credentials in Git (docs.github.com)

7.14 Git Tools - Credential Storage (git-scm.com)

Getting Started with Git and GitHub (Codecademy Articles)

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

git patch の事

//TODO
パッチの作り方

git diff

新しい方法なのでなるべくこちらを使おうよって

git format-patch

mbox形式

パッチ適用する方法

こちら、成功する場合だけ適用される。エラーがあると適用できない。

git apply

git applyで問題があるので適用できない、

patchコマンドを使う、エラーがあっても実行編集されるので、中途半端な状態になる可能性がある。

patch -p1 < xxx.patch

課題

patchよりgit apply を使うのがよいのでパッチのエラーが修正できるならそのほうがいい・・・。

例)
error: patch failed: <ファイル名>:<行>
error: <ファイル名>: patch does not apply

パッチファイルを編集して問題が起きるケースもある。

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

初めてプロジェクトに参加する人向け Gitクローンからプルリクエストまで

初めてプロジェクトに参加してGitHubからクローンして、作業をしてプルリクエストを送るまでの一連の流れをまとめました。

GitHubにアクセスしてクローンする

まずはプロジェクトのURLにアクセスします。
URLにアクセスしたらまずはforkをしておきます。
forkとは他人のリモートリポジトリを自分のアカウントにコピーすることです。

スクリーンショット 2020-07-07 16.53.36.png

forkは画面の右上に画像のようなボタンがあるのでそれをクリックします。

forkが済んだらクローンしてみます。

$ git clone <URL(これはリモートリポジトリのURL)>

ローカルリポジトリを作成

まずはクローンしてきたディレクトリに移動します。

次のコマンドでリポジトリを作成します。

$ git init

次にリモートリポジトリを追加します。

$ git remote add <追加するリポジトリ名> <追加するリポジトリURL>

GitHubアカウントを登録します。

$ git config --global user.name <ユーザー名>
$ git config --global user.email <メールアドレス>

ブランチ

ブランチとはGit の変更履歴を分岐させて記録していくものです。
本番用のmasterブランチにいきなり変更を加えることを避けるために開発用のブランチを用意します。

以下のコマンドで新規のブランチを作成します。

$ git branch <ブランチ名>

次のコマンドで作成したブランチに移動できます。
基本的にはここで作成したブランチで作業を進めていくことになると思います。

$ git checkout <ブランチ名>

次のコマンドで作成したブランチの一覧が表示できたら成功です。

$ git checkout

コミット

先ほど作成したブランチで作業を行ったらその変更履歴を記録する必要があります。
それを記録する作業をコミットと呼びます。

コミットに先立って、まずはコミットするファイルを選択する作業であるアッドを行います。

$ git add <コミットしたいファイル名>

変更を全てステージするには以下のコマンド

$ git add .

アッドが完了したら、変更内容の確認を行う。
以下のコマンド実行することでアッドされているファイルを確認できる。

$ git status

次のコマンドでファイルの変更箇所を確認できます。

$ git diff

最後に

$ git commit -m <コミットメッセージ>

でコミットが終わります。

プッシュ

変更した履歴をリモートリポジトリにアップロードすることをプッシュと呼びます。

$ git push リポジトリ名 ブランチ名

コマンドを実行すると完了です。
ブランチ名はheadを選択すると自分がいるリポジトリを選択できるので便利です。

プルリクエスト

最後にプルリクエストをします。

自分の行った変更を他のメンバーに通知します。

プロジェクトのURLにアクセスし、画像にあるプルリクエストをクリックします。

スクリーンショット 2020-07-07 17.55.38.png

あとは画面の指示にしたがって行けば完成です。

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

CentOS7(yum)でGitの2系をインストールする

毎回調べて時間がかかるのでメモ

$ sudo yum remove git*
$ sudo yum -y install https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.7-1.x86_64.rpm
$ sudo yum install git

出典

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

インターン日記

やること

いきなりデザインナーが作ったUIを実装してと頼まれる、、、
ほんまにいきなりやなあ。
ざっくりどこにでもあるメンバーの一覧とかみれたり検索できたりするやつ。
とりあえずReactでやりますか。

git環境

mac proでpushとかやっていたのに、謎にpullできないというトラブル。
結局公開鍵を自分のアカウントに登録すれば解決。
あれ?前できていたよなあ?
ちなみにgitで使用している認証は公開鍵認証。
公開鍵と秘密鍵をペアで作って、公開鍵をサーバへ渡しておく。
認証時に秘密鍵で暗号化したものは渡しておいた公開鍵で復号できるから、その人だよねってわかるっていう仕組み。

macだとユーザーディレクトリの.sshにあるid_rsa.pubが公開鍵。catなんかで出力してコピペでgitに登録してあげればOK。

react環境構築

早速react環境を作りましょー。

create-react-app

を使ってあげれば超簡単にreact環境ができるよねfacebookさんありがとう。
ただ、ここで沼にハマった。
何かのトラブルでディレクトリに不足があった。(あとで気付く)
通常のディレクトリ構成だとすぐにnpm startでローカルサーバが立ち上がるが、エラーとなる。
ファッ!?!?
しかも、gitにpushしてしまったから最悪だわ、、、
何回かやり直したら、通常のディレクトリのものができた。
何が原因なのか??ネットワークトラブル????
とりあえず、それらのファイルをgitで管理している方にコピペして解決。

reactでのcss

reactでcssを使うにはcss moduleを使ってあげればok
詳しくは以下参照
https://kapu-kapu.hatenablog.com/entry/2018/11/19/132655

create-react-appでのimgのパスについて

通常通り、imgのsrcにファイルのディレクトリ構成の相対パスを書いてもどーも画像が表示されない。
なんでだろうと調べたところ、create-react-app公式にやり方が書いていました。
要は、画像ファイルもモジュールとして読み込みましょうねってこと。
https://create-react-app.dev/docs/adding-images-fonts-and-files/

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

インターン日記(07/06)

やること

いきなりデザインナーが作ったUIを実装してと頼まれる、、、
ほんまにいきなりやなあ。
ざっくりどこにでもあるメンバーの一覧とかみれたり検索できたりするやつ。
とりあえずReactでやりますか。

git環境

mac proでpushとかやっていたのに、謎にpullできないというトラブル。
結局公開鍵を自分のアカウントに登録すれば解決。
あれ?前できていたよなあ?
ちなみにgitで使用している認証は公開鍵認証。
公開鍵と秘密鍵をペアで作って、公開鍵をサーバへ渡しておく。
認証時に秘密鍵で暗号化したものは渡しておいた公開鍵で復号できるから、その人だよねってわかるっていう仕組み。

macだとユーザーディレクトリの.sshにあるid_rsa.pubが公開鍵。catなんかで出力してコピペでgitに登録してあげればOK。

react環境構築

早速react環境を作りましょー。

create-react-app

を使ってあげれば超簡単にreact環境ができるよねfacebookさんありがとう。
ただ、ここで沼にハマった。
何かのトラブルでディレクトリに不足があった。(あとで気付く)
通常のディレクトリ構成だとすぐにnpm startでローカルサーバが立ち上がるが、エラーとなる。
ファッ!?!?
しかも、gitにpushしてしまったから最悪だわ、、、
何回かやり直したら、通常のディレクトリのものができた。
何が原因なのか??ネットワークトラブル????
とりあえず、それらのファイルをgitで管理している方にコピペして解決。

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

GitHubのremoteにpushする

はじめに

  • Mac OS
  • Gitインストール済み。
  • GitHubアカウントは登録済み。
  • 管理したいプロジェクトはHelloWorldレベルで実装済み。

という状態からリモートリポジトリへPushするまでの手順を残します。

やったこと

1.ローカルリポジトリを作成する

既存フォルダをGit管理対象に設定

$ cd ソースコードが入っているフォルダのパス
$ git init
$ ls -a

.            .eslintignore      .postcssrc.js       index.html      src
..          .eslintrc.js        README.md       node_modules        static
.babelrc        .git            build           package-lock.json   test
.editorconfig       .gitignore      config          package.json

.gitが存在するようになればOKです。

commitする

ソースコードはまだpushしたくないので、空コミットを行います。

$ git commit --allow-empty -m "first commit"
$ git log

 Committer: 本名 <本名のMacBook-ea.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly. Run the
following command and follow the instructions in your editor to edit
your configuration file:

    git config --global --edit

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

ユーザー名とEmailアドレスを設定していませんでした。。
以下のコマンドで設定。

$ git config --global user.name "設定したい名前"
$ git config --global user.email 設定したいアドレス@example.com

2.GitHubと連携する

リモートリポジトリの作成

自分のGitHubアカウントからNewボタンでリポジトリを作成します。
スクリーンショット 2020-07-07 10.55.01.png

スクリーンショット 2020-07-07 10.55.44.png

以下の入力を行います。

  • Repository name
  • Description
  • Public / Private (今回はPublicにしました)
  • Initialize ~~ (今回はすでにREADME.mdのファイルが存在していたのでチェックを外しました)

リモートに反映する

スクリーンショット 2020-07-07 11.00.03.png

方法はいくつか提示されています。

  • Quick setup
  • コマンドラインでローカルリポジトリを作成
  • 既存リポジトリをPushする
  • 他リポジトリからソースコードを取得

今回は「既存リポジトリをPushする」を実施します。

Pushする

# ローカルリポジトリにリモートリポジトリのURLを知らせる
$ git remote add origin git@github.com:{user name}/{repository name}.git

# ローカルリポジトリに紐づいているリモートリポジトリのURLを表示する
$ git remote -v
origin  git@github.com:{user name}/{repository name}.git (fetch)
origin  git@github.com:{user name}/{repository name}.git (push)
$ git push -u origin master

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

???
どうやら公開鍵・秘密鍵を生成してGitHubに登録する必要があるみたいです。

公開鍵・秘密鍵を生成

公式 Connecting to GitHub with SSH
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
こちらの手順を参考にしました。

実施したコマンドをまとめると

# 鍵を入れるフォルダに移動
$ cd ~/.ssh

# 生成されている鍵を確認
$ ls
known_hosts

# 鍵を作成
$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/{user name}/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/{user name}/.ssh/id_rsa.
Your public key has been saved in /Users/{user name}/.ssh/id_rsa.pub.
The key fingerprint is:
The key's randomart image is:

# 鍵の中身をクリップボードにコピー
$ pbcopy < ~/.ssh/id_rsa.pub

Setting > SSH and GPG keys からコピーした鍵情報を登録します。

(再)Pushする

$ git push -u origin master

Warning: Permanently added the RSA host key for IP address 'xx.xx.xx.xx' to the list of known hosts.
Enumerating objects: 2, done.
Counting objects: 100% (2/2), done.
Writing objects: 100% (2/2), 158 bytes | 158.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To github.com:{user name}/{repository name}.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

スクリーンショット 2020-07-07 11.45.41.png

成功しました!

助けてもらったサイト

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

GitHubにpushする

はじめに

  • Mac OS
  • Gitインストール済み。
  • GitHubアカウントは登録済み。
  • 管理したいプロジェクトはHelloWorldレベルで実装済み。

という状態からリモートリポジトリへPushするまでの手順を残します。

やったこと

1.ローカルリポジトリを作成する

既存フォルダをGit管理対象に設定

$ cd ソースコードが入っているフォルダのパス
$ git init
$ ls -a

.            .eslintignore      .postcssrc.js       index.html      src
..          .eslintrc.js        README.md       node_modules        static
.babelrc        .git            build           package-lock.json   test
.editorconfig       .gitignore      config          package.json

.gitが存在するようになればOKです。

commitする

ソースコードはまだpushしたくないので、空コミットを行います。

$ git commit --allow-empty -m "first commit"
$ git log

 Committer: 本名 <本名のMacBook-ea.local>
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly. Run the
following command and follow the instructions in your editor to edit
your configuration file:

    git config --global --edit

After doing this, you may fix the identity used for this commit with:

    git commit --amend --reset-author

ユーザー名とEmailアドレスを設定していませんでした。。
以下のコマンドで設定。

$ git config --global user.name "設定したい名前"
$ git config --global user.email 設定したいアドレス@example.com

2.GitHubと連携する

リモートリポジトリの作成

自分のGitHubアカウントからNewボタンでリポジトリを作成します。
スクリーンショット 2020-07-07 10.55.01.png

スクリーンショット 2020-07-07 10.55.44.png

以下の入力を行います。

  • Repository name
  • Description
  • Public / Private (今回はPublicにしました)
  • Initialize ~~ (今回はすでにREADME.mdのファイルが存在していたのでチェックを外しました)

リモートに反映する

スクリーンショット 2020-07-07 11.00.03.png

方法はいくつか提示されています。

  • Quick setup
  • コマンドラインでローカルリポジトリを作成
  • 既存リポジトリをPushする
  • 他リポジトリからソースコードを取得

今回は「既存リポジトリをPushする」を実施します。

Pushする

# ローカルリポジトリにリモートリポジトリのURLを知らせる
$ git remote add origin git@github.com:{user name}/{repository name}.git

# ローカルリポジトリに紐づいているリモートリポジトリのURLを表示する
$ git remote -v
origin  git@github.com:{user name}/{repository name}.git (fetch)
origin  git@github.com:{user name}/{repository name}.git (push)
#リモートのmasterブランチにPush
$ git push -u origin master

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

???
どうやら公開鍵・秘密鍵を生成してGitHubに登録する必要があるみたいです。

公開鍵・秘密鍵を生成

公式 Connecting to GitHub with SSH
GitHubでssh接続する手順~公開鍵・秘密鍵の生成から~
こちらの手順を参考にしました。

実施したコマンドをまとめると

# 鍵を入れるフォルダに移動
$ cd ~/.ssh

# 生成されている鍵を確認
$ ls
known_hosts

# 鍵を作成
$ ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/{user name}/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/{user name}/.ssh/id_rsa.
Your public key has been saved in /Users/{user name}/.ssh/id_rsa.pub.
The key fingerprint is:
The key's randomart image is:

# 鍵の中身をクリップボードにコピー
$ pbcopy < ~/.ssh/id_rsa.pub

GitHubの Setting > SSH and GPG keys からコピーした鍵情報を登録します。

(再)Pushする

$ git push -u origin master

Warning: Permanently added the RSA host key for IP address 'xx.xx.xx.xx' to the list of known hosts.
Enumerating objects: 2, done.
Counting objects: 100% (2/2), done.
Writing objects: 100% (2/2), 158 bytes | 158.00 KiB/s, done.
Total 2 (delta 0), reused 0 (delta 0)
To github.com:{user name}/{repository name}.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

スクリーンショット 2020-07-07 11.45.41.png

成功しました!

助けてもらったサイト

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

Gitのわからない初心者(疑問編)

おことわり

この記事は初心者が読んでも疑問が解決される事はありません。共感できることはあるかもしれませんが。Qiitaや他の技術ブログ、動画などを拝見して、自分が感じた疑問や感想、疑問点を投げかけるだけです。なのでむしろ「自分はGitを使ってるぜ!」「Gitのことなら俺に任せろ!」そんな人に読んでもらいたいです。
著者はWindowsPCしか持っていないため、Linux、Macについてはわかりません。

初心者がわからないこと

GitとGitHubって一緒じゃないの?

初心者に結構あることだと思います。GitとGitHubがごっちゃになっているのです。もちろんベテランの方々は当たり前じゃんと思うかもしれません。
しかし、初心者はそのことがわかりません。GitはGit、GitHubはGitHubという認識がありません。

Gitってコマンドじゃないと動かないの?

初心者にとってコンソールで動くアプリケーションはGUIアプリケーションで有ることが当然、当たり前です。「コマンドプロンプト?なにそれ?」な人も多いです。

環境変数PATHって何?

初心者にとってアプリケーションはインストールしたら動くものです。PATHが通ってるかなんてものは気にしません。なので「インストールしたのに動かない」ということを言うのです。

リポジトリ、コミット、ステージングなどなどって何?

Gitを使う際は上に挙げたような用語が多く出てきます。初心者はその用語そのものが分かりません。用語はどんな動作なのか、なんのためにするのか知りたいのです。

おわりに

ひとまず、自分がGitを使う上で疑問に感じたことを書きました。
友人知人の反応如何によっては追記します。後々解決編を書く予定です。乞うご期待!!

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