Git
分散型バージョ管理システムの1つ
ソフトウェアの開発はこれ抜きではできない体になった.
コマンドメモ
コミットまとめたいファイルをaddし忘れた.
git add 追加したいファイル git commit --amend
ホスティングサービスとして以下が有名
- GitHub
- Bitbucket
- GitLab
無料,有料ユーザとある.
ホスティングサービスごとに無料版でできることがそれぞれ少し異なる.
GitHubなら学校のメールアドレスで登録してやれば有料プランを使える,メインで使うのはプライベートリポジトリを持つことだと思う.
gitignoreで無視したファイルから一部のファイルを除外(管理対象にする)には
!
マークを付けて,その後個別にgit add -f
で追加する.Sourcetreeは除外したファイルを自動で認識してくれなかった.
GitLabメモ
GitLabはグループとして複数人を管理することが可能.この時,ユーザの権限によってそのリポジトリに対して可能な操作が異なる. 以下の5つがあり,下に行くほど権限が強い
- Guest
- Reporter
- Master
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でアクセスできるようにする
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.
ユーザ名、メールアドレス
# ユーザー名を確認する git config --global user.name # ユーザー名を登録する git config --global user.name "Your Name"
# メールアドレスを確認する git config --global user.email # メールアドレスを登録する git config --global user.email "you@example.com"