publicからprivateに変更する設定手順

2018年にGitHubはMicrosoftに買収され、privateも条件付きながら無料で利用できるようになった。

手順

  1. GitHubのWEBサイトにアクセス→対象リポジトリを選択→「Setting」を選択する。
  2. Setting画面を「Danger Zone」まで下にスクロールする。
    そして「Make private」ボタンを押す。
  3. 下側のテキストボックスにプロジェクト名を入力する。
    プロジェクト名を入力するとすぐ下のボタンが押せるようになるので押す。
  4. GitHubアカウントのパスワードを入力して完了。

ローカルリポジトリのコミットを取り消す方法

ローカルでコミットを行ったあとリモートへのプッシュに失敗することがある。
例えば100MBファイルを超えるファイルをローカルでコミット後、GitHubにプッシュしようとすると容量制限で拒否されるというケースである。
この場合、ローカルでのコミットを取り消す必要がある。
そのコミットの取り消し手順を以下に示す。

  1. Eclipseのコミット履歴画面にて元に戻すコミットIDを確認する。
    プロジェクトを右クリック→Team→Show in History
  2. GitBashを起動し、cdコマンドで対象プロジェクトに移動する。

  3. 下記コマンドによりコミットの取り消しを行える
    git reset --hard コミットID

プロジェクトのコピーとEclipseのGit | .project

プロジェクトをディレクトリごとコピーし、そのコピーしたディレクトリをEclipseで開くと自動的にリポジトリとして管理されてしまうことがある。

原因と対策

Eclipseのおいて、ディレクトリの直下に「.project」ファイルがあると、そのディレクトリはプロジェクト認識されるのが原因。
「.project」ファイルが存在するディレクトリはリポジトリとして管理される。
Eclipse中でリポジトリとして管理したくない場合、「.project」ファイルは除去しておくこと。


個人アクセストークンの発行 | Personal access tokens

  1. GitHubのサイトに自分のアカウントでログイン。 右上の自分アイコンからSetteingをクリック。
  2. Developer settingを選択
  3. 左側メニューからPersonal access tokens → 文章中からGenerate a personal access token
  4. New personal access token画面にてすべてのチェックボックスにチェックを入れ、「Generate token」ボタンを押下 以上で個人アクセストークンが発行される。

Git Hub | PR | プルリクエストのレビュー必須化について

参考:GitHub Docs:プルリクエストの必須レビューを有効にする

SSH Keyの作成とGitHubへ登録 | 公開鍵と秘密鍵

  1. $ cd ~/.ssh
  2. SSH Keyの作成
    $ssh-keygen -t rsa
    3回ほど質問されるが、そのままEnterでOK.
  3. クリップボードにSSH keyをコピー(id_rsa.pubファイルの中身をコピー)(Windows用のコマンド)
    $ clip < ~/.ssh/id_rsa.pub
  4. GitHubサイトにSSH Keysを登録する。

    GitHubのマイページからSSH Keyの登録画面を開く。
    GitHubのマイページ→Setting→左メニューのSSH and GPG keys→New SSH keyボタン
    登録画面を開いたらTitleに任意の名前、「Key」にクリップボードにコピーしてあるSSH Keyを張り付ける。
    Add keyボタンを押して登録完了

  5. 接続確認
    $ ssh -T git@github.com
    「 You've successfully authenticated, but GitHub does not provide shell access.」という感じのメッセージが出たら成功。

Gitの改行コードを無変換にする | core.autocrlf=false

core.autocrlf=falseについて

Gitはチェックアウトやコミット時に設定によっては勝手にソースコードの改行を変換してしまう。
勝手な改行を行わないようにするには下記コマンドを実行する。
$ cd ~
$ git config --global core.autocrlf false
	
設定の確認コマンド
git config --list --global

プロジェクト別で設定する場合、localを指定して設定。

$ cd プロジェクトのルートパス
$ git config --local core.autocrlf false
$ git config --list --local
	

core.autocrlfのその他設定値について

core.autocrlfのセット値チェックアウト時コミット時
trueLFからCRLFに変換CRLFからLF変換
input変換せずCRLFからLFに変換
false変換せず変換せず

ローカル環境専用のファイル管理対象外 | .git/info/exclude

チーム開発において、個人的に作成したファイルは.gitnoreに追記しづらい。
この場合は「.git/info/exclude」ファイルに記述するとよい。

例:my_tool内のファイルはGit管理対象外にする。
$ cd ~/git/animals
$ echo my_tool/* >> .git/info/exclude
	

ディレクトリ構造

- animals ←プロジェクト
	- .git
		- info
			- exclude ←このファイルに管理対象外ファイルを記述する。
	- my_tool
		- test_tool.php ←管理対象外ファイルになる
	- index.html
	

.git/info/excludeファイルの中身

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
my_tool/*
	

その他の記述例

$ echo test/dummy/xxx.php >> .git/info/exclude
「ルート/test/dummy/xxx.php」ファイルをGit管理対象外にする。


.gitnoreが効かない場合の対処方法

gitnoreが効かないファイルやディレクトリを退避させてから削除し、add & commitを実行する。
その後、退避したファイルまたはディレクトリを元に戻す。


チーム開発におけるプルリクエストの手順

  1. GitHubの対象リポジトリを開く。(以下、animalリポジトリで解説)
  2. 上側メニューの「<>Code」タブを選択。
  3. ブランチセレクトボックスからmasterブランチ(メインのブランチ)を選択。
    テキストボックス部分に任意のブランチ名を入力して、新しいリモートブランチを作成する。
    この流れはmasterブランチをコピーしてnekoブランチを作成という流れである。
    例→nekoブランチ。
  4. ローカル環境のプロジェクトのルートへ移動してから「$ git pull」コマンドを実行する。
    $ cd ~/git/animal
    $ git pull
    			
    これにより、GitHubサイト側の新しいブランチ(nekoブランチ)にチェックアウトできるようになる。
  5. 新しいブランチ(nekoブランチ)にチェックアウト。
    $ git checkout -b neko origin/neko
    これによりローカル側にも同じ名前のブランチが作成されるのと同時に、 新しいブランチに切り替わり、すべてのソースコードも新しいブランチのものに切り替わる。
  6. Eclipseで開発している場合、PHPエクスプローラのプロジェクト名に併記されているブランチ名が変わっていることを確認すること。
    変わっていない場合はEclipseを再起動すると治る。(2020年1月の時点ではEclipseの再起動が必要)
  7. これで作業ができる状態になったので、コーディング作業を開始しても良い。
  8. コーディング作業が終わったら、普段の通りにコミット&プッシュを行う。
    この作業は1回だけ限定というわけではない。何度でもコミット、プッシュしても良い。
    git add 修正のファイルパス
    git commit -mいろはにほ
    git push
    			
  9. 作業を終え、最後のコミット&プッシュが終わったらプルリクエストの発行を行う。
    Git Hubサイトの対象リポジトリ画面に戻ると「Compare & pull request」ボタンが表示されており、 ここからプルリクエストの発行画面へ移動できる。

    「Compare & pull request」ボタンが表示されていない場合

    「Pull requests」リンクからもプルリクエストを発行可能。
    メインのブランチにnekoブランチをマージするような感じで設定すること。
  10. プルリクエストの内容を別の人にレビューしてもらう。 OKをもらったら「Marge pull request」ボタンを押して、メインのブランチへnekoブランチをマージする。
    「Marge pull request」ボタンは何人かにレビューOKをもらわないと押せない設定になっていることが多い。
    OKをもらえなかったら「Close pull request」ボタンを押してプルリクエストを閉じることができる。
  11. メインのブランチへnekoブランチをマージしたら、もはやnekoブランチは不要。 特別な理由がないかぎり削除してもよい。 「Delete branch」ボタンにて削除できる。
  12. ローカル側→メインのブランチにチェックアウトし、git pullコマンドで最新にする。 nekoブランチも残す理由がなければ削除する。
    $ git checkout main
    $ git pull
    git branch -D neko
    			

不要になったGitHubのブランチを削除する方法

GitHubから対象プロジェクトのリポジトリページを開く → 「<>Code」タブ、 ブランチセレクトボックスの右にある〇〇branchesをクリック → Yoursタブ → ブランチ一覧が表示されるのでゴミ箱アイコンをクリック。