目次

Git

分散型バージョ管理システムの1つ
ソフトウェアの開発はこれ抜きではできない体になった.

コマンドメモ

コミットまとめたいファイルをaddし忘れた.

git add 追加したいファイル
git commit --amend

ホスティングサービスとして以下が有名

無料,有料ユーザとある.
ホスティングサービスごとに無料版でできることがそれぞれ少し異なる.
GitHubなら学校のメールアドレスで登録してやれば有料プランを使える,メインで使うのはプライベートリポジトリを持つことだと思う.

gitignoreで無視したファイルから一部のファイルを除外(管理対象にする)には
!マークを付けて,その後個別にgit add -fで追加する.Sourcetreeは除外したファイルを自動で認識してくれなかった.

GitLabメモ

GitLabはグループとして複数人を管理することが可能.この時,ユーザの権限によってそのリポジトリに対して可能な操作が異なる. 以下の5つがあり,下に行くほど権限が強い

Developer

branchを生やしてそこにpush,pullが可能.wikiの編集もできる.
protected branchへのアクセスはDeveloperは不可能masterへのpushはできないみたい? masterへpushするにはプルリクを投げるような使い方だろうか.また,Gitは最初になにかcommitしてmasterブランチを1つでも生やしておかないと,Developerはアクセスできず,branchを生やすことすらできないっぽいので,Ownerの人にせめてREADMEくらいcommitしてらう必要がありそう

Owner

さいつよ,全権限持ってる

接続方法

HTTPSとSSHがある.HTTPSはプロキシとかがあるとすこし厄介,SSHは公開鍵,秘密鍵を登録しておく.

GitLabのグループリポジトリにプロキシ環境下からアクセスできなかった

回避策として,そのリポジトリのconfigにプロキシの設定の部分に自分のユーザ名,パスワードを追加する.
https://gitlab.com/gitlab-com/support-forum/issues/1654
リポジトリ内の.git/configを開き,

[remote "origin"]
    url = https://username@gitlab.com/user/projectgit

の部分を

[remote "origin"]
    url = https://username:Password@gitlab.com/user/projectgit

と変更する.

パッチ

パッチファイルをtest.patchとすると

git apply test.patch

WSL2上のUbuntuからGitHubにsshでアクセスできるようにする

WSL2(Ubuntu)でGitHubを使用するの写経

git config --global user.name "GitHubのアカウント名"
git config --global user.email "GitHubに登録しているメールアドレス"
git config --global pull.rebase false
git config --global core.editor "code --wait"
 
# 行った設定の確認は以下のコマンド
git config --list
 
# sshキーの作成
ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/{ユーザ名}/.ssh/id_rsa):
Created directory '/home/{ユーザ名}/.ssh'.
Enter passphrase (empty for no passphrase): # ここで秘密鍵のパスフレーズ入力
Enter same passphrase again: # もう一度パスフレーズ入力
Your identification has been saved in /home/{ユーザ名}/.ssh/id_rsa
Your public key has been saved in /home/{ユーザ名}/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:29xKdhZVY9A3VdvgZqL3h/f4sT2r7QNESEul2ev3Cmc {ユーザ名}@{端末名}
The key's randomart image is:
+---[RSA 3072]----+
|          .ooo+o*|
|          ..=o.==|
|           +o.=.+|
|           . *.  |
|        S . +.   |
|         + o.+ . |
|        . = =.Eoo|
|         o + +o**|
|          .  .=BO|
+----[SHA256]-----+

公開鍵の中身をコピー

cat ~/.ssh/id_rsa.pub | clip.exe

GitHubでSSHキーを登録する

SSHが正常に登録されているか確認

ssh -T git@github.com

初回アクセスだと警告がでるyesと入力してEnterキーを押す

The authenticity of host 'github.com (20.27.177.113)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes # <- yesと入力
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Enter passphrase for key '/home/{ユーザ名}/.ssh/id_rsa': # <- 秘密鍵にパスフレーズを設定している場合、ここで秘密鍵のパスフレーズ入力を求められる
Hi yuqlid! You've successfully authenticated, but GitHub does not provide shell access.

参考文献

GitLabのユーザー権限・グループ権限
今日からはじめるGitHub 〜 初心者がGitをインストールして、プルリクできるようになるまでを解説
git diff で作ったパッチはどうやって当てるのか(そもそも git でパッチ